diff options
author | Jamie Madill <jmadill@chromium.org> | 2022-03-01 14:55:00 -0500 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2022-04-06 17:30:13 +0000 |
commit | 1cf332f844d9e771e7680fc0e7369aa10d50f7b7 (patch) | |
tree | d908d66a82d96ec565e7d5df1b93bbe50b088b28 | |
parent | c952af0b13fdcbfc657de6c88ffbbc9f74473536 (diff) | |
download | qtwebengine-chromium-1cf332f844d9e771e7680fc0e7369aa10d50f7b7.tar.gz |
[Backport] CVE-2022-0978
Fix base level changes not updating FBO completeness check.
M96 merge issues:
- RendererVk.cpp:
conflicting kSkippedSyncvalMessages entries
- vk_helpers.cpp
getRenderPassWriteCommandCount() not present in M96
- capture_replay_expectations.txt:
conflicting skipped test entries
- src/tests/gl_tests/FramebufferTest.cpp
RedefineLayerAttachment not present in M96
Backport review link::
https://chromium-review.googlesource.com/c/angle/angle/+/3498282
Bug: chromium:1299264
Change-Id: I663f9e02364d3d716acfa615f8c30e1cca7ece1c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | chromium/third_party/angle/src/libANGLE/Texture.cpp | 10 | ||||
-rw-r--r-- | chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/chromium/third_party/angle/src/libANGLE/Texture.cpp b/chromium/third_party/angle/src/libANGLE/Texture.cpp index 51b90c12016..8b06fa19d89 100644 --- a/chromium/third_party/angle/src/libANGLE/Texture.cpp +++ b/chromium/third_party/angle/src/libANGLE/Texture.cpp @@ -1147,7 +1147,15 @@ void Texture::signalDirtyState(size_t dirtyBit) mDirtyBits.set(dirtyBit); invalidateCompletenessCache(); mState.mCachedSamplerFormatValid = false; - onStateChange(angle::SubjectMessage::DirtyBitsFlagged); + + if (dirtyBit == DIRTY_BIT_BASE_LEVEL || dirtyBit == DIRTY_BIT_MAX_LEVEL) + { + onStateChange(angle::SubjectMessage::SubjectChanged); + } + else + { + onStateChange(angle::SubjectMessage::DirtyBitsFlagged); + } } angle::Result Texture::setImage(Context *context, diff --git a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp index b2506365613..a1379fbcea2 100644 --- a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp +++ b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp @@ -1379,7 +1379,7 @@ void CommandBufferHelper::invalidateRenderPassDepthAttachment(const gl::DepthSte { ASSERT(mIsRenderPassCommandBuffer); // Keep track of the size of commands in the command buffer. If the size grows in the - // future, that implies that drawing occured since invalidated. + // future, that implies that drawing occurred since invalidated. mDepthCmdSizeInvalidated = mCommandBuffer.getCommandSize(); // Also track the size if the attachment is currently disabled. |