intel/dri: finish proper glthread
authorSergii Romantsov <sergii.romantsov@globallogic.com>
Wed, 5 Jun 2019 11:33:58 +0000 (14:33 +0300)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 5 Sep 2019 16:04:12 +0000 (09:04 -0700)
commit1dce75c1839f08cfa78400367019f998c258eff5
tree1997f548265706e1fd0b33d14c9018fcde11bf8e
parent3f5b541fc8b2aae6e71783b7a9bb8eb2ffa3a74d
intel/dri: finish proper glthread

KWin was able to get NULL-context in the call
intelUnbindContext. But a call _mesa_glthread_finish
is not resistent to such case.
Case can be catched with steps:
1. Create both glx and egl contexts
2. Make glx as current
3. Make egl as current
4. Reset glx context
5. Make egl as current

Solution adds proper finishing of glthread-context
(context will be taken from the requested dri-context
for unbinding, but not from the saved current context).

Piglit-test: https://gitlab.freedesktop.org/mesa/piglit/merge_requests/87

Cc: 19.1 19.2 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110814
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111271
Fixes: dca36d5516d0 (i965: Implement threaded GL support)
Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_context.c