Revert "glx: Fix drawable refcounting for naked Windows"
authorMartin Roukala (né Peres) <martin.roukala@mupuf.org>
Thu, 24 Nov 2022 06:38:17 +0000 (08:38 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 25 Nov 2022 20:08:45 +0000 (20:08 +0000)
This reverts commit 768238fdc06eed3dce36da3baf811cb70db42b5c which
is not only leading to memory leaks, but also reportedly breaks KDE
pretty badly.

Fixes: #7674, #7435
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19972>

23 files changed:
src/amd/ci/radeonsi-raven-fails.txt
src/amd/ci/radeonsi-stoney-fails.txt
src/broadcom/ci/broadcom-rpi3-fails.txt
src/broadcom/ci/broadcom-rpi3-flakes.txt
src/broadcom/ci/broadcom-rpi4-fails.txt
src/freedreno/ci/freedreno-a307-fails.txt
src/freedreno/ci/freedreno-a420-fails.txt
src/freedreno/ci/freedreno-a530-fails.txt
src/freedreno/ci/freedreno-a630-fails.txt
src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt
src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv
src/gallium/drivers/radeonsi/ci/gfx10_3-navi21-fail.csv
src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv
src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv
src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv
src/gallium/drivers/softpipe/ci/softpipe-fails.txt
src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt
src/gallium/drivers/zink/ci/zink-lvp-flakes.txt
src/gallium/drivers/zink/ci/zink-lvp-skips.txt
src/gallium/drivers/zink/ci/zink-radv-fails.txt
src/glx/dri_common.c
src/intel/ci/iris-kbl-fails.txt
src/panfrost/ci/panfrost-g52-fails.txt

index 613bbb4..a66c79b 100644 (file)
@@ -1,3 +1,5 @@
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-event_async,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Crash
index c924c73..20c1250 100644 (file)
@@ -1,3 +1,5 @@
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Crash
 glx@glx-visuals-stencil -pixmap,Crash
index d687924..3a8465d 100644 (file)
@@ -102,6 +102,7 @@ spec@glsl-1.20@execution@tex-miplevel-selection gl2:textureproj 3d,Fail
 spec@glsl-1.20@execution@tex-miplevel-selection gl2:textureproj(bias) 3d,Fail
 spec@khr_texture_compression_astc@basic-gl,Fail
 
+glx@glx-make-current,Crash
 glx@glx-multithread-buffer,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Fail
index a439170..d8bc487 100644 (file)
@@ -5,6 +5,7 @@ dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_pos_x_and_neg_x_n
 dEQP-GLES2.functional.draw.random.51
 dEQP-GLES2.functional.texture.size.cube.256x256_rgb888
 
+glx@glx-multi-window-single-context
 shaders@glsl-vs-loop
 shaders@glsl-vs-loop-nested
 spec@arb_framebuffer_srgb@blit renderbuffer srgb single_sampled enabled clear
index a0f0112..82282d7 100644 (file)
@@ -1,3 +1,5 @@
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-multithread-buffer,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Crash
index 4e957b7..90218ee 100644 (file)
@@ -156,6 +156,8 @@ spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_frontsecon
 spec@glsl-1.30@execution@interpolation@interpolation-noperspective-other-flat-fixed,Fail
 spec@glsl-1.30@execution@interpolation@interpolation-noperspective-other-smooth-fixed,Fail
 
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Crash
 glx@glx-visuals-stencil -pixmap,Crash
index 9eb4bb5..321bfc4 100644 (file)
@@ -291,6 +291,8 @@ spec@!opengl 2.1@polygon-stipple-fs,Fail
 spec@ext_packed_float@query-rgba-signed-components,Fail
 
 # Uncategorized piglit failures
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-query-drawable-glx_fbconfig_id-window,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Crash
index edb0696..42a9db7 100644 (file)
@@ -415,6 +415,8 @@ KHR-GLES3.packed_pixels.varied_rectangle.rgba32i,Fail
 KHR-GLES3.packed_pixels.varied_rectangle.rgba32ui,Fail
 
 
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Crash
 glx@glx-visuals-stencil -pixmap,Crash
index a1b7d76..788498f 100644 (file)
@@ -86,6 +86,8 @@ glx@glx_ext_import_context@imported context has same context id,Fail
 glx@glx_ext_import_context@make current- multi process,Fail
 glx@glx_ext_import_context@make current- single process,Fail
 glx@glx_ext_import_context@query context info,Fail
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Crash
 glx@glx-visuals-stencil -pixmap,Crash
index b246270..7b3046b 100644 (file)
@@ -29,6 +29,13 @@ spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail
 glx@glx-copy-sub-buffer,Fail
 glx@glx-copy-sub-buffer samples=2,Fail
 glx@glx-copy-sub-buffer samples=4,Fail
+
+# X Error of failed request:  BadMatch (invalid parameter attributes)
+#   Major opcode of failed request:  150 (GLX)
+#   Minor opcode of failed request:  11 (X_GLXSwapBuffers)
+glx@glx-make-current,Crash
+
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-copy,Fail
 glx@glx-swap-pixmap-bad,Fail
 
index f947217..2ee2de4 100644 (file)
@@ -1,6 +1,8 @@
 # LLVM 15.0.1
 
 # piglit failures
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-visuals-depth -pixmap,Crash
 glx@glx-visuals-stencil -pixmap,Crash
 glx@glx_arb_create_context_es2_profile@invalid opengl es version,Fail
index b28b869..abe2b62 100644 (file)
@@ -1,6 +1,8 @@
 # LLVM 15.0.1
 
 # piglit failures
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-event_interval,Fail
 glx@glx_arb_create_context_es2_profile@invalid opengl es version,Fail
 glx@glx_arb_create_context_no_error@no error,Fail
index 2eae791..f9d6f82 100644 (file)
@@ -1,9 +1,11 @@
 # piglit failures
-
 glx@extension string sanity,Fail
 glx@glx-buffer-age vblank_mode=0,Fail
+glx@glx-make-current,Crash
 glx@glx-make-glxdrawable-current,Fail
 glx@glx-multithread-makecurrent-1,Fail
+glx@glx-multithread-texture,Fail
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-event_async,Fail
 glx@glx-tfp,Fail
 glx@glx_arb_create_context_es2_profile@invalid opengl es version,Fail
index 547aed9..a2f658f 100644 (file)
@@ -1,4 +1,6 @@
 # piglit failures
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-visuals-depth -pixmap,Crash
 glx@glx-visuals-stencil -pixmap,Crash
 glx@glx_arb_create_context_es2_profile@invalid opengl es version,Fail
index 66e496c..fa79243 100644 (file)
@@ -5,6 +5,8 @@ spec@!opengl 1.1@windowoverlap,Fail
 spec@arb_shader_clock@execution@clock,Fail
 spec@egl_chromium_sync_control@conformance,Fail
 spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_msc_and_sbc_test,Fail
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-visuals-depth -pixmap,Fail
 glx@glx-visuals-stencil -pixmap,Fail
 glx@glx_arb_create_context_es2_profile@invalid opengl es version,Fail
index 15d4342..e9c8a5e 100644 (file)
@@ -908,8 +908,14 @@ KHR-GLES31.core.texture_storage_multisample.GLCoverage.gl_tex_parameter_handlers
 
 fast_color_clear@fcc-front-buffer-distraction,Fail
 
+# X Error of failed request:  BadMatch (invalid parameter attributes)
+#   Major opcode of failed request:  150 (GLX)
+#   Minor opcode of failed request:  11 (X_GLXSwapBuffers)
+glx@glx-make-current,Crash
+
 
 glx@glx-multi-context-front,Fail
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-copy,Fail
 glx@glx-swap-pixmap-bad,Fail
 
index 84c3cab..5d8a1f1 100644 (file)
@@ -83,6 +83,8 @@ KHR-GL43.transform_feedback_overflow_query_ARB.basic-single-stream-separate-attr
 KHR-GL43.transform_feedback_overflow_query_ARB.multiple-streams-multiple-buffers-per-stream,Fail
 KHR-GL43.transform_feedback_overflow_query_ARB.multiple-streams-one-buffer-per-stream,Fail
 
+glx@glx-make-current,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-multithread-clearbuffer,Crash
 glx@glx-multithread-texture,Crash
 glx@glx-swap-copy,Fail
index 33e5a40..77e78d7 100644 (file)
@@ -1,5 +1,6 @@
 dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_mirror_l8_pot
 spec@khr_debug@push-pop-group_gl.*
+glx@glx-multi-window-single-context
 
 # "Pending expose event- rerunning."
 #  exit status: signal: 11"
index a925453..c9c2639 100644 (file)
@@ -10,6 +10,7 @@ KHR-GL46.shader_ballot_tests.ShaderBallotFunctionRead
 
 # ignores copied from the old runner script
 spec@arb_map_buffer_alignment@arb_map_buffer_alignment-map-invalidate-range
+glx@glx-make-current
 spec@arb_timer_query.*
 spec@arb_sample_shading@builtin-gl-sample-mask
 spec@glsl-1.30@execution@tex-miplevel-selection.*
index 763483a..e448c02 100644 (file)
@@ -3,6 +3,7 @@ dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.sampler2dsh
 dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler2dshadow_vertex,Fail
 
 # kopper
+glx@glx-multi-window-single-context,Crash
 spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_ust_test,Fail
 
 # #6115
@@ -30,6 +31,7 @@ glx@glx_ext_import_context@imported context has same context id,Fail
 glx@glx_ext_import_context@make current- multi process,Fail
 glx@glx_ext_import_context@make current- single process,Fail
 glx@glx_ext_import_context@query context info,Fail
+glx@glx-make-current,Crash
 glx@glx-swap-copy,Fail
 glx@glx-swap-pixmap-bad,Fail
 
index d806d8c..bf14c91 100644 (file)
@@ -416,14 +416,7 @@ driFetchDrawable(struct glx_context *gc, GLXDrawable glxDrawable)
       (*pdraw->destroyDrawable) (pdraw);
       return NULL;
    }
-   /* This sure does look suspicious, doesn't it? We're on this path because
-    * this is a naked Window. GLX 1.3 drawables have an explicit creation
-    * step (setting refcount to 1), and those we would have found in the
-    * hash lookup above, bumped their refcount for the bind_context we're
-    * being called for, and then returned. But since we just created the
-    * internal naked-Window state, we need to account for both here.
-    */
-   pdraw->refcount = 2;
+   pdraw->refcount = 1;
 
    return pdraw;
 }
index 79f7622..723dbd9 100644 (file)
@@ -13,6 +13,15 @@ dEQP-GLES3.functional.texture.compressed.astc.void_extent_ldr.8x5,Fail
 dEQP-GLES3.functional.texture.compressed.astc.void_extent_ldr.8x6,Fail
 dEQP-GLES3.functional.texture.compressed.astc.void_extent_ldr.8x8,Fail
 
+# X Error of failed request:  BadMatch (invalid parameter attributes)
+#   Major opcode of failed request:  151 (GLX)
+#   Minor opcode of failed request:  11 (X_GLXSwapBuffers)
+#   Serial number of failed request:  79
+#   Current serial number in output stream:  80
+glx@glx-make-current,Crash
+
+glx@glx-multi-window-single-context,Fail
+
 glx@glx-swap-pixmap-bad,Fail
 
 # failed to create drawable
index e23ae08..bfdec49 100644 (file)
@@ -10,7 +10,9 @@ glx@glx_ext_import_context@imported context has same context id,Fail
 glx@glx_ext_import_context@make current- multi process,Fail
 glx@glx_ext_import_context@make current- single process,Fail
 glx@glx_ext_import_context@query context info,Fail
+glx@glx-make-current,Crash
 glx@glx-multithread-clearbuffer,Crash
+glx@glx-multi-window-single-context,Fail
 glx@glx-swap-pixmap-bad,Fail
 glx@glx-visuals-depth -pixmap,Crash
 glx@glx-visuals-stencil -pixmap,Crash