mirror of https://github.com/mgba-emu/mgba.git
Exploit cache locality for slightly faster drawing
This commit is contained in:
parent
6b86cdf9ef
commit
85e1c2d573
|
@ -378,11 +378,10 @@ static void GBAVideoSoftwareRendererDrawScanline(struct GBAVideoRenderer* render
|
|||
backdrop |= softwareRenderer->variantPalette[0];
|
||||
}
|
||||
for (int x = 0; x < VIDEO_HORIZONTAL_PIXELS; ++x) {
|
||||
row[x] = backdrop;
|
||||
softwareRenderer->row[x] = backdrop;
|
||||
}
|
||||
}
|
||||
|
||||
softwareRenderer->row = row;
|
||||
memset(softwareRenderer->spriteLayer, 0, sizeof(softwareRenderer->spriteLayer));
|
||||
|
||||
softwareRenderer->windows[0].endX = VIDEO_HORIZONTAL_PIXELS;
|
||||
|
@ -400,6 +399,7 @@ static void GBAVideoSoftwareRendererDrawScanline(struct GBAVideoRenderer* render
|
|||
}
|
||||
|
||||
_drawScanline(softwareRenderer, y);
|
||||
memcpy(row, softwareRenderer->row, VIDEO_HORIZONTAL_PIXELS * sizeof(*row));
|
||||
}
|
||||
|
||||
static void GBAVideoSoftwareRendererFinishFrame(struct GBAVideoRenderer* renderer) {
|
||||
|
|
|
@ -86,6 +86,7 @@ struct GBAVideoSoftwareRenderer {
|
|||
|
||||
union GBARegisterDISPCNT dispcnt;
|
||||
|
||||
uint32_t row[VIDEO_HORIZONTAL_PIXELS];
|
||||
uint32_t spriteLayer[VIDEO_HORIZONTAL_PIXELS];
|
||||
|
||||
// BLDCNT
|
||||
|
@ -118,7 +119,6 @@ struct GBAVideoSoftwareRenderer {
|
|||
|
||||
struct GBAVideoSoftwareBackground bg[4];
|
||||
|
||||
uint32_t* row;
|
||||
int start;
|
||||
int end;
|
||||
|
||||
|
|
Loading…
Reference in New Issue