mesa/src/gallium/drivers/softpipe
Adam Jackson 768238fdc0 glx: Fix drawable refcounting for naked Windows
driFetchDrawable is only ever called from the MakeCurrent path, which
means it has to handle the case of pre-GLX-1.3 Windows being named as
the drawable. When it finds the drawable in the hash, it increments its
refcount before returning it, so for a GLXWindow it would be 2 on first
return, one from glXCreateWindow and one from glXMakeCurrent. But when
it does not find the drawable and creates one for the naked Window, the
reference count on first return would only be 1. As a result, if this
context was then ever bound to a different drawable, the old Window's
DRI drawable state (like the back buffer) would be destroyed.

Fixes piglit's glx-multi-window-single-context and glx-make-current for
a variety of drivers.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6713
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17479>
2022-07-13 12:25:30 -04:00
..
ci glx: Fix drawable refcounting for naked Windows 2022-07-13 12:25:30 -04:00
meson.build softpipe: Drop the quad pstipple stage. 2021-12-27 09:57:46 -08:00
sp_buffer.c
sp_buffer.h
sp_clear.c
sp_clear.h
sp_compute.c softpipe: Dispatch 4 CS invocations per tgsi_exec thread. 2022-01-26 22:52:19 +00:00
sp_context.c util: Rename pipe_debug_callback to util_debug_callback 2022-04-01 01:52:43 +00:00
sp_context.h util: Rename pipe_debug_callback to util_debug_callback 2022-04-01 01:52:43 +00:00
sp_draw_arrays.c
sp_fence.c
sp_fence.h
sp_flush.c
sp_flush.h
sp_fs.h
sp_fs_exec.c
sp_image.c
sp_image.h
sp_limits.h
sp_prim_vbuf.c
sp_prim_vbuf.h
sp_public.h
sp_quad.h
sp_quad_blend.c softpipe: respect !independent_blend_enable for color masks. 2022-01-20 05:41:07 +00:00
sp_quad_depth_test.c
sp_quad_depth_test_tmp.h
sp_quad_fs.c
sp_quad_pipe.c softpipe: Drop the quad pstipple stage. 2021-12-27 09:57:46 -08:00
sp_quad_pipe.h softpipe: Drop the quad pstipple stage. 2021-12-27 09:57:46 -08:00
sp_query.c
sp_query.h
sp_screen.c gallium: rename PIPE_CAP_MAX_SHADER_BUFFER_SIZE -> *_UINT 2022-06-07 00:17:58 -04:00
sp_screen.h
sp_setup.c
sp_setup.h
sp_state.h softpipe: Add a dummy field to sp_fragment_shader_variant_key 2021-12-27 12:25:57 -08:00
sp_state_blend.c
sp_state_clip.c Change all debug_assert calls to assert 2022-07-10 00:50:35 +00:00
sp_state_derived.c softpipe: Use the draw module's poly stipple handling, like llvmpipe. 2021-12-27 09:57:53 -08:00
sp_state_image.c
sp_state_rasterizer.c
sp_state_sampler.c
sp_state_shader.c util: Rename pipe_debug_message to util_debug_message 2022-04-01 01:52:43 +00:00
sp_state_so.c
sp_state_surface.c
sp_state_vertex.c
sp_surface.c gallium/util: fix util_can_blit_via_copy_region with unbound render condition 2021-11-04 15:06:09 +00:00
sp_surface.h
sp_tex_sample.c
sp_tex_sample.h
sp_tex_tile_cache.c
sp_tex_tile_cache.h
sp_texture.c
sp_texture.h
sp_tile_cache.c
sp_tile_cache.h