summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_cache.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-11-11 17:28:20 +0100
committerGitHub <noreply@github.com>2018-11-11 17:28:20 +0100
commiteaee73f95d4785c36a7e81f1f087e0be52de7e17 (patch)
tree7350b90238e7fc2325bb8ca1eeab34858c2b595b /src/video_core/renderer_opengl/gl_shader_cache.h
parentMerge pull request #1663 from lioncash/raster (diff)
parentgl_shader_decompiler: Guard out of bound geometry shader input reads (diff)
downloadyuzu-eaee73f95d4785c36a7e81f1f087e0be52de7e17.tar
yuzu-eaee73f95d4785c36a7e81f1f087e0be52de7e17.tar.gz
yuzu-eaee73f95d4785c36a7e81f1f087e0be52de7e17.tar.bz2
yuzu-eaee73f95d4785c36a7e81f1f087e0be52de7e17.tar.lz
yuzu-eaee73f95d4785c36a7e81f1f087e0be52de7e17.tar.xz
yuzu-eaee73f95d4785c36a7e81f1f087e0be52de7e17.tar.zst
yuzu-eaee73f95d4785c36a7e81f1f087e0be52de7e17.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_shader_cache.h')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.h b/src/video_core/renderer_opengl/gl_shader_cache.h
index 016ab18f9..ffbf21831 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.h
+++ b/src/video_core/renderer_opengl/gl_shader_cache.h
@@ -48,22 +48,23 @@ public:
}
switch (primitive_mode) {
case GL_POINTS:
- return LazyGeometryProgram(geometry_programs.points, "points", "ShaderPoints");
+ return LazyGeometryProgram(geometry_programs.points, "points", 1, "ShaderPoints");
case GL_LINES:
case GL_LINE_STRIP:
- return LazyGeometryProgram(geometry_programs.lines, "lines", "ShaderLines");
+ return LazyGeometryProgram(geometry_programs.lines, "lines", 2, "ShaderLines");
case GL_LINES_ADJACENCY:
case GL_LINE_STRIP_ADJACENCY:
- return LazyGeometryProgram(geometry_programs.lines_adjacency, "lines_adjacency",
+ return LazyGeometryProgram(geometry_programs.lines_adjacency, "lines_adjacency", 4,
"ShaderLinesAdjacency");
case GL_TRIANGLES:
case GL_TRIANGLE_STRIP:
case GL_TRIANGLE_FAN:
- return LazyGeometryProgram(geometry_programs.triangles, "triangles", "ShaderTriangles");
+ return LazyGeometryProgram(geometry_programs.triangles, "triangles", 3,
+ "ShaderTriangles");
case GL_TRIANGLES_ADJACENCY:
case GL_TRIANGLE_STRIP_ADJACENCY:
return LazyGeometryProgram(geometry_programs.triangles_adjacency, "triangles_adjacency",
- "ShaderLines");
+ 6, "ShaderTrianglesAdjacency");
default:
UNREACHABLE_MSG("Unknown primitive mode.");
}
@@ -78,7 +79,7 @@ public:
private:
/// Generates a geometry shader or returns one that already exists.
GLuint LazyGeometryProgram(OGLProgram& target_program, const std::string& glsl_topology,
- const std::string& debug_name);
+ u32 max_vertices, const std::string& debug_name);
VAddr addr;
Maxwell::ShaderProgram program_type;