@ -514,6 +514,7 @@ void RasterizerOpenGL::Clear() {
ConfigureClearFramebuffer ( clear_state , use_color , use_depth , use_stencil ) ;
SyncViewport ( clear_state ) ;
SyncRasterizeEnable ( clear_state ) ;
if ( regs . clear_flags . scissor ) {
SyncScissorTest ( clear_state ) ;
}
@ -541,6 +542,7 @@ void RasterizerOpenGL::Clear() {
void RasterizerOpenGL : : DrawPrelude ( ) {
auto & gpu = system . GPU ( ) . Maxwell3D ( ) ;
SyncRasterizeEnable ( state ) ;
SyncColorMask ( ) ;
SyncFragmentColorClampState ( ) ;
SyncMultiSampleState ( ) ;
@ -1133,6 +1135,11 @@ void RasterizerOpenGL::SyncStencilTestState() {
}
}
void RasterizerOpenGL : : SyncRasterizeEnable ( OpenGLState & current_state ) {
const auto & regs = system . GPU ( ) . Maxwell3D ( ) . regs ;
current_state . rasterizer_discard = regs . rasterize_enable = = 0 ;
}
void RasterizerOpenGL : : SyncColorMask ( ) {
auto & maxwell3d = system . GPU ( ) . Maxwell3D ( ) ;
if ( ! maxwell3d . dirty . color_mask ) {