From: Martin Roukala (né Peres) Date: Thu, 24 Nov 2022 06:38:17 +0000 (+0200) Subject: Revert "glx: Fix drawable refcounting for naked Windows" X-Git-Tag: upstream/23.3.3~16352 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0cee008fee1dc0365cfb767ff7acf03f2127a03b;p=platform%2Fupstream%2Fmesa.git Revert "glx: Fix drawable refcounting for naked Windows" 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 Acked-by: Tapani Pälli Acked-by: Adam Jackson Signed-off-by: Martin Roukala (né Peres) Part-of: --- diff --git a/src/amd/ci/radeonsi-raven-fails.txt b/src/amd/ci/radeonsi-raven-fails.txt index 613bbb4..a66c79b 100644 --- a/src/amd/ci/radeonsi-raven-fails.txt +++ b/src/amd/ci/radeonsi-raven-fails.txt @@ -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 diff --git a/src/amd/ci/radeonsi-stoney-fails.txt b/src/amd/ci/radeonsi-stoney-fails.txt index c924c73..20c1250 100644 --- a/src/amd/ci/radeonsi-stoney-fails.txt +++ b/src/amd/ci/radeonsi-stoney-fails.txt @@ -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 diff --git a/src/broadcom/ci/broadcom-rpi3-fails.txt b/src/broadcom/ci/broadcom-rpi3-fails.txt index d687924..3a8465d 100644 --- a/src/broadcom/ci/broadcom-rpi3-fails.txt +++ b/src/broadcom/ci/broadcom-rpi3-fails.txt @@ -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 diff --git a/src/broadcom/ci/broadcom-rpi3-flakes.txt b/src/broadcom/ci/broadcom-rpi3-flakes.txt index a439170..d8bc487 100644 --- a/src/broadcom/ci/broadcom-rpi3-flakes.txt +++ b/src/broadcom/ci/broadcom-rpi3-flakes.txt @@ -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 diff --git a/src/broadcom/ci/broadcom-rpi4-fails.txt b/src/broadcom/ci/broadcom-rpi4-fails.txt index a0f0112..82282d7 100644 --- a/src/broadcom/ci/broadcom-rpi4-fails.txt +++ b/src/broadcom/ci/broadcom-rpi4-fails.txt @@ -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 diff --git a/src/freedreno/ci/freedreno-a307-fails.txt b/src/freedreno/ci/freedreno-a307-fails.txt index 4e957b7..90218ee 100644 --- a/src/freedreno/ci/freedreno-a307-fails.txt +++ b/src/freedreno/ci/freedreno-a307-fails.txt @@ -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 diff --git a/src/freedreno/ci/freedreno-a420-fails.txt b/src/freedreno/ci/freedreno-a420-fails.txt index 9eb4bb5..321bfc4 100644 --- a/src/freedreno/ci/freedreno-a420-fails.txt +++ b/src/freedreno/ci/freedreno-a420-fails.txt @@ -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 diff --git a/src/freedreno/ci/freedreno-a530-fails.txt b/src/freedreno/ci/freedreno-a530-fails.txt index edb0696..42a9db7 100644 --- a/src/freedreno/ci/freedreno-a530-fails.txt +++ b/src/freedreno/ci/freedreno-a530-fails.txt @@ -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 diff --git a/src/freedreno/ci/freedreno-a630-fails.txt b/src/freedreno/ci/freedreno-a630-fails.txt index a1b7d76..788498f 100644 --- a/src/freedreno/ci/freedreno-a630-fails.txt +++ b/src/freedreno/ci/freedreno-a630-fails.txt @@ -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 diff --git a/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt b/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt index b246270..7b3046b 100644 --- a/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt +++ b/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt @@ -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 diff --git a/src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv index f947217..2ee2de4 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv @@ -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 diff --git a/src/gallium/drivers/radeonsi/ci/gfx10_3-navi21-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx10_3-navi21-fail.csv index b28b869..abe2b62 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx10_3-navi21-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx10_3-navi21-fail.csv @@ -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 diff --git a/src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv index 2eae791..f9d6f82 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv @@ -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 diff --git a/src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv index 547aed9..a2f658f 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv @@ -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 diff --git a/src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv index 66e496c..fa79243 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv @@ -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 diff --git a/src/gallium/drivers/softpipe/ci/softpipe-fails.txt b/src/gallium/drivers/softpipe/ci/softpipe-fails.txt index 15d4342..e9c8a5e 100644 --- a/src/gallium/drivers/softpipe/ci/softpipe-fails.txt +++ b/src/gallium/drivers/softpipe/ci/softpipe-fails.txt @@ -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 diff --git a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt index 84c3cab..5d8a1f1 100644 --- a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt +++ b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt @@ -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 diff --git a/src/gallium/drivers/zink/ci/zink-lvp-flakes.txt b/src/gallium/drivers/zink/ci/zink-lvp-flakes.txt index 33e5a40..77e78d7 100644 --- a/src/gallium/drivers/zink/ci/zink-lvp-flakes.txt +++ b/src/gallium/drivers/zink/ci/zink-lvp-flakes.txt @@ -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" diff --git a/src/gallium/drivers/zink/ci/zink-lvp-skips.txt b/src/gallium/drivers/zink/ci/zink-lvp-skips.txt index a925453..c9c2639 100644 --- a/src/gallium/drivers/zink/ci/zink-lvp-skips.txt +++ b/src/gallium/drivers/zink/ci/zink-lvp-skips.txt @@ -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.* diff --git a/src/gallium/drivers/zink/ci/zink-radv-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-fails.txt index 763483a..e448c02 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-fails.txt @@ -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 diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c index d806d8c..bf14c91 100644 --- a/src/glx/dri_common.c +++ b/src/glx/dri_common.c @@ -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; } diff --git a/src/intel/ci/iris-kbl-fails.txt b/src/intel/ci/iris-kbl-fails.txt index 79f7622..723dbd9 100644 --- a/src/intel/ci/iris-kbl-fails.txt +++ b/src/intel/ci/iris-kbl-fails.txt @@ -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 diff --git a/src/panfrost/ci/panfrost-g52-fails.txt b/src/panfrost/ci/panfrost-g52-fails.txt index e23ae08..bfdec49 100644 --- a/src/panfrost/ci/panfrost-g52-fails.txt +++ b/src/panfrost/ci/panfrost-g52-fails.txt @@ -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