Kamiya

Results 41 comments of Kamiya

desktopで試す範疇なら https://github.com/RustAudio/rust-portaudio/blob/master/examples/saw.rs

FPSカウンターだけの表示だと秒10000いける ```c for (uint32_t counter = 0 ; ; ++counter ) { // EmbeddedEmulator_update_screen(&fb); // print_framebuffer(150, 0, 2); sprintf(msg, "%d", counter); BSP_LCD_DisplayStringAt(5, 5, (uint8_t *)msg, LEFT_MODE); /* Touchscreen test */...

エミュレーションだけ入れると10fps ```c for (uint32_t counter = 0 ; ; ++counter ) { EmbeddedEmulator_update_screen(&fb); // print_framebuffer(150, 0, 2); sprintf(msg, "%d", counter); BSP_LCD_DisplayStringAt(5, 5, (uint8_t *)msg, LEFT_MODE); /* Touchscreen test */ //...

print_framebuffer入れても8fps、これは最適化が効いている気がする ```c for (uint32_t counter = 0 ; ; ++counter ) { EmbeddedEmulator_update_screen(&fb); print_framebuffer(150, 0, 2); sprintf(msg, "%d", counter); BSP_LCD_DisplayStringAt(5, 5, (uint8_t *)msg, LEFT_MODE); /* Touchscreen test */ // TS_StateTypeDef...

ざっとこんな感じ。本当ならPPUは完全並列で動かしていいのだけれど、ポリシーに反するのでアレ * Emulateが異様に遅い 80ms * print_framebuffer 10ms * print fpscounter

opt-level=3, debug_assertions=noで2msぐらい削れた

ICache/DCache有効にしてなさそう。core_cm7のSCB_xxxにキャッシュ操作周りのインライン関数がある

体感でわからんぐらいだな、なんかミスってるかも ```c SCB_EnableDCache(); SCB_EnableICache(); ```

ART, Prefetch Buffer有効化して9fpsぐらい。framebuffer解決しても15fps届くかどうかぐらいか