mesa/src/gallium/drivers/zink
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
nir_to_spirv zink: rewrite atomic ssbo intrinsics as atomic derefs 2022-06-10 21:10:51 +00:00
driinfo_zink.h driconf: add override for Xwayland 2022-04-07 00:17:40 +00:00
meson.build zink: add back kms handling 2022-06-04 01:27:53 +00:00
zink_batch.c zink: delete zink_resource_object::dt_has_data 2022-06-28 02:42:02 +00:00
zink_batch.h zink: add batch api for adding a wait semaphore 2022-06-16 02:01:53 +00:00
zink_blit.c zink: remove buffer valid range tracking from blit 2022-06-06 00:36:20 +00:00
zink_bo.c zink: move BAR allocation demotion up the stack 2022-06-17 01:14:45 +00:00
zink_bo.h zink: add semaphore handling for sparse binds 2022-06-16 02:01:53 +00:00
zink_clear.c zink: enforce viewport depth clamping 2022-06-30 22:57:10 +00:00
zink_clear.h
zink_compiler.c zink: Lower uadd_sat/usub_sat. 2022-07-13 07:34:09 +00:00
zink_compiler.h zink: cap driver inlining using ssa allocation limit 2022-06-13 16:04:01 +00:00
zink_context.c zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_context.h zink: store context flags 2022-06-30 14:48:42 +00:00
zink_descriptors.c zink: fix buffer descriptor hashing 2022-06-09 12:17:45 +00:00
zink_descriptors.h zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_descriptors_lazy.c zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_device_info.py zink: add missing guards around `have_{ext}` 2022-07-13 14:41:59 +00:00
zink_draw.cpp zink: enforce viewport depth clamping 2022-06-30 22:57:10 +00:00
zink_extensions.py zink/codegen: use the updated identifiers 2022-07-12 15:53:11 +00:00
zink_fence.c mesa: fix SignalSemaphoreEXT behavior 2022-07-10 16:15:17 +00:00
zink_fence.h zink: use uint64_t for batch_id 2022-06-16 00:30:45 +00:00
zink_format.c zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_format.h zink: add function for decomposing vertex format to single component 2021-09-14 01:55:56 +00:00
zink_format_test.c
zink_framebuffer.c zink: clamp renderpass layers better 2022-06-16 00:05:52 +00:00
zink_framebuffer.h zink: add a function for getting the minimum framebuffer layers 2022-06-16 00:05:52 +00:00
zink_helpers.h
zink_inlines.h zink: implement pipe_context::draw_vertex_state 2021-11-17 03:16:13 +00:00
zink_instance.py zink: Print the VkResult if vkCreateInstance fails 2022-06-04 00:19:19 +00:00
zink_kopper.c kopper: Use the swap interval that was set at swapchain creation time. 2022-07-12 21:57:23 +00:00
zink_kopper.h zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_lower_cubemap_to_array.c zink: fix cubemap lowering bit size 2022-06-14 19:57:40 +00:00
zink_pipeline.c zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_pipeline.h zink: expand patch_vertices pipeline key bitsize 2022-06-03 01:23:58 +00:00
zink_program.c zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_program.h zink: handle shader key variants that have nonseamless cubemaps 2022-04-07 14:36:25 +00:00
zink_public.h zink: it's kopperin' time 2022-04-07 00:17:40 +00:00
zink_query.c zink: Do the timestamp-to-ns math in a double to have better precision. 2022-07-12 16:58:10 +00:00
zink_query.h zink: move get_timestamp to screen 2022-05-17 03:46:56 +00:00
zink_render_pass.c zink: check for pending clears to determine write status of zs attachments 2022-06-14 20:58:55 +00:00
zink_render_pass.h zink: rename renderpass attrib value 2022-06-06 00:36:20 +00:00
zink_resource.c zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_resource.h zink: use updated tokens from vk.xml 2022-07-12 15:53:11 +00:00
zink_screen.c zink: fix portability_subset usage after rename from EXTX to KHR 2022-07-13 14:41:59 +00:00
zink_screen.h zink: store and reuse memory heap flags for buffer placement 2022-06-17 01:14:45 +00:00
zink_shader_keys.h zink: handle multisampled fbfetch 2022-04-08 18:24:30 +00:00
zink_state.c zink: fix dual_src_blend driconf workaround 2022-06-22 03:14:18 +00:00
zink_state.h zink: Always enable depth clamping, make depth clipping independent. 2022-06-21 15:44:54 +00:00
zink_surface.c zink: move to AoS for storing swapchain struct data 2022-06-28 02:42:02 +00:00
zink_surface.h zink: remove the worst part of basic framebuffer support 2022-04-18 23:45:30 +00:00