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

Author: Gert Wollny <[email protected]>
Date:   Sun May  2 20:23:11 2021 +0200

r600/sfn: read number of images from shader info

Signed-off-by: Gert Wollny <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>

---

 src/gallium/drivers/r600/sfn/sfn_nir.cpp         |  1 +
 src/gallium/drivers/r600/sfn/sfn_shader_base.cpp | 15 +++++++++++----
 src/gallium/drivers/r600/sfn/sfn_shader_base.h   |  3 +++
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/r600/sfn/sfn_nir.cpp 
b/src/gallium/drivers/r600/sfn/sfn_nir.cpp
index 76310f9f596..275df7a73e0 100644
--- a/src/gallium/drivers/r600/sfn/sfn_nir.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_nir.cpp
@@ -303,6 +303,7 @@ bool ShaderFromNir::emit_instruction(nir_instr *instr)
 
 bool ShaderFromNir::process_declaration()
 {
+   impl->set_shader_info(sh);
 
    if (!impl->scan_inputs_read(sh))
       return false;
diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_base.cpp 
b/src/gallium/drivers/r600/sfn/sfn_shader_base.cpp
index e37e2732b6d..ed3f1b57a31 100644
--- a/src/gallium/drivers/r600/sfn/sfn_shader_base.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_shader_base.cpp
@@ -285,13 +285,20 @@ bool 
ShaderFromNirProcessor::process_uniforms(nir_variable *uniform)
          sh_info().indirect_files |= 1 << TGSI_FILE_IMAGE;
    }
 
-   if (uniform->type->is_image()) {
-      ++m_image_count;
-   }
-
    return true;
 }
 
+void ShaderFromNirProcessor::set_shader_info(const nir_shader *sh)
+{
+   m_image_count = sh->info.num_images;
+   do_set_shader_info(sh);
+}
+
+void ShaderFromNirProcessor::do_set_shader_info(const nir_shader *sh)
+{
+   (void)sh;
+}
+
 bool ShaderFromNirProcessor::scan_inputs_read(const nir_shader *sh)
 {
    return true;
diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_base.h 
b/src/gallium/drivers/r600/sfn/sfn_shader_base.h
index a48674dab6c..df1eff42835 100644
--- a/src/gallium/drivers/r600/sfn/sfn_shader_base.h
+++ b/src/gallium/drivers/r600/sfn/sfn_shader_base.h
@@ -93,6 +93,7 @@ public:
    void get_array_info(r600_shader& shader) const;
 
    virtual bool scan_inputs_read(const nir_shader *sh);
+   void set_shader_info(const nir_shader *sh);
 
 protected:
 
@@ -123,6 +124,8 @@ protected:
 
    void inc_atomic_file_count();
 
+   virtual void do_set_shader_info(const nir_shader *sh);
+
    enum ESlots {
       es_face,
       es_instanceid,

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to