|
|
|
@ -162,14 +162,18 @@ void RasterizerOpenGL::Clear(u32 layer_count) {
|
|
|
|
|
SyncFramebufferSRGB();
|
|
|
|
|
}
|
|
|
|
|
if (regs.clear_surface.Z) {
|
|
|
|
|
ASSERT_MSG(regs.zeta_enable != 0, "Tried to clear Z but buffer is not enabled!");
|
|
|
|
|
if (regs.zeta_enable != 0) {
|
|
|
|
|
LOG_DEBUG(Render_OpenGL, "Tried to clear Z but buffer is not enabled!");
|
|
|
|
|
}
|
|
|
|
|
use_depth = true;
|
|
|
|
|
|
|
|
|
|
state_tracker.NotifyDepthMask();
|
|
|
|
|
glDepthMask(GL_TRUE);
|
|
|
|
|
}
|
|
|
|
|
if (regs.clear_surface.S) {
|
|
|
|
|
ASSERT_MSG(regs.zeta_enable, "Tried to clear stencil but buffer is not enabled!");
|
|
|
|
|
if (regs.zeta_enable) {
|
|
|
|
|
LOG_DEBUG(Render_OpenGL, "Tried to clear stencil but buffer is not enabled!");
|
|
|
|
|
}
|
|
|
|
|
use_stencil = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1294,15 +1298,13 @@ void RasterizerOpenGL::BeginTransformFeedback(GraphicsPipeline* program, GLenum
|
|
|
|
|
program->ConfigureTransformFeedback();
|
|
|
|
|
|
|
|
|
|
UNIMPLEMENTED_IF(regs.IsShaderConfigEnabled(Maxwell::ShaderType::TessellationInit) ||
|
|
|
|
|
regs.IsShaderConfigEnabled(Maxwell::ShaderType::Tessellation) ||
|
|
|
|
|
regs.IsShaderConfigEnabled(Maxwell::ShaderType::Geometry));
|
|
|
|
|
UNIMPLEMENTED_IF(primitive_mode != GL_POINTS);
|
|
|
|
|
regs.IsShaderConfigEnabled(Maxwell::ShaderType::Tessellation));
|
|
|
|
|
|
|
|
|
|
// We may have to call BeginTransformFeedbackNV here since they seem to call different
|
|
|
|
|
// implementations on Nvidia's driver (the pointer is different) but we are using
|
|
|
|
|
// ARB_transform_feedback3 features with NV_transform_feedback interactions and the ARB
|
|
|
|
|
// extension doesn't define BeginTransformFeedback (without NV) interactions. It just works.
|
|
|
|
|
glBeginTransformFeedback(GL_POINTS);
|
|
|
|
|
glBeginTransformFeedback(primitive_mode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void RasterizerOpenGL::EndTransformFeedback() {
|
|
|
|
|