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 5a0bfcb6f9ff5b278fd104149c67f368b88ac648..8d49b6524aedbcd3c7fc92bed5e13d7c67d1c7e6 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -6154,12 +6154,30 @@ void GLES2DecoderImpl::DoFramebufferRenderbuffer( |
} |
void GLES2DecoderImpl::DoDisable(GLenum cap) { |
+ 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; |
Ken Russell (switch to Gerrit)
2016/03/19 00:06:41
This short-circuit here and in DoEnable looks wron
|
+ } |
+ buffer_manager()->SetPrimitiveRestartState(false); |
+ } |
if (SetCapabilityState(cap, false)) { |
glDisable(cap); |
} |
} |
void GLES2DecoderImpl::DoEnable(GLenum cap) { |
+ 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); |
+ } |
if (SetCapabilityState(cap, true)) { |
glEnable(cap); |
} |