gallivm/format: convert unsigned values to float properly.
authorDave Airlie <airlied@redhat.com>
Tue, 9 Jun 2020 03:58:59 +0000 (13:58 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 11 Jun 2020 04:41:14 +0000 (14:41 +1000)
This fixes:
dEQP-GLES31.functional.draw_indirect.random.2

which ends up with 3x32-bit USCALED values going down this path
some of which have the top bit set, and end up converted to signed
float instead of unsigned float values.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5379>

.gitlab-ci/deqp-virgl-fails.txt
src/gallium/auxiliary/gallivm/lp_bld_format_soa.c

index 18d1194c4ac4493229d5ffa21be83bfb3aeb704b..2c2d3d6623db5347d9d76ee0c498da6192d388da 100644 (file)
@@ -50,11 +50,6 @@ dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
 dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
 dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
 dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads1
-dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components2_vec2_quads256
-dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components2_vec3_quads256
-dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components2_vec4_quads256
-dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components4_vec2_quads1
-dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components4_vec4_quads1
 dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_10x10_khr.texture3d_to_texture2d_array
 dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_10x5_khr.texture2d_to_texture2d_array
 dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_10x6_khr.cubemap_to_texture2d_array
index 1fad4bc6fc649086bbbd50290cd74cac25e59261..8eb442998b82e28672a0261bf4b7ae491c18bc62 100644 (file)
@@ -169,7 +169,7 @@ lp_build_extract_soa_chan(struct lp_build_context *bld,
             if(chan_desc.normalized)
                input = lp_build_unsigned_norm_to_float(gallivm, width, type, input);
             else
-               input = LLVMBuildSIToFP(builder, input, bld->vec_type, "");
+               input = LLVMBuildUIToFP(builder, input, bld->vec_type, "");
          }
       }
       else if (chan_desc.pure_integer) {