summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamie Madill <jmadill@chromium.org>2022-03-01 14:55:00 -0500
committerMichal Klocek <michal.klocek@qt.io>2022-04-06 17:30:13 +0000
commit1cf332f844d9e771e7680fc0e7369aa10d50f7b7 (patch)
treed908d66a82d96ec565e7d5df1b93bbe50b088b28
parentc952af0b13fdcbfc657de6c88ffbbc9f74473536 (diff)
downloadqtwebengine-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.cpp10
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp2
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.