Commit d49f7351 by Cody Northrop Committed by Commit Bot

Capture/Replay: Ignore deletes of buffer 0

Per the spec for DeleteBuffers: > Unused names in buffers are silently ignored, as is the value zero. Haven't seen an app delete unknown buffers yet, but just hit one that deletes 0 a lot. Test: MEC for Disney Tsum Tsum Bug: b/184770989 Bug: angleproject:5835 Change-Id: I2070b753d89fdcf390203072cd7ec2c9f915089c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2811643 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: 's avatarTim Van Patten <timvp@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent efc53d0f
...@@ -3969,7 +3969,7 @@ void FrameCapture::maybeCapturePreCallUpdates(const gl::Context *context, CallCa ...@@ -3969,7 +3969,7 @@ void FrameCapture::maybeCapturePreCallUpdates(const gl::Context *context, CallCa
{ {
mBufferDataMap.erase(bufferDataInfo); mBufferDataMap.erase(bufferDataInfo);
} }
// If we're capturing, track what new buffers have been genned // If we're capturing, track what buffers have been deleted
if (mFrameIndex >= mCaptureStartFrame) if (mFrameIndex >= mCaptureStartFrame)
{ {
mResourceTracker.setDeletedBuffer(bufferIDs[i]); mResourceTracker.setDeletedBuffer(bufferIDs[i]);
...@@ -4531,6 +4531,12 @@ ResourceTracker::~ResourceTracker() = default; ...@@ -4531,6 +4531,12 @@ ResourceTracker::~ResourceTracker() = default;
void ResourceTracker::setDeletedBuffer(gl::BufferID id) void ResourceTracker::setDeletedBuffer(gl::BufferID id)
{ {
if (id.value == 0)
{
// Ignore buffer ID 0
return;
}
if (mNewBuffers.find(id) != mNewBuffers.end()) if (mNewBuffers.find(id) != mNewBuffers.end())
{ {
// This is a buffer genned after MEC was initialized, just clear it, since there will be no // This is a buffer genned after MEC was initialized, just clear it, since there will be no
......
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