summaryrefslogtreecommitdiff
path: root/opengl/libagl/array.cpp
diff options
context:
space:
mode:
author Brian Anderson <brianderson@google.com> 2017-08-08 16:31:37 -0700
committer Jesse Hall <jessehall@google.com> 2017-10-11 16:21:22 -0700
commitbf8f508cd3d42b78a3e503ce3203b908444f92e6 (patch)
tree7c6d527aa3d64fc4b62241c765d5d4d104a74a6e /opengl/libagl/array.cpp
parent6cfabaeb66753867751864ca97398bfea89faa09 (diff)
Merge fences when needed for accurate timestamps.
There's an optimization in ConsumerBase that checks the status of the current fence before merging it with a new fence. If the current fence has already signaled, then it just picks up the new fence without merging. Unfortunately, if the new fence is already signaled too, then it's possible that it signaled long before the current fence, which can result in an inaccurate timestamp with the current logic. The new logic merges the fences when the statuses of the current and new fences are the same. If they differ, then it takes the unsignaled fence. This fixes the reads done timestamps in the GetFrameTimestamps dEQP tests so that they are always monotonic and always arrive after rendering completes. Test: --deqp-case=dEQP-EGL*get_frame_timestamps* Bug: 37513882 Change-Id: I345e48aae0fbb3c28c2f2c0dc035e6b0fa70df43 (cherry picked from commit 7b097e2e3d9dd9444916ddf77d75ca394e6b753e) (cherry picked from commit bc52c7039cc89e5cb14a8ee48fabfc70a96c0c89)
Diffstat (limited to 'opengl/libagl/array.cpp')
0 files changed, 0 insertions, 0 deletions