[Mesa-dev] [Bug 98172] Concurrent call to glClientWaitSync results in segfault in one of the waiters.
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Wed Oct 19 18:47:07 UTC 2016
https://bugs.freedesktop.org/show_bug.cgi?id=98172
--- Comment #36 from Suzuki, Shinji <shinji.suzuki at gmail.com> ---
Michel-san, thank you for elaboration. Maybe this discussion continues because
I have failed to express my question clearly. What I'm wondering is that if the
following section needs to be protected by ctx->Shared->Mutex or not.
screen->fence_reference(screen, &fence, so->fence);
if(!fence) {
/* If the so->fence has been reset to NULL, the fence have been reached
but so->b.StatusFlag may not be set to GL_TRUE yet. Since the caller
may check on the value of the flag as soon as the control returns,
do the same too although redundant.
*/
so->b.StatusFlag = GL_TRUE;
goto quit;
}
I completely agree that locking is needed in the following section marked with
!.
(so->b.StatusFlag = GL_TRUE can be moved out of the block though.)
if (screen->fence_finish(screen, fence, 0)) {
! mtx_lock(&ctx->Shared->Mutex);
! screen->fence_reference(screen, &so->fence, NULL);
! so->b.StatusFlag = GL_TRUE;
! mtx_unlock(&ctx->Shared->Mutex);
}
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161019/7a4393d3/attachment.html>
More information about the mesa-dev
mailing list