| Index: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
|
| index c94c0bf58856e47f071d448e96e241787301e411..efc2b9b58bc6d523ae0c2c3c3d941af4245146e3 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
|
| @@ -3451,37 +3451,71 @@ bool GLES2DecoderImpl::SetCapabilityState(GLenum cap, bool enabled) {
|
| switch (cap) {
|
| case GL_BLEND:
|
| state_.enable_flags.blend = enabled;
|
| - return true;
|
| + if (state_.enable_flags.cached_blend != enabled ||
|
| + state_.ignore_cached_state) {
|
| + state_.enable_flags.cached_blend = enabled;
|
| + return true;
|
| + }
|
| + return false;
|
| case GL_CULL_FACE:
|
| state_.enable_flags.cull_face = enabled;
|
| - return true;
|
| + if (state_.enable_flags.cached_cull_face != enabled ||
|
| + state_.ignore_cached_state) {
|
| + state_.enable_flags.cached_cull_face = enabled;
|
| + return true;
|
| + }
|
| + return false;
|
| case GL_DEPTH_TEST:
|
| - if (state_.enable_flags.depth_test != enabled) {
|
| - state_.enable_flags.depth_test = enabled;
|
| + state_.enable_flags.depth_test = enabled;
|
| + if (state_.enable_flags.cached_depth_test != enabled ||
|
| + state_.ignore_cached_state) {
|
| framebuffer_state_.clear_state_dirty = true;
|
| }
|
| return false;
|
| case GL_DITHER:
|
| state_.enable_flags.dither = enabled;
|
| - return true;
|
| + if (state_.enable_flags.cached_dither != enabled ||
|
| + state_.ignore_cached_state) {
|
| + state_.enable_flags.cached_dither = enabled;
|
| + return true;
|
| + }
|
| + return false;
|
| case GL_POLYGON_OFFSET_FILL:
|
| state_.enable_flags.polygon_offset_fill = enabled;
|
| - return true;
|
| + if (state_.enable_flags.cached_polygon_offset_fill != enabled ||
|
| + state_.ignore_cached_state) {
|
| + state_.enable_flags.cached_polygon_offset_fill = enabled;
|
| + return true;
|
| + }
|
| + return false;
|
| case GL_SAMPLE_ALPHA_TO_COVERAGE:
|
| state_.enable_flags.sample_alpha_to_coverage = enabled;
|
| - return true;
|
| + if (state_.enable_flags.cached_sample_alpha_to_coverage != enabled ||
|
| + state_.ignore_cached_state) {
|
| + state_.enable_flags.cached_sample_alpha_to_coverage = enabled;
|
| + return true;
|
| + }
|
| + return false;
|
| case GL_SAMPLE_COVERAGE:
|
| state_.enable_flags.sample_coverage = enabled;
|
| - return true;
|
| + if (state_.enable_flags.cached_sample_coverage != enabled ||
|
| + state_.ignore_cached_state) {
|
| + state_.enable_flags.cached_sample_coverage = enabled;
|
| + return true;
|
| + }
|
| + return false;
|
| case GL_SCISSOR_TEST:
|
| - if (state_.enable_flags.scissor_test != enabled) {
|
| - state_.enable_flags.scissor_test = enabled;
|
| - framebuffer_state_.clear_state_dirty = true;
|
| + state_.enable_flags.scissor_test = enabled;
|
| + if (state_.enable_flags.cached_scissor_test != enabled ||
|
| + state_.ignore_cached_state) {
|
| + state_.enable_flags.cached_scissor_test = enabled;
|
| + return true;
|
| }
|
| return false;
|
| case GL_STENCIL_TEST:
|
| - if (state_.enable_flags.stencil_test != enabled) {
|
| - state_.enable_flags.stencil_test = enabled;
|
| + state_.enable_flags.stencil_test = enabled;
|
| + if (state_.enable_flags.cached_stencil_test != enabled ||
|
| + state_.ignore_cached_state) {
|
| framebuffer_state_.clear_state_dirty = true;
|
| }
|
| return false;
|
|
|