summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2019-12-26 16:38:39 -0300
committerGravatar ReinUsesLisp2019-12-26 16:38:49 -0300
commit5b989f189fbf30535f5509a2157dc755fcb4d8f0 (patch)
treec0b96b4e098e1cb4b51ad5b04bf7686e33cb5545 /src
parentMerge pull request #3244 from ReinUsesLisp/vk-fps (diff)
downloadyuzu-5b989f189fbf30535f5509a2157dc755fcb4d8f0.tar.gz
yuzu-5b989f189fbf30535f5509a2157dc755fcb4d8f0.tar.xz
yuzu-5b989f189fbf30535f5509a2157dc755fcb4d8f0.zip
gl_rasterizer: Allow rendering without fragment shader
Rendering without a fragment shader is usually used in depth-only passes.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp3
-rw-r--r--src/video_core/renderer_opengl/gl_shader_manager.h4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index dbb08dd80..672051102 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -271,6 +271,9 @@ void RasterizerOpenGL::SetupShaders(GLenum primitive_mode) {
271 case Maxwell::ShaderProgram::Geometry: 271 case Maxwell::ShaderProgram::Geometry:
272 shader_program_manager->UseTrivialGeometryShader(); 272 shader_program_manager->UseTrivialGeometryShader();
273 break; 273 break;
274 case Maxwell::ShaderProgram::Fragment:
275 shader_program_manager->UseTrivialFragmentShader();
276 break;
274 default: 277 default:
275 break; 278 break;
276 } 279 }
diff --git a/src/video_core/renderer_opengl/gl_shader_manager.h b/src/video_core/renderer_opengl/gl_shader_manager.h
index 3703e7018..478c165ce 100644
--- a/src/video_core/renderer_opengl/gl_shader_manager.h
+++ b/src/video_core/renderer_opengl/gl_shader_manager.h
@@ -50,6 +50,10 @@ public:
50 current_state.geometry_shader = 0; 50 current_state.geometry_shader = 0;
51 } 51 }
52 52
53 void UseTrivialFragmentShader() {
54 current_state.fragment_shader = 0;
55 }
56
53private: 57private:
54 struct PipelineState { 58 struct PipelineState {
55 bool operator==(const PipelineState& rhs) const { 59 bool operator==(const PipelineState& rhs) const {