From: Gert Wollny Date: Sat, 21 Nov 2020 15:20:50 +0000 (+0100) Subject: r600/sfn: Add simplified constructors for FS shader inputs. X-Git-Tag: upstream/21.0.0~2070 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a45e651b11df0700333d4a13eef102341f06c3ac;p=platform%2Fupstream%2Fmesa.git r600/sfn: Add simplified constructors for FS shader inputs. Signed-off-by: Gert Wollny Part-of: --- diff --git a/src/gallium/drivers/r600/sfn/sfn_shaderio.cpp b/src/gallium/drivers/r600/sfn/sfn_shaderio.cpp index f32288e..429805d 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 e77c44c..0e20c67 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 {