pan/midgard: Use a signed value for checking inline constants
authorIcecream95 <ixn@keemail.me>
Fri, 5 Jun 2020 08:17:27 +0000 (20:17 +1200)
committerMarge Bot <eric+marge@anholt.net>
Fri, 5 Jun 2020 22:51:45 +0000 (22:51 +0000)
Inline constants are sign extended, so we should use a int16_t instead
of an unsigned type.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5351>

.gitlab-ci/deqp-panfrost-t860-fails.txt
src/panfrost/midgard/midgard_compile.c

index 567c275..6e48aa2 100644 (file)
@@ -335,14 +335,6 @@ dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines
 dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines_wide
 dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.points
 dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.triangles
-dEQP-GLES3.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_highp_fragment
-dEQP-GLES3.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_highp_vertex
-dEQP-GLES3.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_lowp_fragment
-dEQP-GLES3.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_lowp_vertex
-dEQP-GLES3.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_mediump_fragment
-dEQP-GLES3.functional.shaders.builtin_functions.pack_unpack.packsnorm2x16_mediump_vertex
-dEQP-GLES3.functional.shaders.builtin_functions.pack_unpack.unpackunorm2x16_fragment
-dEQP-GLES3.functional.shaders.builtin_functions.pack_unpack.unpackunorm2x16_vertex
 dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_highp
 dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
 dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_highp
index 4cce910..3ccff63 100644 (file)
@@ -2221,7 +2221,7 @@ embedded_to_inline_constant(compiler_context *ctx, midgard_block *block)
                         unsigned component = ins->swizzle[1][first_comp];
 
                         /* Scale constant appropriately, if we can legally */
-                        uint16_t scaled_constant = 0;
+                        int16_t scaled_constant = 0;
 
                         if (is_16) {
                                 scaled_constant = ins->constants.u16[component];