diff --git a/include/gpu/GrDriverBugWorkaroundsAutogen.h b/include/gpu/GrDriverBugWorkaroundsAutogen.h
index b0a5100..4db9479 100644
--- a/include/gpu/GrDriverBugWorkaroundsAutogen.h
+++ b/include/gpu/GrDriverBugWorkaroundsAutogen.h
@@ -22,6 +22,8 @@
          emulate_abs_int_function)                      \
   GPU_OP(FLUSH_ON_FRAMEBUFFER_CHANGE,                   \
          flush_on_framebuffer_change)                   \
+  GPU_OP(FORCE_UPDATE_SCISSOR_STATE_WHEN_BINDING_FBO0,  \
+         force_update_scissor_state_when_binding_fbo0)  \
   GPU_OP(GL_CLEAR_BROKEN,                               \
          gl_clear_broken)                               \
   GPU_OP(MAX_FRAGMENT_UNIFORM_VECTORS_32,               \
@@ -34,8 +36,6 @@
          pack_parameters_workaround_with_pack_buffer)   \
   GPU_OP(REMOVE_POW_WITH_CONSTANT_EXPONENT,             \
          remove_pow_with_constant_exponent)             \
-  GPU_OP(RESTORE_SCISSOR_ON_FBO_CHANGE,                 \
-         restore_scissor_on_fbo_change)                 \
   GPU_OP(REWRITE_DO_WHILE_LOOPS,                        \
          rewrite_do_while_loops)                        \
   GPU_OP(UNBIND_ATTACHMENTS_ON_BOUND_RENDER_FBO_DELETE, \
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index 9a6b33f..f679806 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -2206,6 +2206,21 @@
         fHWBoundRenderTargetUniqueID = rtID;
         this->flushViewport(target->width(), target->height());
     }
+    if (this->caps()->workarounds().force_update_scissor_state_when_binding_fbo0 &&
+        fBoundDrawFramebuffer == 0) {
+        // The driver forgets the correct scissor state when using FBO 0.
+        if (!fHWScissorSettings.fRect.isInvalid()) {
+            const GrNativeRect& r = fHWScissorSettings.fRect;
+            GL_CALL(Scissor(r.fX, r.fY, r.fWidth, r.fHeight));
+        }
+        if (fHWScissorSettings.fEnabled == kYes_TriState) {
+            GL_CALL(Disable(GR_GL_SCISSOR_TEST));
+            GL_CALL(Enable(GR_GL_SCISSOR_TEST));
+        } else if (fHWScissorSettings.fEnabled == kNo_TriState) {
+            GL_CALL(Enable(GR_GL_SCISSOR_TEST));
+            GL_CALL(Disable(GR_GL_SCISSOR_TEST));
+        }
+    }
 
     if (this->glCaps().srgbWriteControl()) {
         this->flushFramebufferSRGB(this->caps()->isFormatSRGB(target->backendFormat()));
@@ -2882,8 +2897,7 @@
 }
 
 void GrGLGpu::onFBOChanged() {
-    if (this->caps()->workarounds().flush_on_framebuffer_change ||
-        this->caps()->workarounds().restore_scissor_on_fbo_change) {
+    if (this->caps()->workarounds().flush_on_framebuffer_change) {
         this->flush(FlushType::kForce);
     }
 #ifdef SK_DEBUG
@@ -2900,15 +2914,6 @@
     if (target == GR_GL_FRAMEBUFFER || target == GR_GL_DRAW_FRAMEBUFFER) {
         fBoundDrawFramebuffer = fboid;
     }
-
-    if (this->caps()->workarounds().restore_scissor_on_fbo_change) {
-        // The driver forgets the correct scissor when modifying the FBO binding.
-        if (!fHWScissorSettings.fRect.isInvalid()) {
-            const GrNativeRect& r = fHWScissorSettings.fRect;
-            GL_CALL(Scissor(r.fX, r.fY, r.fWidth, r.fHeight));
-        }
-    }
-
     this->onFBOChanged();
 }
 
diff --git a/src/gpu/gpu_workaround_list.txt b/src/gpu/gpu_workaround_list.txt
index 3f30fd1..5d96845 100644
--- a/src/gpu/gpu_workaround_list.txt
+++ b/src/gpu/gpu_workaround_list.txt
@@ -5,13 +5,13 @@
 disallow_large_instanced_draw
 emulate_abs_int_function
 flush_on_framebuffer_change
+force_update_scissor_state_when_binding_fbo0
 gl_clear_broken
 max_fragment_uniform_vectors_32
 max_msaa_sample_count_4
 max_texture_size_limit_4096
 pack_parameters_workaround_with_pack_buffer
 remove_pow_with_constant_exponent
-restore_scissor_on_fbo_change
 rewrite_do_while_loops
 unbind_attachments_on_bound_render_fbo_delete
 unfold_short_circuit_as_ternary_operation
