GX: polygon pipeline doesn't get as far if the polygon is rejected by culling/clipping.

This commit is contained in:
StapleButter 2019-01-03 20:30:30 +01:00
parent 4601636788
commit 1e35d18ce6
1 changed files with 20 additions and 14 deletions

View File

@ -981,20 +981,11 @@ void SubmitPolygon()
int prev, next; int prev, next;
// submitting a polygon starts the polygon pipeline // submitting a polygon starts the polygon pipeline
if (nverts == 4) // noting that for now we are only reserving one vertex slot
{ // further slots only get reserved if the polygon makes it through culling/clipping
PolygonPipeline = 35; PolygonPipeline = 8;
VertexSlotCounter = 1; VertexSlotCounter = 1;
if (PolygonMode & 0x2) VertexSlotsFree = 0b11100; VertexSlotsFree = 0b11110;
else VertexSlotsFree = 0b11110;
}
else
{
PolygonPipeline = 26;
VertexSlotCounter = 1;
if (PolygonMode & 0x2) VertexSlotsFree = 0b1000;
else VertexSlotsFree = 0b1110;
}
// culling // culling
// TODO: work out how it works on the real thing // TODO: work out how it works on the real thing
@ -1102,6 +1093,21 @@ void SubmitPolygon()
// build the actual polygon // build the actual polygon
if (nverts == 4)
{
PolygonPipeline = 35;
VertexSlotCounter = 1;
if (PolygonMode & 0x2) VertexSlotsFree = 0b11100;
else VertexSlotsFree = 0b11110;
}
else
{
PolygonPipeline = 26;
VertexSlotCounter = 1;
if (PolygonMode & 0x2) VertexSlotsFree = 0b1000;
else VertexSlotsFree = 0b1110;
}
if (NumPolygons >= 2048 || NumVertices+nverts > 6144) if (NumPolygons >= 2048 || NumVertices+nverts > 6144)
{ {
LastStripPolygon = NULL; LastStripPolygon = NULL;