DS GX: Basic cleanup

This commit is contained in:
Vicki Pfau 2021-12-25 03:04:53 -08:00
parent 4beb293ac1
commit 5efbf8dc66
2 changed files with 5 additions and 7 deletions

View File

@ -115,13 +115,12 @@ static struct DSGXRenderer dummyRenderer = {
}; };
static void _pullPipe(struct DSGX* gx) { static void _pullPipe(struct DSGX* gx) {
struct DSGXEntry entry;
if (CircleBufferSize(&gx->fifo) >= sizeof(struct DSGXEntry)) { if (CircleBufferSize(&gx->fifo) >= sizeof(struct DSGXEntry)) {
struct DSGXEntry entry = { 0 };
CircleBufferRead(&gx->fifo, &entry, sizeof(entry)); CircleBufferRead(&gx->fifo, &entry, sizeof(entry));
CircleBufferWrite(&gx->pipe, &entry, sizeof(entry)); CircleBufferWrite(&gx->pipe, &entry, sizeof(entry));
} }
if (CircleBufferSize(&gx->fifo) >= sizeof(struct DSGXEntry)) { if (CircleBufferSize(&gx->fifo) >= sizeof(struct DSGXEntry)) {
struct DSGXEntry entry = { 0 };
CircleBufferRead(&gx->fifo, &entry, sizeof(entry)); CircleBufferRead(&gx->fifo, &entry, sizeof(entry));
CircleBufferWrite(&gx->pipe, &entry, sizeof(entry)); CircleBufferWrite(&gx->pipe, &entry, sizeof(entry));
} }
@ -1290,7 +1289,6 @@ static void _fifoRun(struct mTiming* timing, void* context, uint32_t cyclesLate)
_flushOutstanding(gx); _flushOutstanding(gx);
} }
DSGXUpdateGXSTAT(gx); DSGXUpdateGXSTAT(gx);
_updateDMA(gx);
} }
void DSGXInit(struct DSGX* gx) { void DSGXInit(struct DSGX* gx) {

View File

@ -774,17 +774,17 @@ static void DSGXSoftwareRendererDrawScanline(struct DSGXRenderer* renderer, int
return; return;
} }
struct DSGXSoftwareSpan span;
size_t p; size_t p;
for (p = 0; p < DSGXSoftwarePolygonListSize(&softwareRenderer->activePolys); ++p) { for (p = 0; p < DSGXSoftwarePolygonListSize(&softwareRenderer->activePolys); ++p) {
struct DSGXSoftwarePolygon* poly = DSGXSoftwarePolygonListGetPointer(&softwareRenderer->activePolys, p); struct DSGXSoftwarePolygon* poly = DSGXSoftwarePolygonListGetPointer(&softwareRenderer->activePolys, p);
DSGXSoftwareEdgeListClear(&softwareRenderer->activeEdges); DSGXSoftwareEdgeListClear(&softwareRenderer->activeEdges);
_preparePoly(renderer, softwareRenderer->verts, poly); _preparePoly(renderer, softwareRenderer->verts, poly);
span.poly = poly;
span.polyId = DSGXPolygonAttrsGetId(poly->polyParams);
int y; int y;
for (y = poly->minY; y <= poly->maxY; ++y) { for (y = poly->minY; y <= poly->maxY; ++y) {
struct DSGXSoftwareSpan span = { span.ep[0].coord[3] = 0;
.poly = poly,
.polyId = DSGXPolygonAttrsGetId(poly->polyParams),
};
size_t i; size_t i;
for (i = 0; i < DSGXSoftwareEdgeListSize(&softwareRenderer->activeEdges); ++i) { for (i = 0; i < DSGXSoftwareEdgeListSize(&softwareRenderer->activeEdges); ++i) {
struct DSGXSoftwareEdge* edge = DSGXSoftwareEdgeListGetPointer(&softwareRenderer->activeEdges, i); struct DSGXSoftwareEdge* edge = DSGXSoftwareEdgeListGetPointer(&softwareRenderer->activeEdges, i);