Commit b6c3e77b by Corentin Wallez Committed by Commit Bot

StateManagerGL: handle GL_DITHER

DITHER is on by default and dEQP precision tests turn this off, to avoid dithering messing with the precision. The OpenGL backend didn't handle glDisable(GL_DITHER) causing precision to be wrong on RGB565 on Linux Intel. BUG=angleproject:1492 Change-Id: I5e750fbe9df397e8b9a826979b14c84a2d72a00d Reviewed-on: https://chromium-review.googlesource.com/382111Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
parent e731d8aa
......@@ -119,6 +119,7 @@ StateManagerGL::StateManagerGL(const FunctionsGL *functions, const gl::Caps &ren
mClearDepth(1.0f),
mClearStencil(0),
mFramebufferSRGBEnabled(false),
mDitherEnabled(true),
mTextureCubemapSeamlessEnabled(false),
mMultisamplingEnabled(true),
mSampleAlphaToOneEnabled(false),
......@@ -1513,7 +1514,7 @@ void StateManagerGL::syncState(const gl::State &state, const gl::State::DirtyBit
setPixelPackState(state.getPackState());
break;
case gl::State::DIRTY_BIT_DITHER_ENABLED:
// TODO(jmadill): implement this
setDitherEnabled(state.isDitherEnabled());
break;
case gl::State::DIRTY_BIT_GENERATE_MIPMAP_HINT:
// TODO(jmadill): implement this
......@@ -1588,6 +1589,22 @@ void StateManagerGL::setFramebufferSRGBEnabled(bool enabled)
}
}
void StateManagerGL::setDitherEnabled(bool enabled)
{
if (mDitherEnabled != enabled)
{
mDitherEnabled = enabled;
if (mDitherEnabled)
{
mFunctions->enable(GL_DITHER);
}
else
{
mFunctions->disable(GL_DITHER);
}
}
}
void StateManagerGL::setMultisamplingStateEnabled(bool enabled)
{
if (mMultisamplingEnabled != enabled)
......
......@@ -124,6 +124,8 @@ class StateManagerGL final : angle::NonCopyable
void setFramebufferSRGBEnabled(bool enabled);
void setDitherEnabled(bool enabled);
void setMultisamplingStateEnabled(bool enabled);
void setSampleAlphaToOneStateEnabled(bool enabled);
......@@ -264,6 +266,7 @@ class StateManagerGL final : angle::NonCopyable
GLint mClearStencil;
bool mFramebufferSRGBEnabled;
bool mDitherEnabled;
bool mTextureCubemapSeamlessEnabled;
bool mMultisamplingEnabled;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment