softgpu: Cull no-pos and through s8 pos verts.

Seems like these just don't draw anything, ever.
This commit is contained in:
Unknown W. Brackets 2022-01-25 19:24:48 -08:00
parent 61e30e8f8b
commit e82b54e4b6
2 changed files with 7 additions and 1 deletions

View File

@ -461,6 +461,12 @@ void TransformUnit::SubmitPrimitive(void* vertices, void* indices, GEPrimitiveTy
if (gstate_c.skipDrawReason & SKIPDRAW_SKIPFRAME) {
return;
}
// Throughmode never draws 8-bit primitives, maybe because they can't fully specify the screen?
if ((vertex_type & GE_VTYPE_THROUGH_MASK) != 0 && (vertex_type & GE_VTYPE_POS_MASK) == GE_VTYPE_POS_8BIT)
return;
// Vertices without position are just entirely culled.
if ((vertex_type & GE_VTYPE_POS_MASK) == 0)
return;
u16 index_lower_bound = 0;
u16 index_upper_bound = vertex_count - 1;

View File

@ -148,6 +148,7 @@ tests_good = [
"gpu/ge/enqueueparam",
"gpu/ge/queue",
"gpu/primitives/indices",
"gpu/primitives/triangles",
"gpu/rendertarget/depal",
"gpu/signals/pause",
"gpu/signals/pause2",
@ -393,7 +394,6 @@ tests_next = [
"gpu/primitives/rectangles",
"gpu/primitives/spline",
"gpu/primitives/trianglefan",
"gpu/primitives/triangles",
"gpu/primitives/trianglestrip",
"gpu/reflection/reflection",
"gpu/rendertarget/copy",