diff options
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 279e5a4e0..4832c03c5 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -162,14 +162,18 @@ void RasterizerOpenGL::Clear(u32 layer_count) { | |||
| 162 | SyncFramebufferSRGB(); | 162 | SyncFramebufferSRGB(); |
| 163 | } | 163 | } |
| 164 | if (regs.clear_surface.Z) { | 164 | if (regs.clear_surface.Z) { |
| 165 | ASSERT_MSG(regs.zeta_enable != 0, "Tried to clear Z but buffer is not enabled!"); | 165 | if (regs.zeta_enable != 0) { |
| 166 | LOG_DEBUG(Render_OpenGL, "Tried to clear Z but buffer is not enabled!"); | ||
| 167 | } | ||
| 166 | use_depth = true; | 168 | use_depth = true; |
| 167 | 169 | ||
| 168 | state_tracker.NotifyDepthMask(); | 170 | state_tracker.NotifyDepthMask(); |
| 169 | glDepthMask(GL_TRUE); | 171 | glDepthMask(GL_TRUE); |
| 170 | } | 172 | } |
| 171 | if (regs.clear_surface.S) { | 173 | if (regs.clear_surface.S) { |
| 172 | ASSERT_MSG(regs.zeta_enable, "Tried to clear stencil but buffer is not enabled!"); | 174 | if (regs.zeta_enable) { |
| 175 | LOG_DEBUG(Render_OpenGL, "Tried to clear stencil but buffer is not enabled!"); | ||
| 176 | } | ||
| 173 | use_stencil = true; | 177 | use_stencil = true; |
| 174 | } | 178 | } |
| 175 | 179 | ||
| @@ -1294,15 +1298,13 @@ void RasterizerOpenGL::BeginTransformFeedback(GraphicsPipeline* program, GLenum | |||
| 1294 | program->ConfigureTransformFeedback(); | 1298 | program->ConfigureTransformFeedback(); |
| 1295 | 1299 | ||
| 1296 | UNIMPLEMENTED_IF(regs.IsShaderConfigEnabled(Maxwell::ShaderType::TessellationInit) || | 1300 | UNIMPLEMENTED_IF(regs.IsShaderConfigEnabled(Maxwell::ShaderType::TessellationInit) || |
| 1297 | regs.IsShaderConfigEnabled(Maxwell::ShaderType::Tessellation) || | 1301 | regs.IsShaderConfigEnabled(Maxwell::ShaderType::Tessellation)); |
| 1298 | regs.IsShaderConfigEnabled(Maxwell::ShaderType::Geometry)); | ||
| 1299 | UNIMPLEMENTED_IF(primitive_mode != GL_POINTS); | ||
| 1300 | 1302 | ||
| 1301 | // We may have to call BeginTransformFeedbackNV here since they seem to call different | 1303 | // We may have to call BeginTransformFeedbackNV here since they seem to call different |
| 1302 | // implementations on Nvidia's driver (the pointer is different) but we are using | 1304 | // implementations on Nvidia's driver (the pointer is different) but we are using |
| 1303 | // ARB_transform_feedback3 features with NV_transform_feedback interactions and the ARB | 1305 | // ARB_transform_feedback3 features with NV_transform_feedback interactions and the ARB |
| 1304 | // extension doesn't define BeginTransformFeedback (without NV) interactions. It just works. | 1306 | // extension doesn't define BeginTransformFeedback (without NV) interactions. It just works. |
| 1305 | glBeginTransformFeedback(GL_POINTS); | 1307 | glBeginTransformFeedback(primitive_mode); |
| 1306 | } | 1308 | } |
| 1307 | 1309 | ||
| 1308 | void RasterizerOpenGL::EndTransformFeedback() { | 1310 | void RasterizerOpenGL::EndTransformFeedback() { |