mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2024-11-14 13:27:41 -07:00
fine linux
This commit is contained in:
parent
bffc529c04
commit
4cb2c23ad6
@ -1798,11 +1798,11 @@ void SoftRenderer::RenderPolygons(GPU& gpu, Polygon** polygons, int npolys)
|
|||||||
// init all this junk i need to keep track of
|
// init all this junk i need to keep track of
|
||||||
s32 rasterevents[RasterEvents_MAX];
|
s32 rasterevents[RasterEvents_MAX];
|
||||||
rasterevents[RenderStart] = 0;
|
rasterevents[RenderStart] = 0;
|
||||||
rasterevents[RenderFinal] = INT_MAX/2;
|
rasterevents[RenderFinal] = FrameLength;
|
||||||
rasterevents[PushScanline] = INT_MAX/2;
|
rasterevents[PushScanline] = FrameLength;
|
||||||
rasterevents[PushScanlineP2] = INT_MAX/2;
|
rasterevents[PushScanlineP2] = FrameLength;
|
||||||
rasterevents[ScanlineRead] = InitGPU2DTimeout;
|
rasterevents[ScanlineRead] = InitGPU2DTimeout;
|
||||||
ScanlineTimeout = INT_MAX/2;
|
ScanlineTimeout = FrameLength;
|
||||||
RasterTiming = 0;
|
RasterTiming = 0;
|
||||||
s32 rastertimingeven = 0;
|
s32 rastertimingeven = 0;
|
||||||
s32 rastertimingodd = 0;
|
s32 rastertimingodd = 0;
|
||||||
@ -1862,13 +1862,13 @@ void SoftRenderer::RenderPolygons(GPU& gpu, Polygon** polygons, int npolys)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//set next scanline timeout
|
//set next scanline timeout
|
||||||
if (ScanlineTimeout == INT_MAX/2) ScanlineTimeout = rasterevents[ScanlineRead] - FinalPassLen;
|
if (ScanlineTimeout == FrameLength) ScanlineTimeout = rasterevents[ScanlineRead] - FinalPassLen;
|
||||||
else ScanlineTimeout += TimeoutIncrement;
|
else ScanlineTimeout += TimeoutIncrement;
|
||||||
|
|
||||||
// schedule next scanline pair + the final pass of the latest pair
|
// schedule next scanline pair + the final pass of the latest pair
|
||||||
rasterevents[RenderFinal] = RasterTiming;
|
rasterevents[RenderFinal] = RasterTiming;
|
||||||
if (scanlinesinit < 192) rasterevents[RenderStart] = RasterTiming+RastDelay; // scheduled 4 cycles late (presumably due to initial polygon timing shenanigans?)
|
if (scanlinesinit < 192) rasterevents[RenderStart] = RasterTiming+RastDelay; // scheduled 4 cycles late (presumably due to initial polygon timing shenanigans?)
|
||||||
else rasterevents[RenderStart] = INT_MAX/2;
|
else rasterevents[RenderStart] = FrameLength;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
@ -1895,7 +1895,7 @@ void SoftRenderer::RenderPolygons(GPU& gpu, Polygon** polygons, int npolys)
|
|||||||
}
|
}
|
||||||
// unschedule final pass event
|
// unschedule final pass event
|
||||||
if (scanlinesfin != 191)
|
if (scanlinesfin != 191)
|
||||||
rasterevents[RenderFinal] = INT_MAX/2;
|
rasterevents[RenderFinal] = FrameLength;
|
||||||
else // schedule next final pass event to immediately after the current one
|
else // schedule next final pass event to immediately after the current one
|
||||||
rasterevents[RenderFinal] += FinalPassLen;
|
rasterevents[RenderFinal] += FinalPassLen;
|
||||||
break;
|
break;
|
||||||
@ -1935,7 +1935,7 @@ void SoftRenderer::RenderPolygons(GPU& gpu, Polygon** polygons, int npolys)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (scanlineswaitingforpush <= 0)
|
if (scanlineswaitingforpush <= 0)
|
||||||
rasterevents[PushScanline] = INT_MAX/2; // unsched event if no scanlines are waiting to be finished
|
rasterevents[PushScanline] = FrameLength; // unsched event if no scanlines are waiting to be finished
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1955,7 +1955,7 @@ void SoftRenderer::RenderPolygons(GPU& gpu, Polygon** polygons, int npolys)
|
|||||||
|
|
||||||
// reschedule event for one scanline later unless all scanlines have been read
|
// reschedule event for one scanline later unless all scanlines have been read
|
||||||
if (scanlinesread < 192) rasterevents[ScanlineRead] += ScanlineReadInc;
|
if (scanlinesread < 192) rasterevents[ScanlineRead] += ScanlineReadInc;
|
||||||
else rasterevents[ScanlineRead] = INT_MAX/2;
|
else rasterevents[ScanlineRead] = FrameLength;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
@ -1967,7 +1967,7 @@ void SoftRenderer::RenderPolygons(GPU& gpu, Polygon** polygons, int npolys)
|
|||||||
scanlinespushed2++;
|
scanlinespushed2++;
|
||||||
|
|
||||||
// unschedule event if all partially pushed scanlines have been pushed
|
// unschedule event if all partially pushed scanlines have been pushed
|
||||||
if (scanlinespushed2 >= scanlinespushed) rasterevents[PushScanlineP2] = INT_MAX/2;
|
if (scanlinespushed2 >= scanlinespushed) rasterevents[PushScanlineP2] = FrameLength;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user