Mesa (main): ir3/freedreno: handle non-uniform resinfo

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 12 18:04:38 UTC 2021


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

Author: Danylo Piliaiev <dpiliaiev at igalia.com>
Date:   Tue Oct 12 16:37:07 2021 +0300

ir3/freedreno: handle non-uniform resinfo

We forgot to handle non-uniform resinfo case.

Fixes vkd3d test "test_bindless_bufinfo_sm51"

Signed-off-by: Danylo Piliaiev <dpiliaiev at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13311>

---

 src/freedreno/ir3/ir3_a6xx.c         | 1 +
 src/freedreno/ir3/ir3_compiler_nir.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/freedreno/ir3/ir3_a6xx.c b/src/freedreno/ir3/ir3_a6xx.c
index 95625587b09..ae979232476 100644
--- a/src/freedreno/ir3/ir3_a6xx.c
+++ b/src/freedreno/ir3/ir3_a6xx.c
@@ -359,6 +359,7 @@ emit_intrinsic_image_size(struct ir3_context *ctx, nir_intrinsic_instr *intr,
    compile_assert(ctx, intr->num_components <= 3);
    resinfo->dsts[0]->wrmask = MASK(3);
    ir3_handle_bindless_cat6(resinfo, intr->src[0]);
+   ir3_handle_nonuniform(resinfo, intr);
 
    ir3_split_dest(b, dst, resinfo, 0, intr->num_components);
 }
diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c
index bdff4c1bc45..d3fe7a69342 100644
--- a/src/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/freedreno/ir3/ir3_compiler_nir.c
@@ -865,6 +865,7 @@ emit_intrinsic_ssbo_size(struct ir3_context *ctx, nir_intrinsic_instr *intr,
    /* resinfo has no writemask and always writes out 3 components */
    resinfo->dsts[0]->wrmask = MASK(3);
    ir3_handle_bindless_cat6(resinfo, intr->src[0]);
+   ir3_handle_nonuniform(resinfo, intr);
 
    if (ctx->compiler->gen >= 6) {
       ir3_split_dest(b, dst, resinfo, 0, 1);



More information about the mesa-commit mailing list