Commit 29a20992 by Corentin Wallez Committed by Commit Bot

Add back dirty bits for pack / unpack buffer binding

BUG=angleproject:2169 Change-Id: I8cee9e1c7565d90022216d62b45f0eec5bc51f14 Reviewed-on: https://chromium-review.googlesource.com/755461Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
parent 7af0de52
...@@ -390,10 +390,12 @@ Context::Context(rx::EGLImplFactory *implFactory, ...@@ -390,10 +390,12 @@ Context::Context(rx::EGLImplFactory *implFactory,
// Initialize dirty bit masks // Initialize dirty bit masks
mTexImageDirtyBits.set(State::DIRTY_BIT_UNPACK_STATE); mTexImageDirtyBits.set(State::DIRTY_BIT_UNPACK_STATE);
mTexImageDirtyBits.set(State::DIRTY_BIT_UNPACK_BUFFER_BINDING);
// No dirty objects. // No dirty objects.
// Readpixels uses the pack state and read FBO // Readpixels uses the pack state and read FBO
mReadPixelsDirtyBits.set(State::DIRTY_BIT_PACK_STATE); mReadPixelsDirtyBits.set(State::DIRTY_BIT_PACK_STATE);
mReadPixelsDirtyBits.set(State::DIRTY_BIT_PACK_BUFFER_BINDING);
mReadPixelsDirtyObjects.set(State::DIRTY_OBJECT_READ_FRAMEBUFFER); mReadPixelsDirtyObjects.set(State::DIRTY_OBJECT_READ_FRAMEBUFFER);
mClearDirtyBits.set(State::DIRTY_BIT_RASTERIZER_DISCARD_ENABLED); mClearDirtyBits.set(State::DIRTY_BIT_RASTERIZER_DISCARD_ENABLED);
......
...@@ -1341,13 +1341,13 @@ void State::setCopyWriteBufferBinding(const Context *context, Buffer *buffer) ...@@ -1341,13 +1341,13 @@ void State::setCopyWriteBufferBinding(const Context *context, Buffer *buffer)
void State::setPixelPackBufferBinding(const Context *context, Buffer *buffer) void State::setPixelPackBufferBinding(const Context *context, Buffer *buffer)
{ {
mPack.pixelBuffer.set(context, buffer); mPack.pixelBuffer.set(context, buffer);
mDirtyBits.set(DIRTY_BIT_PACK_STATE); mDirtyBits.set(DIRTY_BIT_PACK_BUFFER_BINDING);
} }
void State::setPixelUnpackBufferBinding(const Context *context, Buffer *buffer) void State::setPixelUnpackBufferBinding(const Context *context, Buffer *buffer)
{ {
mUnpack.pixelBuffer.set(context, buffer); mUnpack.pixelBuffer.set(context, buffer);
mDirtyBits.set(DIRTY_BIT_UNPACK_STATE); mDirtyBits.set(DIRTY_BIT_UNPACK_BUFFER_BINDING);
} }
Buffer *State::getTargetBuffer(GLenum target) const Buffer *State::getTargetBuffer(GLenum target) const
......
...@@ -413,7 +413,9 @@ class State : public OnAttachmentDirtyReceiver, angle::NonCopyable ...@@ -413,7 +413,9 @@ class State : public OnAttachmentDirtyReceiver, angle::NonCopyable
DIRTY_BIT_CLEAR_DEPTH, DIRTY_BIT_CLEAR_DEPTH,
DIRTY_BIT_CLEAR_STENCIL, DIRTY_BIT_CLEAR_STENCIL,
DIRTY_BIT_UNPACK_STATE, DIRTY_BIT_UNPACK_STATE,
DIRTY_BIT_UNPACK_BUFFER_BINDING,
DIRTY_BIT_PACK_STATE, DIRTY_BIT_PACK_STATE,
DIRTY_BIT_PACK_BUFFER_BINDING,
DIRTY_BIT_DITHER_ENABLED, DIRTY_BIT_DITHER_ENABLED,
DIRTY_BIT_GENERATE_MIPMAP_HINT, DIRTY_BIT_GENERATE_MIPMAP_HINT,
DIRTY_BIT_SHADER_DERIVATIVE_HINT, DIRTY_BIT_SHADER_DERIVATIVE_HINT,
......
...@@ -1903,9 +1903,15 @@ void StateManagerGL::syncState(const gl::Context *context, const gl::State::Dirt ...@@ -1903,9 +1903,15 @@ void StateManagerGL::syncState(const gl::Context *context, const gl::State::Dirt
case gl::State::DIRTY_BIT_UNPACK_STATE: case gl::State::DIRTY_BIT_UNPACK_STATE:
setPixelUnpackState(state.getUnpackState()); setPixelUnpackState(state.getUnpackState());
break; break;
case gl::State::DIRTY_BIT_UNPACK_BUFFER_BINDING:
setPixelUnpackState(state.getUnpackState());
break;
case gl::State::DIRTY_BIT_PACK_STATE: case gl::State::DIRTY_BIT_PACK_STATE:
setPixelPackState(state.getPackState()); setPixelPackState(state.getPackState());
break; break;
case gl::State::DIRTY_BIT_PACK_BUFFER_BINDING:
setPixelPackState(state.getPackState());
break;
case gl::State::DIRTY_BIT_DITHER_ENABLED: case gl::State::DIRTY_BIT_DITHER_ENABLED:
setDitherEnabled(state.isDitherEnabled()); setDitherEnabled(state.isDitherEnabled());
break; break;
......
...@@ -640,9 +640,15 @@ void ContextVk::syncState(const gl::Context *context, const gl::State::DirtyBits ...@@ -640,9 +640,15 @@ void ContextVk::syncState(const gl::Context *context, const gl::State::DirtyBits
case gl::State::DIRTY_BIT_UNPACK_STATE: case gl::State::DIRTY_BIT_UNPACK_STATE:
WARN() << "DIRTY_BIT_UNPACK_STATE unimplemented"; WARN() << "DIRTY_BIT_UNPACK_STATE unimplemented";
break; break;
case gl::State::DIRTY_BIT_UNPACK_BUFFER_BINDING:
WARN() << "DIRTY_BIT_UNPACK_BUFFER_BINDING unimplemented";
break;
case gl::State::DIRTY_BIT_PACK_STATE: case gl::State::DIRTY_BIT_PACK_STATE:
WARN() << "DIRTY_BIT_PACK_STATE unimplemented"; WARN() << "DIRTY_BIT_PACK_STATE unimplemented";
break; break;
case gl::State::DIRTY_BIT_PACK_BUFFER_BINDING:
WARN() << "DIRTY_BIT_PACK_BUFFER_BINDING unimplemented";
break;
case gl::State::DIRTY_BIT_DITHER_ENABLED: case gl::State::DIRTY_BIT_DITHER_ENABLED:
WARN() << "DIRTY_BIT_DITHER_ENABLED unimplemented"; WARN() << "DIRTY_BIT_DITHER_ENABLED unimplemented";
break; break;
......
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