glsl: use array element type to validate assignment

When comparing an vec3 and a vec4 array, scalar type is the same for
both (float). Instead use the array element type to compare (that is,
vec3 vs vec4).

Fixes
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert
piglit test.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37783>
This commit is contained in:
Juan A. Suarez Romero
2025-10-07 09:22:40 +02:00
committed by Marge Bot
parent 6d59a3e3e7
commit 9f45f09b86
19 changed files with 2 additions and 23 deletions
-1
View File
@@ -764,7 +764,6 @@ spec@arb_clear_texture@arb_clear_texture-3d,Fail
spec@arb_clear_texture@arb_clear_texture-sized-formats,Fail
spec@glsl-1.10@execution@glsl-fs-inline-explosion,Crash
spec@glsl-1.10@execution@glsl-vs-inline-explosion,Crash
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
# Bisected to b3133e250e1 ("gallium: add pipe_context::resource_release to eliminate buffer refcounting")
spec@!opengl 1.1@longprim,Crash
-1
View File
@@ -247,7 +247,6 @@ spec@glsl-1.10@execution@glsl-fs-inline-explosion,Crash
spec@glsl-1.10@execution@glsl-vs-inline-explosion,Fail
spec@glsl-1.10@execution@loops@glsl-fs-unroll-explosion,Crash
spec@glsl-1.10@execution@loops@glsl-vs-unroll-explosion,Crash
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail
spec@glsl-1.20@execution@fs-underflow-mul-compare-zero,Fail
spec@khr_texture_compression_astc@miptree-gles srgb-fp,Fail
-1
View File
@@ -216,7 +216,6 @@ spec@glsl-1.10@execution@glsl-fs-inline-explosion,Crash
spec@glsl-1.10@execution@glsl-vs-inline-explosion,Crash
spec@glsl-1.10@execution@loops@glsl-fs-unroll-explosion,Crash
spec@glsl-1.10@execution@loops@glsl-vs-unroll-explosion,Crash
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail
spec@glsl-1.20@execution@fs-underflow-mul-compare-zero,Fail
spec@glsl-1.30@execution@varying-packing-mixed-types,Crash
+2 -1
View File
@@ -903,7 +903,8 @@ validate_assignment(struct _mesa_glsl_parse_state *state,
}
if (unsized_array) {
if (is_initializer) {
if (glsl_get_scalar_type(rhs->type) == glsl_get_scalar_type(lhs->type))
if (glsl_without_array_or_matrix(rhs->type) ==
glsl_without_array_or_matrix(lhs->type))
return rhs;
} else {
_mesa_glsl_error(&loc, state,
@@ -841,8 +841,6 @@ spec@glsl-1.10@execution@varying-packing@simple vec3 separate,Fail
spec@glsl-1.10@execution@varying-packing@simple vec4 array,Fail
spec@glsl-1.10@execution@varying-packing@simple vec4 separate,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.20@execution@array_bounds@glsl-array-bounds-13,Fail
spec@glsl-1.20@execution@built-in-functions@fs-matrixcompmult-mat2x3-mat2x3,Fail
@@ -8,7 +8,6 @@ x11-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.sync_stat
x11-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.sync_status.vertex,Fail
x11-dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.sync_status.vertex_and_fragment,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail
glx@glx-make-current,Fail
@@ -816,8 +816,6 @@ spec@ext_texture_srgb@fbo-fast-clear,Fail
spec@ext_transform_feedback@immediate-reuse-index-buffer,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail
spec@glsl-1.20@execution@fs-nan-builtin-max,Fail
@@ -1206,8 +1206,6 @@ spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SR
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT- swizzled- border color only,Fail
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_S3TC_DXT1_EXT- swizzled- border color only,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail
spec@glsl-1.30@execution@clipping@vs-clip-distance-primitives,Fail
@@ -15,7 +15,6 @@ spec@arb_shading_language_packing@execution@built-in-functions@fs-packhalf2x16,F
spec@arb_shading_language_packing@execution@built-in-functions@vs-packhalf2x16,Fail
spec@egl_chromium_sync_control@conformance,Fail
spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_msc_and_sbc_test,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail
1 # LLVM 18.1.2
15 spec@egl_chromium_sync_control@conformance,Fail
16 spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_msc_and_sbc_test,Fail
17 spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
18 spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
19 spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail
20 spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail
@@ -14,7 +14,6 @@ spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail
spec@arb_shading_language_packing@execution@built-in-functions@fs-packhalf2x16,Fail
spec@arb_shading_language_packing@execution@built-in-functions@vs-packhalf2x16,Fail
spec@arb_texture_multisample@sample-position@8,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
spec@khr_texture_compression_astc@miptree-gles srgb-fp,Fail
1 # piglit failures
14 spec@arb_shading_language_packing@execution@built-in-functions@fs-packhalf2x16,Fail
15 spec@arb_shading_language_packing@execution@built-in-functions@vs-packhalf2x16,Fail
16 spec@arb_texture_multisample@sample-position@8,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
17 spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
18 spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
19 spec@khr_texture_compression_astc@miptree-gles srgb-fp,Fail
@@ -14,7 +14,6 @@ spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail
spec@arb_shading_language_packing@execution@built-in-functions@fs-packhalf2x16,Fail
spec@arb_shading_language_packing@execution@built-in-functions@vs-packhalf2x16,Fail
spec@egl 1.4@egl-ext_egl_image_storage,Crash
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail
1 # LLVM 20-dev (da439d3af47b)
14 spec@arb_shading_language_packing@execution@built-in-functions@vs-packhalf2x16,Fail
15 spec@egl 1.4@egl-ext_egl_image_storage,Crash
16 spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
17 spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
18 spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail
19 spec@khr_texture_compression_astc@miptree-gles srgb-fp,Fail
@@ -11,7 +11,6 @@ spec@arb_pipeline_statistics_query@arb_pipeline_statistics_query-clip,Fail
spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail
spec@arb_shading_language_packing@execution@built-in-functions@fs-packhalf2x16,Fail
spec@arb_shading_language_packing@execution@built-in-functions@vs-packhalf2x16,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
spec@khr_texture_compression_astc@miptree-gles srgb-fp,Fail
1 # piglit failures
11 spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail
12 spec@arb_shading_language_packing@execution@built-in-functions@fs-packhalf2x16,Fail
13 spec@arb_shading_language_packing@execution@built-in-functions@vs-packhalf2x16,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
14 spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
15 spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
16 spec@khr_texture_compression_astc@miptree-gles srgb-fp,Fail
@@ -16,7 +16,6 @@ spec@ext_framebuffer_blit@fbo-blit-check-limits,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y210,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
spec@khr_texture_compression_astc@miptree-gles srgb-fp,Fail
1 glx@glx_arb_create_context_no_error@no error Fail
16 spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212 Fail
17 spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216 Fail
18 spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16 Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16 Fail
19 spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16 Fail
20 spec@khr_texture_compression_astc@miptree-gles srgb-fp Fail
21 spec@khr_texture_compression_astc@miptree-gles srgb-fp@sRGB decode full precision Fail
@@ -130,7 +130,6 @@ spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SR
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT- swizzled- border color only,Fail
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT- swizzled- border color only,Fail
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_S3TC_DXT1_EXT- swizzled- border color only,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
1 # piglit failures
130 spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT- swizzled- border color only,Fail
131 spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT- swizzled- border color only,Fail
132 spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_S3TC_DXT1_EXT- swizzled- border color only,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
133 spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
134 spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
135 spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
@@ -122,7 +122,6 @@ spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SR
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT- swizzled- border color only,Fail
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT- swizzled- border color only,Fail
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_S3TC_DXT1_EXT- swizzled- border color only,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
spec@glsl-es-1.00@linker@glsl-mismatched-uniform-precision-unused,Fail
1 # piglit failures
122 spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT- swizzled- border color only,Fail
123 spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT- swizzled- border color only,Fail
124 spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_S3TC_DXT1_EXT- swizzled- border color only,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
125 spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
126 spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
127 spec@glsl-es-1.00@linker@glsl-mismatched-uniform-precision-unused,Fail
@@ -37,7 +37,6 @@ spec@glsl-4.00@compiler@built-in-functions@texturequerylod-sampler2dshadow.frag,
spec@glsl-4.00@compiler@built-in-functions@texturequerylod-samplercubearrayshadow.frag,Crash
spec@glsl-4.00@compiler@built-in-functions@texturequerylod-samplercubeshadow.frag,Crash
spec@glsl-es-1.00@linker@glsl-mismatched-uniform-precision-unused,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
1 # piglit failures
37 spec@glsl-4.00@compiler@built-in-functions@texturequerylod-samplercubearrayshadow.frag,Crash
38 spec@glsl-4.00@compiler@built-in-functions@texturequerylod-samplercubeshadow.frag,Crash
39 spec@glsl-es-1.00@linker@glsl-mismatched-uniform-precision-unused,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
40 spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
41 spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
42 spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
@@ -33,7 +33,6 @@ spec@egl_ext_protected_content@conformance,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y210,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.50@execution@geometry@primitive-types gl_triangle_strip_adjacency,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
1 # piglit failures
33 spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212,Fail
34 spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216,Fail
35 spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail spec@glsl-1.50@execution@geometry@primitive-types gl_triangle_strip_adjacency,Fail
spec@glsl-1.50@execution@geometry@primitive-types gl_triangle_strip_adjacency,Fail
36 spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
37 spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
38 spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
@@ -456,8 +456,6 @@ spec@ext_texture_snorm@texwrap formats bordercolor@GL_RGB8_SNORM- border color o
spec@ext_texture_snorm@texwrap formats bordercolor@GL_RGBA16_SNORM- border color only,Fail
spec@ext_texture_snorm@texwrap formats bordercolor@GL_RGBA8_SNORM- border color only,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.50@execution@primitive-id-no-gs-quad-strip,Fail
spec@glsl-1.50@execution@primitive-id-no-gs-quads,Fail
@@ -350,7 +350,6 @@ spec@glsl-1.10@execution@glsl-vs-inline-explosion,Crash
spec@glsl-1.10@execution@loops@glsl-fs-unroll-explosion,Crash
spec@glsl-1.10@execution@loops@glsl-vs-unroll-explosion,Crash
spec@glsl-1.10@execution@samplers@glsl-fs-shadow2d-clamp-z,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-es-3.00@execution@built-in-functions@fs-packhalf2x16,Fail
spec@glsl-es-3.00@execution@built-in-functions@vs-packhalf2x16,Fail
spec@khr_texture_compression_astc@miptree-gl srgb-fp,Fail