Mesa (master): r600/sfn: use shared pointer to GPR for FS sysvalues
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Oct 16 12:09:06 UTC 2020
Module: Mesa
Branch: master
Commit: f664fc1c7b54e90a0bff5dd25be0381b6224cbbc
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f664fc1c7b54e90a0bff5dd25be0381b6224cbbc
Author: Gert Wollny <gert.wollny at collabora.com>
Date: Tue Oct 6 20:21:23 2020 +0200
r600/sfn: use shared pointer to GPR for FS sysvalues
Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
---
src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp | 18 +++++++-----------
src/gallium/drivers/r600/sfn/sfn_shader_fragment.h | 8 ++++----
2 files changed, 11 insertions(+), 15 deletions(-)
diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp b/src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp
index 2c052ec8439..a8ae6e6b3c9 100644
--- a/src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp
@@ -210,11 +210,10 @@ bool FragmentShaderFromNir::do_allocate_reserved_registers()
// handle system values
if (m_sv_values.test(es_face) || m_need_back_color) {
face_reg_index = m_reserved_registers++;
- auto ffr = new GPRValue(face_reg_index,0);
- ffr->set_as_input();
- m_front_face_reg.reset(ffr);
+ m_front_face_reg = std::make_shared<GPRValue>(face_reg_index,0);
+ m_front_face_reg->set_as_input();
sfn_log << SfnLog::io << "Set front_face register to " << *m_front_face_reg << "\n";
- inject_register(ffr->sel(), ffr->chan(), m_front_face_reg, false);
+ inject_register(m_front_face_reg->sel(), m_front_face_reg->chan(), m_front_face_reg, false);
m_shaderio.add_input(new ShaderInputSystemValue(TGSI_SEMANTIC_FACE, face_reg_index));
load_front_face();
@@ -224,11 +223,9 @@ bool FragmentShaderFromNir::do_allocate_reserved_registers()
if (face_reg_index < 0)
face_reg_index = m_reserved_registers++;
- auto smi = new GPRValue(face_reg_index,2);
- smi->set_as_input();
- m_sample_mask_reg.reset(smi);
+ m_sample_mask_reg = std::make_shared<GPRValue>(face_reg_index,2);
+ m_sample_mask_reg->set_as_input();
sfn_log << SfnLog::io << "Set sample mask in register to " << *m_sample_mask_reg << "\n";
- //inject_register(smi->sel(), smi->chan(), m_sample_mask_reg, false);
sh_info().nsys_inputs = 1;
m_shaderio.add_input(new ShaderInputSystemValue(TGSI_SEMANTIC_SAMPLEMASK, face_reg_index));
}
@@ -238,9 +235,8 @@ bool FragmentShaderFromNir::do_allocate_reserved_registers()
if (sample_id_index < 0)
sample_id_index = m_reserved_registers++;
- auto smi = new GPRValue(sample_id_index, 3);
- smi->set_as_input();
- m_sample_id_reg.reset(smi);
+ m_sample_id_reg = std::make_shared<GPRValue>(sample_id_index, 3);
+ m_sample_id_reg->set_as_input();
sfn_log << SfnLog::io << "Set sample id register to " << *m_sample_id_reg << "\n";
sh_info().nsys_inputs++;
m_shaderio.add_input(new ShaderInputSystemValue(TGSI_SEMANTIC_SAMPLEID, sample_id_index));
diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_fragment.h b/src/gallium/drivers/r600/sfn/sfn_shader_fragment.h
index 1a6546db42d..f6dedffa4a9 100644
--- a/src/gallium/drivers/r600/sfn/sfn_shader_fragment.h
+++ b/src/gallium/drivers/r600/sfn/sfn_shader_fragment.h
@@ -85,10 +85,10 @@ private:
std::array<Interpolator, 6> m_interpolator;
unsigned m_reserved_registers;
unsigned m_frag_pos_index;
- PValue m_front_face_reg;
- PValue m_sample_mask_reg;
- PValue m_sample_id_reg;
- PValue m_helper_invocation;
+ PGPRValue m_front_face_reg;
+ PGPRValue m_sample_mask_reg;
+ PGPRValue m_sample_id_reg;
+ PGPRValue m_helper_invocation;
GPRVector m_frag_pos;
bool m_need_back_color;
bool m_front_face_loaded;
More information about the mesa-commit
mailing list