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