Mesa (main): ir3/ra: Fix type mismatch when comparing intervals

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 31 20:53:19 UTC 2021


Module: Mesa
Branch: main
Commit: 88142d8a5a58d9184f0aae193d0cd10f4354fa27
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=88142d8a5a58d9184f0aae193d0cd10f4354fa27

Author: Connor Abbott <cwabbott0 at gmail.com>
Date:   Fri Aug 20 16:33:55 2021 +0200

ir3/ra: Fix type mismatch when comparing intervals

This was once a physreg, back in the very beginning of the new RA, but
now the caller passes an unsigned int.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5163
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12487>

---

 src/freedreno/ci/deqp-freedreno-a530-fails.txt | 8 --------
 src/freedreno/ci/deqp-freedreno-a630-fails.txt | 9 ---------
 src/freedreno/ir3/ir3_ra.c                     | 2 +-
 3 files changed, 1 insertion(+), 18 deletions(-)

diff --git a/src/freedreno/ci/deqp-freedreno-a530-fails.txt b/src/freedreno/ci/deqp-freedreno-a530-fails.txt
index 24fdfe58ee6..dd57224fbdb 100644
--- a/src/freedreno/ci/deqp-freedreno-a530-fails.txt
+++ b/src/freedreno/ci/deqp-freedreno-a530-fails.txt
@@ -129,14 +129,6 @@ KHR-GLES2.core.internalformat.copy_tex_image.alpha,Fail
 KHR-GLES3.core.internalformat.copy_tex_image.alpha,Fail
 KHR-GLES31.core.internalformat.copy_tex_image.alpha,Fail
 
-# "../src/freedreno/ir3/ir3_ra.c:132: interval_insert: Assertion `(interval->reg->flags & IR3_REG_HALF) == (right->reg->flags & IR3_REG_HALF)' failed."
-KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing1,Crash
-KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing2,Crash
-KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing3,Crash
-KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing4,Crash
-KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing5,Crash
-KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing6,Crash
-
 # "Invalid array size was returned. at es31cArrayOfArraysTests.cpp:4779"
 # msm 900000.mdss: [drm:a5xx_irq] *ERROR* gpu fault ring 0 fence 2c54ef status E40801C1 rb 0162/0162 ib1 000000000104B000/0000 ib2 000000000104C000/0000
 KHR-GLES31.core.arrays_of_arrays.InteractionFunctionCalls1,Fail
diff --git a/src/freedreno/ci/deqp-freedreno-a630-fails.txt b/src/freedreno/ci/deqp-freedreno-a630-fails.txt
index a193fb570a6..5264d75e977 100644
--- a/src/freedreno/ci/deqp-freedreno-a630-fails.txt
+++ b/src/freedreno/ci/deqp-freedreno-a630-fails.txt
@@ -75,15 +75,6 @@ dEQP-VK.api.info.get_physical_device_properties2.properties,Fail
 # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8841
 dEQP-VK.spirv_assembly.instruction.compute.opphi.wide,Crash
 
-# " deqp-vk: ../src/freedreno/ir3/ir3_ra.c:526: ra_file_insert: Assertion `interval->physreg_end <= file->size' failed."
-# also https://gitlab.freedesktop.org/mesa/mesa/-/issues/5163
-dEQP-VK.spirv_assembly.instruction.compute.spirv_ids_abuse.lots_ids,Crash
-dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_frag,Crash
-dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_geom,Crash
-dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tessc,Crash
-dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tesse,Crash
-dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_vert,Crash
-
 # Fails when TU_DEBUG=forcebin is set
 dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_single_buffer_geom,Fail
 dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_two_buffers_geom,Fail
diff --git a/src/freedreno/ir3/ir3_ra.c b/src/freedreno/ir3/ir3_ra.c
index 6870769f74d..c2dbe43723a 100644
--- a/src/freedreno/ir3/ir3_ra.c
+++ b/src/freedreno/ir3/ir3_ra.c
@@ -51,7 +51,7 @@
 static int
 ir3_reg_interval_cmp(const struct rb_node *node, const void *data)
 {
-   physreg_t reg = *(const physreg_t *)data;
+   unsigned reg = *(const unsigned *)data;
    const struct ir3_reg_interval *interval =
       ir3_rb_node_to_interval_const(node);
    if (interval->reg->interval_start > reg)



More information about the mesa-commit mailing list