summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2015-12-06 10:17:47 -0500
committerSubv <subv2112@gmail.com>2015-12-06 10:48:05 -0500
commit7b33e163b900aacc4a82cf0a409536c047100303 (patch)
treea59ea7a8259cd064ba46d50d8df509fc59b43076 /src
parent644d1e7ca35fc8a006f7fbc2adfafd1f4a589f4b (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')
-rw-r--r--src/video_core/primitive_assembly.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/video_core/primitive_assembly.cpp b/src/video_core/primitive_assembly.cpp
index 44a8dbfe9..d5a0a96a4 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: