| Index: gpu/command_buffer/service/context_state.cc
|
| diff --git a/gpu/command_buffer/service/context_state.cc b/gpu/command_buffer/service/context_state.cc
|
| index 94192a6129b60afddd03bd3597aa5876f8b62f03..5aa24fbacd095e7c09ea022d30254b49588ba9fe 100644
|
| --- a/gpu/command_buffer/service/context_state.cc
|
| +++ b/gpu/command_buffer/service/context_state.cc
|
| @@ -221,7 +221,6 @@ ContextState::ContextState(FeatureInfo* feature_info,
|
| pack_reverse_row_order(false),
|
| ignore_cached_state(false),
|
| fbo_binding_for_scissor_workaround_dirty(false),
|
| - framebuffer_srgb_(false),
|
| feature_info_(feature_info),
|
| error_state_(ErrorState::Create(error_state_client, logger)) {
|
| Initialize();
|
| @@ -505,15 +504,8 @@ void ContextState::RestoreState(const ContextState* prev_state) {
|
| RestoreIndexedUniformBufferBindings(prev_state);
|
| RestoreGlobalState(prev_state);
|
|
|
| - if (!prev_state) {
|
| - if (feature_info_->feature_flags().desktop_srgb_support) {
|
| - framebuffer_srgb_ = false;
|
| - glDisable(GL_FRAMEBUFFER_SRGB);
|
| - }
|
| - } else if (framebuffer_srgb_ != prev_state->framebuffer_srgb_) {
|
| - // FRAMEBUFFER_SRGB will be restored lazily at render time.
|
| - framebuffer_srgb_ = prev_state->framebuffer_srgb_;
|
| - }
|
| + // FRAMEBUFFER_SRGB will be restored lazily at render time.
|
| + framebuffer_srgb_valid_ = false;
|
| }
|
|
|
| ErrorState* ContextState::GetErrorState() {
|
| @@ -706,10 +698,11 @@ PixelStoreParams ContextState::GetUnpackParams(Dimension dimension) {
|
| }
|
|
|
| void ContextState::EnableDisableFramebufferSRGB(bool enable) {
|
| - if (framebuffer_srgb_ == enable)
|
| + if (framebuffer_srgb_valid_ && framebuffer_srgb_ == enable)
|
| return;
|
| EnableDisable(GL_FRAMEBUFFER_SRGB, enable);
|
| framebuffer_srgb_ = enable;
|
| + framebuffer_srgb_valid_ = true;
|
| }
|
|
|
| void ContextState::InitStateManual(const ContextState*) const {
|
|
|