From 8856379a030be313227ba4d92083a4b05749b58e Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Fri, 20 May 2022 17:31:46 +0200 Subject: [PATCH] mesa/st: don't guess the internal format if it's known MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes tests using imageLoad/imageStore on texture created using glEGLImageTargetTexture2DOES. Before this change, the format was guessed as GL_RGBA, which would be rejected by _mesa_get_shader_image_format. Reviewed-by: Adam Jackson Reviewed-by: Marek Olšák Part-of: --- src/freedreno/ci/freedreno-a630-fails.txt | 1 - .../drivers/llvmpipe/ci/llvmpipe-fails.txt | 2 -- .../drivers/radeonsi/ci/gfx10-navi10-fail.csv | 3 --- .../drivers/radeonsi/ci/gfx10_3-navi21-fail.csv | 3 --- .../drivers/radeonsi/ci/gfx8-polaris11-fail.csv | 3 --- .../drivers/radeonsi/ci/gfx9-raven-fail.csv | 3 --- .../drivers/radeonsi/ci/gfx9-vega20-fail.csv | 3 --- .../radeonsi/ci/radeonsi-stoney-fails.txt | 3 --- .../drivers/softpipe/ci/softpipe-fails.txt | 4 ---- .../drivers/virgl/ci/virpipe-gl-fails.txt | 3 --- src/gallium/drivers/zink/ci/zink-lvp-fails.txt | 4 ---- src/intel/ci/iris-kbl-fails.txt | 4 ---- src/mesa/state_tracker/st_cb_eglimage.c | 16 ++++++++++------ 13 files changed, 10 insertions(+), 42 deletions(-) diff --git a/src/freedreno/ci/freedreno-a630-fails.txt b/src/freedreno/ci/freedreno-a630-fails.txt index 0c41d07ab4c..e2b50755547 100644 --- a/src/freedreno/ci/freedreno-a630-fails.txt +++ b/src/freedreno/ci/freedreno-a630-fails.txt @@ -413,7 +413,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode full precision,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb@sRGB decode,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail diff --git a/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt b/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt index 3c59a3cbb19..d165affe0ef 100644 --- a/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt +++ b/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt @@ -160,8 +160,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode ful spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb@sRGB decode,Fail spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_textureSize,Fail spec@arb_gpu_shader_fp64@execution@conversion@frag-conversion-explicit-dmat2-mat2,Fail diff --git a/src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv index 308a7745a51..d76031c1f7f 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx10-navi10-fail.csv @@ -140,9 +140,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode full precision,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail wgl@wgl-multi-context-single-window,Fail wgl@wgl-multi-window-single-context,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 4dd7599f501..95bebb9e3ea 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx10_3-navi21-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx10_3-navi21-fail.csv @@ -148,9 +148,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode full precision,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail wgl@wgl-multi-context-single-window,Fail wgl@wgl-multi-window-single-context,Fail diff --git a/src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv index 54fbbc9a528..f9cc7a9d444 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx8-polaris11-fail.csv @@ -247,9 +247,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode full precision,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail wgl@wgl-multi-context-single-window,Fail wgl@wgl-multi-window-single-context,Fail diff --git a/src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv index 7cd5f50959e..1f52c4ca20e 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx9-raven-fail.csv @@ -252,9 +252,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode full spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail spec@nv_compute_shader_derivatives@compiler@new_functions.comp,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail wgl@wgl-multi-context-single-window,Fail wgl@wgl-multi-window-single-context,Fail diff --git a/src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv index 8b6ece3128d..b8048c8931e 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx9-vega20-fail.csv @@ -158,9 +158,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode full precision,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail wgl@wgl-multi-context-single-window,Fail wgl@wgl-multi-window-single-context,Fail diff --git a/src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt b/src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt index e53dd245806..15ab0aa63d8 100644 --- a/src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt +++ b/src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt @@ -126,9 +126,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode ful spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode full precision,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail CreateContext/VAAPICreateContext.CreateContext/1035,Crash CreateContext/VAAPICreateContext.CreateContext/1120,Crash diff --git a/src/gallium/drivers/softpipe/ci/softpipe-fails.txt b/src/gallium/drivers/softpipe/ci/softpipe-fails.txt index 67984a05fea..95257ca3113 100644 --- a/src/gallium/drivers/softpipe/ci/softpipe-fails.txt +++ b/src/gallium/drivers/softpipe/ci/softpipe-fails.txt @@ -1346,10 +1346,6 @@ spec@nv_primitive_restart@primitive-restart-draw-mode-triangle_strip,Fail spec@nv_primitive_restart@primitive-restart-draw-mode-triangles,Fail spec@nv_read_depth@read_depth_gles3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail - spec@oes_texture_view@rendering-formats,Fail spec@oes_texture_view@rendering-formats@clear GL_RGBA8_SNORM as GL_R32F,Fail spec@!opengl 1.0@depth-clear-precision-check,Fail diff --git a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt index 76d71cad565..e3732a59883 100644 --- a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt +++ b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt @@ -956,9 +956,6 @@ spec@nv_copy_image@nv_copy_image-formats@Source: GL_DEPTH_COMPONENT24/Destinatio spec@nv_primitive_restart@primitive-restart-draw-mode-polygon,Crash spec@nv_primitive_restart@primitive-restart-draw-mode-quad_strip,Crash spec@nv_read_depth@read_depth_gles3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail spec@!opengl 1.0@depth-clear-precision-check,Fail spec@!opengl 1.0@depth-clear-precision-check@depth32,Fail diff --git a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt index 39dc17d70ea..c4d6172eaaa 100644 --- a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt @@ -362,10 +362,6 @@ spec@arb_tessellation_shader@execution@tcs-tes-levels-out-of-bounds-write,Crash spec@khr_texture_compression_astc@array-gles,Fail spec@khr_texture_compression_astc@array-gles@12x12 Block Dim,Fail spec@khr_texture_compression_astc@array-gles@5x5 Block Dim,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail - #literally no driver can pass these spec@!opengl 1.0@rasterpos,Fail diff --git a/src/intel/ci/iris-kbl-fails.txt b/src/intel/ci/iris-kbl-fails.txt index 14abde12feb..adbaf54618a 100644 --- a/src/intel/ci/iris-kbl-fails.txt +++ b/src/intel/ci/iris-kbl-fails.txt @@ -225,7 +225,3 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode full # piglit: error: Mode: ldrs Block: 5x5. spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail - -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail -spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail diff --git a/src/mesa/state_tracker/st_cb_eglimage.c b/src/mesa/state_tracker/st_cb_eglimage.c index 0912c35f5ae..03ff48b672f 100644 --- a/src/mesa/state_tracker/st_cb_eglimage.c +++ b/src/mesa/state_tracker/st_cb_eglimage.c @@ -272,12 +272,16 @@ st_bind_egl_image(struct gl_context *ctx, GLenum internalFormat; mesa_format texFormat; - /* map pipe format to base format */ - if (util_format_get_component_bits(stimg->format, - UTIL_FORMAT_COLORSPACE_RGB, 3) > 0) - internalFormat = GL_RGBA; - else - internalFormat = GL_RGB; + if (stimg->internalformat) { + internalFormat = stimg->internalformat; + } else { + /* map pipe format to base format */ + if (util_format_get_component_bits(stimg->format, + UTIL_FORMAT_COLORSPACE_RGB, 3) > 0) + internalFormat = GL_RGBA; + else + internalFormat = GL_RGB; + } /* switch to surface based */ if (!texObj->surface_based) {