Commit af5b008a by Jamie Madill

Fix stale validation cache on buffer deletion.

When we would delete the currently bound element array buffer we would neglect to invalidate a specific validation cache variable. This incorrectly would let us skip buffer size validation and lead to internal invalid memory accesses. Bug: chromium:1105202 Change-Id: I23ab28ccd3ac6b5d461cb8745b930f4d42d53b35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2323644Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent d188231d
...@@ -8646,6 +8646,7 @@ void StateCache::onVertexArrayStateChange(Context *context) ...@@ -8646,6 +8646,7 @@ void StateCache::onVertexArrayStateChange(Context *context)
updateActiveAttribsMask(context); updateActiveAttribsMask(context);
updateVertexElementLimits(context); updateVertexElementLimits(context);
updateBasicDrawStatesError(); updateBasicDrawStatesError();
updateBasicDrawElementsError();
} }
void StateCache::onVertexArrayBufferStateChange(Context *context) void StateCache::onVertexArrayBufferStateChange(Context *context)
......
...@@ -202,6 +202,7 @@ class StateCache final : angle::NonCopyable ...@@ -202,6 +202,7 @@ class StateCache final : angle::NonCopyable
// 1. onActiveTransformFeedbackChange. // 1. onActiveTransformFeedbackChange.
// 2. onVertexArrayBufferStateChange. // 2. onVertexArrayBufferStateChange.
// 3. onBufferBindingChange. // 3. onBufferBindingChange.
// 4. onVertexArrayStateChange.
intptr_t getBasicDrawElementsError(const Context *context) const intptr_t getBasicDrawElementsError(const Context *context) const
{ {
if (mCachedBasicDrawElementsError != kInvalidPointer) if (mCachedBasicDrawElementsError != kInvalidPointer)
......
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