Mesa (main): broadcom/compiler: track if a shader uses global intrinsics

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 19 08:44:19 UTC 2022


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

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Mon Jun 27 14:09:47 2022 +0200

broadcom/compiler: track if a shader uses global intrinsics

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17275>

---

 src/broadcom/compiler/nir_to_vir.c   | 3 +++
 src/broadcom/compiler/v3d_compiler.h | 3 +++
 src/broadcom/compiler/vir.c          | 1 +
 3 files changed, 7 insertions(+)

diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c
index ff880973c02..ad311de94dd 100644
--- a/src/broadcom/compiler/nir_to_vir.c
+++ b/src/broadcom/compiler/nir_to_vir.c
@@ -531,6 +531,9 @@ ntq_emit_tmu_general(struct v3d_compile *c, nir_intrinsic_instr *instr,
         if (!is_load)
                 c->tmu_dirty_rcl = true;
 
+        if (is_global)
+                c->has_global_address = true;
+
         bool has_index = !is_shared_or_scratch && !is_global;
 
         int offset_src;
diff --git a/src/broadcom/compiler/v3d_compiler.h b/src/broadcom/compiler/v3d_compiler.h
index ac15af06f78..8db0bba4a0d 100644
--- a/src/broadcom/compiler/v3d_compiler.h
+++ b/src/broadcom/compiler/v3d_compiler.h
@@ -904,6 +904,7 @@ struct v3d_compile {
         enum v3d_compilation_result compilation_result;
 
         bool tmu_dirty_rcl;
+        bool has_global_address;
 };
 
 struct v3d_uniform_list {
@@ -933,6 +934,8 @@ struct v3d_prog_data {
         bool tmu_dirty_rcl;
 
         bool has_control_barrier;
+
+        bool has_global_address;
 };
 
 struct v3d_vs_prog_data {
diff --git a/src/broadcom/compiler/vir.c b/src/broadcom/compiler/vir.c
index d95ac010a21..84489219ac4 100644
--- a/src/broadcom/compiler/vir.c
+++ b/src/broadcom/compiler/vir.c
@@ -859,6 +859,7 @@ v3d_set_prog_data(struct v3d_compile *c,
         prog_data->compile_strategy_idx = c->compile_strategy_idx;
         prog_data->tmu_dirty_rcl = c->tmu_dirty_rcl;
         prog_data->has_control_barrier = c->s->info.uses_control_barrier;
+        prog_data->has_global_address = c->has_global_address;
 
         v3d_set_prog_data_uniforms(c, prog_data);
 



More information about the mesa-commit mailing list