diff options
| author | Subv <subv2112@gmail.com> | 2015-12-06 10:17:47 -0500 |
|---|---|---|
| committer | Subv <subv2112@gmail.com> | 2015-12-06 10:48:05 -0500 |
| commit | c94a1a0375e70b1d1c729bc18ae27519ed48c3b6 (patch) | |
| tree | a59ea7a8259cd064ba46d50d8df509fc59b43076 /src/video_core/primitive_assembly.cpp | |
| parent | 03867dce7f7ae8096298b2e98f912c6b361870b8 (diff) | |
GPU/PrimitiveAssembler: Fixed drawing triangle fans.
It was skipping the second vertex assignment and using uninitialized garbage when assembling the corresponding triangle.
Diffstat (limited to 'src/video_core/primitive_assembly.cpp')
| -rw-r--r-- | src/video_core/primitive_assembly.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/video_core/primitive_assembly.cpp b/src/video_core/primitive_assembly.cpp index 44a8dbfe9b..d5a0a96a4f 100644 --- a/src/video_core/primitive_assembly.cpp +++ b/src/video_core/primitive_assembly.cpp @@ -39,13 +39,12 @@ void PrimitiveAssembler<VertexType>::SubmitVertex(VertexType& vtx, TriangleHandl 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; - } else if (topology == Regs::TriangleTopology::Fan) { + else if (topology == Regs::TriangleTopology::Fan) buffer_index = 1; - strip_ready = true; - } break; default: |
