This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Matrefeytontias
Pages: 1 ... 17 18 [19] 20 21 ... 133
271
« on: July 01, 2014, 07:47:26 am »
Bump, so this writes 1000 times a 320*240*2 bytes buffer in RAM to another similar buffer in RAM. Start timing when the screen goes black, one second after you ran the program. http://www.mirari.fr/xKZq
272
« on: July 01, 2014, 07:40:23 am »
Hum yeah, well we'll see how it goes with writing to "normal" memory.
273
« on: July 01, 2014, 07:36:25 am »
Well yeah, at this point CPU speed isn't important because it's huge compared to AHB speed (only when it comes to writing memory and doing only that of course).
274
« on: July 01, 2014, 07:34:17 am »
I meant that with this version, the program executes in 6 seconds whether the calc has been clocked to 132 or 262 MHz, whereas with the previous version, the program ran in 12.58 seconds when the calc was clocked to 132 MHz and in 6 seconds when it was clocked at 262 MHz. So the newest version is better.
I'll do that in a minute.
275
« on: June 27, 2014, 08:03:08 pm »
So I came up with this, which actually seems to give 167 FPS (I guess this is the maximum the color Nspire's LCD can give) at any frequency on a color calc ; giving a mere 6 seconds at 132 MHz as well as 262 MHz, vs 12.58 seconds at 132 MHz and a bit more than 6 seconds at 262 MHz previously (all are aeTIos's tests).
Only problem, it crashes on exit (that is, after 6 seconds), and I have no idea why.
unsigned short *BUFF_BASE_ADDRESS; void *SCREEN_BACKUP;
void initBuffering() { void *temp; temp = malloc(BUFF_BYTES_SIZE); if(!temp) exit(0); BUFF_BASE_ADDRESS = (unsigned short*)malloc(BUFF_BYTES_SIZE); if(!BUFF_BASE_ADDRESS) { free(temp); exit(0); } SCREEN_BACKUP = *(void**)0xC0000010; // Handle monochrome screens-specific shit if(is_classic) *(int32_t*)0xC000001C = (*(int32_t*)0xC000001C & ~0x0e) | 0x08; *(void**)0xC0000010 = temp; }
void updateScreen() { // Screen-access delays make this the fastest method apparently memcpy(*(void**)0xC0000010, BUFF_BASE_ADDRESS, BUFF_BYTES_SIZE); }
void deinitBuffering() { void *temp = *(void**)0xC0000010; // Handle monochrome screens-specific shit again if(is_classic) *(int32_t*)0xC000001C = (*(int32_t*)0xC000001C & ~0x0e) | 0x04; *(void**)0xC0000010 = SCREEN_BACKUP; free(temp); free(BUFF_BASE_ADDRESS); }
int main(void) { int i; initBuffering(); clearBufferB(); for(i = 0; i < 1000; i++) { memcpy(*(void**)0xC0000010, BUFF_BASE_ADDRESS, BUFF_BYTES_SIZE); } deinitBuffering(); return 0; }
Binaries attached, but it does crash your calc.
EDIT : did some tests with the current version of nKaruga (source accessible from github). The game runs at 95 FPS on my 120 MHz grayscale TI-Nspire CAS with Ndless 3.1 r914, calculated by seeing that you take 3.4 seconds to cross 320 pixels by moving one pixel by one pixel.
276
« on: June 27, 2014, 06:24:27 pm »
12 ≈ 6 * 2 if I still know how to count. aeTIos's tests are made on a color calc and give 12 seconds, pimath's tests are done on a GS calc and gives 2 seconds.
277
« on: June 27, 2014, 06:20:15 pm »
DJ : what you don't understand is that the program is already 6 times faster (according to latest aeTIos's tests) on GS calcs than on color calcs at merely the same frequency (120 MHz for GS vs 132 MHz for color).
Vogtinator : I was wondering that. Will test when I can (probably in some minutes).
278
« on: June 27, 2014, 06:13:00 pm »
As I said, I set up both GS and color screen so they use the same number of bits for a pixel, for instance 16.
279
« on: June 27, 2014, 06:03:55 pm »
Well, I don't know but I'll try that, and if that's it I'll call it another thing that we should know. * Matrefeytontias would be so happy if that was the actual problem EDIT : wait a minute you misunderstood. The program is 2.5 times faster on GS calcs than on color calcs, not the other way around.
280
« on: June 27, 2014, 05:58:06 pm »
On monochrome calcs, I malloc two 320*240*2 buffers instead of one, one being an actual buffer and one acting as the screen. On color calcs I only allocate one buffer and use the default screen buffer.
281
« on: June 27, 2014, 05:53:35 pm »
I'm indeed copying to *(void**)0xC0000010. So would allocating a buffer in RAM and using it even on color calcs fix the speed issue ? (hopeless try)
282
« on: June 27, 2014, 05:15:04 pm »
But I never saw anything like that happen before ... There must be something Nspire-related I forgot to setup ... Could TCT_Local_Interrupts(int) be the cause of this ?
283
« on: June 27, 2014, 04:27:08 pm »
Alright so that's what to test. It's simply memcpy-ing a buffer to the screen 1000 times.
284
« on: June 27, 2014, 04:15:07 pm »
Also, I have no color calc to test, only monochrome.
285
« on: June 27, 2014, 03:45:17 pm »
So you mean copying a buffer 500 times to the screen, and comparing that with copying 500 times a buffer in another buffer ?
Pages: 1 ... 17 18 [19] 20 21 ... 133
|