diff options
| author | FernandoS27 <fsahmkow27@gmail.com> | 2018-10-11 20:29:11 -0400 |
|---|---|---|
| committer | FernandoS27 <fsahmkow27@gmail.com> | 2018-10-22 15:35:45 -0400 |
| commit | 8e1239fbc59325f5a9898329af869ae575ec983f (patch) | |
| tree | cf0f76b28c1c67a800c723136c7e6000d9e380f6 /src/video_core/renderer_opengl/gl_rasterizer.cpp | |
| parent | 59a004f915e84fec4a4fed125661eb486e1de198 (diff) | |
Assert that multiple render targets are not set while alpha testing
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index d93681813..be51c5215 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -574,6 +574,7 @@ void RasterizerOpenGL::DrawArrays() { // Alpha Testing is synced on shaders. SyncTransformFeedback(); SyncPointState(); + CheckAlphaTests(); // TODO(bunnei): Sync framebuffer_scale uniform here // TODO(bunnei): Sync scissorbox uniform(s) here @@ -1041,4 +1042,15 @@ void RasterizerOpenGL::SyncPointState() { state.point.size = regs.point_size == 0 ? 1 : regs.point_size; } +void RasterizerOpenGL::CheckAlphaTests() { + const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs; + + if (regs.alpha_test_enabled != 0 && regs.rt_control.count > 1) { + LOG_CRITICAL( + Render_OpenGL, + "Alpha Testing is enabled with Multiple Render Targets, this behavior is undefined."); + UNREACHABLE(); + } +} + } // namespace OpenGL |
