Mesa (master): r600/sfn: Add simplified constructors for FS shader inputs.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Nov 27 10:42:38 UTC 2020


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

Author: Gert Wollny <gert.wollny at collabora.com>
Date:   Sat Nov 21 16:20:50 2020 +0100

r600/sfn: Add simplified constructors for FS shader inputs.

Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>

---

 src/gallium/drivers/r600/sfn/sfn_shaderio.cpp | 33 +++++++++++++++++++++++++++
 src/gallium/drivers/r600/sfn/sfn_shaderio.h   |  6 +++++
 2 files changed, 39 insertions(+)

diff --git a/src/gallium/drivers/r600/sfn/sfn_shaderio.cpp b/src/gallium/drivers/r600/sfn/sfn_shaderio.cpp
index f32288e4de7..429805d3ea1 100644
--- a/src/gallium/drivers/r600/sfn/sfn_shaderio.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_shaderio.cpp
@@ -109,6 +109,30 @@ void ShaderInputSystemValue::set_specific_ioinfo(r600_shader_io& io) const
    io.ij_index = 0;
 }
 
+ShaderInputVarying::ShaderInputVarying(tgsi_semantic _name, int sid, unsigned driver_location,
+                                       unsigned frac, unsigned components,
+                                       tgsi_interpolate_mode interpolate,
+                                       tgsi_interpolate_loc interp_loc):
+   ShaderInput(_name),
+   m_driver_location(driver_location),
+   m_location_frac(frac),
+   m_sid(sid),
+   m_interpolate(interpolate),
+   m_interpolate_loc(interp_loc),
+   m_ij_index(-10),
+   m_mask((1 << components) - 1)
+{
+   evaluate_spi_sid();
+
+   m_ij_index = interpolate == TGSI_INTERPOLATE_LINEAR ? 3 : 0;
+   switch (interp_loc) {
+   case TGSI_INTERPOLATE_LOC_CENTROID: m_ij_index += 2; break;
+   case TGSI_INTERPOLATE_LOC_CENTER: m_ij_index += 1; break;
+   default:
+      ;
+   }
+}
+
 ShaderInputVarying::ShaderInputVarying(tgsi_semantic _name, int sid, nir_variable *input):
    ShaderInput(_name),
    m_driver_location(input->data.driver_location),
@@ -263,6 +287,15 @@ ShaderInputColor::ShaderInputColor(tgsi_semantic name, int sid, nir_variable *in
    sfn_log << SfnLog::io << __func__ << "name << " << name << " sid << " << sid << "\n";
 }
 
+ShaderInputColor::ShaderInputColor(tgsi_semantic _name, int sid, unsigned driver_location,
+                                   unsigned frac, unsigned components, tgsi_interpolate_mode interpolate,
+                                   tgsi_interpolate_loc interp_loc):
+   ShaderInputVarying(_name, sid, driver_location,frac, components, interpolate, interp_loc),
+   m_back_color_input_idx(0)
+{
+   sfn_log << SfnLog::io << __func__ << "name << " << _name << " sid << " << sid << "\n";
+}
+
 void ShaderInputColor::set_back_color(unsigned back_color_input_idx)
 {
    sfn_log << SfnLog::io << "Set back color index " << back_color_input_idx << "\n";
diff --git a/src/gallium/drivers/r600/sfn/sfn_shaderio.h b/src/gallium/drivers/r600/sfn/sfn_shaderio.h
index e77c44cc25d..0e20c6716fe 100644
--- a/src/gallium/drivers/r600/sfn/sfn_shaderio.h
+++ b/src/gallium/drivers/r600/sfn/sfn_shaderio.h
@@ -76,6 +76,9 @@ public:
 
 class ShaderInputVarying : public ShaderInput {
 public:
+   ShaderInputVarying(tgsi_semantic _name, int sid, unsigned driver_location,
+                      unsigned frac, unsigned components, tgsi_interpolate_mode interpolate,
+                      tgsi_interpolate_loc interp_loc);
    ShaderInputVarying(tgsi_semantic name, int sid, nir_variable *input);
    ShaderInputVarying(tgsi_semantic name, const ShaderInputVarying& orig,
                       size_t location);
@@ -115,6 +118,9 @@ private:
 
 class ShaderInputColor: public ShaderInputVarying {
 public:
+   ShaderInputColor(tgsi_semantic _name, int sid, unsigned driver_location,
+                    unsigned frac, unsigned components, tgsi_interpolate_mode interpolate,
+                    tgsi_interpolate_loc interp_loc);
    ShaderInputColor(tgsi_semantic name, int sid, nir_variable *input);
    void set_back_color(unsigned back_color_input_idx);
    unsigned back_color_input_index() const {



More information about the mesa-commit mailing list