[Mesa-dev] [PATCH 0/6] st/mesa: add locking around lazy texture/sampler updates

Roland Scheidegger sroland at vmware.com
Fri Oct 6 22:36:35 UTC 2017


I can't help but think that there'd be none of those problems if those
views were actually used as specced by gallium initially: all sampler
views (and surfaces) are per context, and they simply cannot be used in
another context.

Roland

Am 06.10.2017 um 22:38 schrieb Nicolai Hähnle:
> Hi all,
> 
> This series is a first result of debugging some random crashes in dEQP's
> multi-threaded EGL tests.
> 
> The OpenGL spec is pretty clear that application must not modify a texture
> in one context while simultaneously using it for texturing (or even
> modifying) it in another context. Texturing simultaneously in multiple
> contexts is fine, though.
> 
> This can lead to races when st_finalize_texture is called simultaneously
> for two contexts, or if two contexts simultaneously attempt to access the
> sampler view array of a texture.
> 
> This series should fix most (all?) issues where our internal data
> structures could become corrupted. I am aware of one remaining corner
> case that could lead to rendering corruption. It appears rather non-trivial
> to fix, and it is documented in a comment of patch #5.
> 
> Please review!
> Thanks,
> Nicolai
> --
>  src/gallium/auxiliary/util/u_inlines.h   |  16 ++-
>  src/gallium/include/pipe/p_context.h     |  10 ++
>  src/mesa/state_tracker/st_atom_sampler.c |  12 +-
>  src/mesa/state_tracker/st_atom_texture.c |  12 --
>  src/mesa/state_tracker/st_cb_texture.c   |  59 +++++++--
>  src/mesa/state_tracker/st_manager.c      |   3 +
>  src/mesa/state_tracker/st_sampler_view.c | 137 +++++++++++++++++----
>  src/mesa/state_tracker/st_sampler_view.h |   7 ++
>  src/mesa/state_tracker/st_texture.h      |  23 +++-
>  9 files changed, 205 insertions(+), 74 deletions(-)
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=DwIGaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=aJQCyBglFPt5-boeH0TmdwZPCq7mlewl6Obk3Gs6ckY&s=uJEnKpDKTfDfspSkPSUNxyVCXwiiizKYJ4xWFybULew&e= 
> 



More information about the mesa-dev mailing list