summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2019-12-22 22:14:37 -0300
committerGravatar ReinUsesLisp2019-12-22 22:33:01 -0300
commit91d35559e55777bcd39dc666b0a0ef0279f4bfb8 (patch)
tree45a8389acbe972733306f05a5153eabc41711728 /src
parentMerge pull request #3238 from ReinUsesLisp/vk-resource-manager (diff)
downloadyuzu-91d35559e55777bcd39dc666b0a0ef0279f4bfb8.tar.gz
yuzu-91d35559e55777bcd39dc666b0a0ef0279f4bfb8.tar.xz
yuzu-91d35559e55777bcd39dc666b0a0ef0279f4bfb8.zip
maxwell_to_gl: Implement missing primitive topologies
Many of these topologies are exclusively available in OpenGL.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/maxwell_to_gl.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/video_core/renderer_opengl/maxwell_to_gl.h b/src/video_core/renderer_opengl/maxwell_to_gl.h
index 9ed738171..ea4f35663 100644
--- a/src/video_core/renderer_opengl/maxwell_to_gl.h
+++ b/src/video_core/renderer_opengl/maxwell_to_gl.h
@@ -120,6 +120,8 @@ inline GLenum PrimitiveTopology(Maxwell::PrimitiveTopology topology) {
120 return GL_POINTS; 120 return GL_POINTS;
121 case Maxwell::PrimitiveTopology::Lines: 121 case Maxwell::PrimitiveTopology::Lines:
122 return GL_LINES; 122 return GL_LINES;
123 case Maxwell::PrimitiveTopology::LineLoop:
124 return GL_LINE_LOOP;
123 case Maxwell::PrimitiveTopology::LineStrip: 125 case Maxwell::PrimitiveTopology::LineStrip:
124 return GL_LINE_STRIP; 126 return GL_LINE_STRIP;
125 case Maxwell::PrimitiveTopology::Triangles: 127 case Maxwell::PrimitiveTopology::Triangles:
@@ -130,11 +132,23 @@ inline GLenum PrimitiveTopology(Maxwell::PrimitiveTopology topology) {
130 return GL_TRIANGLE_FAN; 132 return GL_TRIANGLE_FAN;
131 case Maxwell::PrimitiveTopology::Quads: 133 case Maxwell::PrimitiveTopology::Quads:
132 return GL_QUADS; 134 return GL_QUADS;
133 default: 135 case Maxwell::PrimitiveTopology::QuadStrip:
134 LOG_CRITICAL(Render_OpenGL, "Unimplemented topology={}", static_cast<u32>(topology)); 136 return GL_QUAD_STRIP;
135 UNREACHABLE(); 137 case Maxwell::PrimitiveTopology::Polygon:
136 return {}; 138 return GL_POLYGON;
139 case Maxwell::PrimitiveTopology::LinesAdjacency:
140 return GL_LINES_ADJACENCY;
141 case Maxwell::PrimitiveTopology::LineStripAdjacency:
142 return GL_LINE_STRIP_ADJACENCY;
143 case Maxwell::PrimitiveTopology::TrianglesAdjacency:
144 return GL_TRIANGLES_ADJACENCY;
145 case Maxwell::PrimitiveTopology::TriangleStripAdjacency:
146 return GL_TRIANGLE_STRIP_ADJACENCY;
147 case Maxwell::PrimitiveTopology::Patches:
148 return GL_PATCHES;
137 } 149 }
150 UNREACHABLE_MSG("Invalid topology={}", static_cast<int>(topology));
151 return GL_POINTS;
138} 152}
139 153
140inline GLenum TextureFilterMode(Tegra::Texture::TextureFilter filter_mode, 154inline GLenum TextureFilterMode(Tegra::Texture::TextureFilter filter_mode,