Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
index a11d2ec467d6643f507a35040f3335d5b25b3a7f..fe82cbb20e82a22f142068b62626c62b18cc5a29 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -6176,12 +6176,30 @@ void GLES2DecoderImpl::DoFramebufferRenderbuffer( |
void GLES2DecoderImpl::DoDisable(GLenum cap) { |
if (SetCapabilityState(cap, false)) { |
+ if (cap == GL_PRIMITIVE_RESTART_FIXED_INDEX) { |
+ // TODO(Yunchao): crbug.com/594021 |
+ // On Desktop GL with versions lower than 4.3, we need to emulate |
+ // GL_PRIMITIVE_RESTART_FIXED_INDEX using glPrimitiveRestartIndex(). |
+ if (feature_info_->feature_flags().emulate_primitive_restart_fixed_index) { |
+ return; |
+ } |
+ buffer_manager()->SetPrimitiveRestartState(false); |
+ } |
glDisable(cap); |
} |
} |
void GLES2DecoderImpl::DoEnable(GLenum cap) { |
if (SetCapabilityState(cap, true)) { |
+ if (cap == GL_PRIMITIVE_RESTART_FIXED_INDEX) { |
+ // TODO(Yunchao): crbug.com/594021 |
+ // On Desktop GL with versions lower than 4.3, we need to emulate |
+ // GL_PRIMITIVE_RESTART_FIXED_INDEX using glPrimitiveRestartIndex(). |
+ if (feature_info_->feature_flags().emulate_primitive_restart_fixed_index) { |
+ return; |
+ } |
+ buffer_manager()->SetPrimitiveRestartState(true); |
+ } |
glEnable(cap); |
} |
} |