Explorar o código

GPU/PrimitiveAssembler: Fixed drawing triangle fans.

It was skipping the second vertex assignment and using uninitialized garbage when assembling the corresponding triangle.
Subv %!s(int64=10) %!d(string=hai) anos
pai
achega
7b33e163b9
Modificáronse 1 ficheiros con 4 adicións e 5 borrados
  1. 4 5
      src/video_core/primitive_assembly.cpp

+ 4 - 5
src/video_core/primitive_assembly.cpp

@@ -39,13 +39,12 @@ void PrimitiveAssembler<VertexType>::SubmitVertex(VertexType& vtx, TriangleHandl
 
 
             buffer[buffer_index] = vtx;
             buffer[buffer_index] = vtx;
 
 
-            if (topology == Regs::TriangleTopology::Strip) {
-                strip_ready |= (buffer_index == 1);
+            strip_ready |= (buffer_index == 1);
+
+            if (topology == Regs::TriangleTopology::Strip)
                 buffer_index = !buffer_index;
                 buffer_index = !buffer_index;
-            } else if (topology == Regs::TriangleTopology::Fan) {
+            else if (topology == Regs::TriangleTopology::Fan)
                 buffer_index = 1;
                 buffer_index = 1;
-                strip_ready = true;
-            }
             break;
             break;
 
 
         default:
         default: