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
