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];
|
backdrop |= softwareRenderer->variantPalette[0];
|
||||||
}
|
}
|
||||||
for (int x = 0; x < VIDEO_HORIZONTAL_PIXELS; ++x) {
|
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));
|
memset(softwareRenderer->spriteLayer, 0, sizeof(softwareRenderer->spriteLayer));
|
||||||
|
|
||||||
softwareRenderer->windows[0].endX = VIDEO_HORIZONTAL_PIXELS;
|
softwareRenderer->windows[0].endX = VIDEO_HORIZONTAL_PIXELS;
|
||||||
|
@ -400,6 +399,7 @@ static void GBAVideoSoftwareRendererDrawScanline(struct GBAVideoRenderer* render
|
||||||
}
|
}
|
||||||
|
|
||||||
_drawScanline(softwareRenderer, y);
|
_drawScanline(softwareRenderer, y);
|
||||||
|
memcpy(row, softwareRenderer->row, VIDEO_HORIZONTAL_PIXELS * sizeof(*row));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GBAVideoSoftwareRendererFinishFrame(struct GBAVideoRenderer* renderer) {
|
static void GBAVideoSoftwareRendererFinishFrame(struct GBAVideoRenderer* renderer) {
|
||||||
|
|
|
@ -86,6 +86,7 @@ struct GBAVideoSoftwareRenderer {
|
||||||
|
|
||||||
union GBARegisterDISPCNT dispcnt;
|
union GBARegisterDISPCNT dispcnt;
|
||||||
|
|
||||||
|
uint32_t row[VIDEO_HORIZONTAL_PIXELS];
|
||||||
uint32_t spriteLayer[VIDEO_HORIZONTAL_PIXELS];
|
uint32_t spriteLayer[VIDEO_HORIZONTAL_PIXELS];
|
||||||
|
|
||||||
// BLDCNT
|
// BLDCNT
|
||||||
|
@ -118,7 +119,6 @@ struct GBAVideoSoftwareRenderer {
|
||||||
|
|
||||||
struct GBAVideoSoftwareBackground bg[4];
|
struct GBAVideoSoftwareBackground bg[4];
|
||||||
|
|
||||||
uint32_t* row;
|
|
||||||
int start;
|
int start;
|
||||||
int end;
|
int end;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue