Though I did spend much time thinking about this, my idea was not correct. The "tearing" and "previous frame is being shown while it is being drawn" is simply because that's exactly what the logic in holly/core.cpp did. This is no longer the case--by the time the newly-created core_flip function is called, the core render is complete, and we should switch the FB_R_SOF1 to the current framebuffer, not the one that is going to be written on next frame. This also modifies alt.lds so that (non-startup) code now runs in the P1 area, with operand/instruction/copyback caches enabled. This caused a 10x speed increase in my testing.
8 lines
104 B
C++
8 lines
104 B
C++
#pragma once
|
|
|
|
namespace cache {
|
|
|
|
void init() __attribute__ ((section (".text.startup.cache_init")));
|
|
|
|
}
|