From: Gert Wollny Date: Wed, 15 Apr 2020 14:43:22 +0000 (+0200) Subject: r600/sfn: derive the GS from the vertex stage for a common interface X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f102301cc48913a5d61e20705218e49653b737df;p=mesa.git r600/sfn: derive the GS from the vertex stage for a common interface The GS can also provide the primid Signed-off-by: Gert Wollny Part-of: --- diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_geometry.cpp b/src/gallium/drivers/r600/sfn/sfn_shader_geometry.cpp index f6ee95e4912..878e54e0630 100644 --- a/src/gallium/drivers/r600/sfn/sfn_shader_geometry.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_shader_geometry.cpp @@ -34,8 +34,8 @@ namespace r600 { GeometryShaderFromNir::GeometryShaderFromNir(r600_pipe_shader *sh, r600_pipe_shader_selector &sel, const r600_shader_key &key): - ShaderFromNirProcessor (PIPE_SHADER_GEOMETRY, sel, sh->shader, - sh->scratch_space_needed), + VertexStage(PIPE_SHADER_GEOMETRY, sel, sh->shader, + sh->scratch_space_needed), m_pipe_shader(sh), m_so_info(&sel.so), m_first_vertex_emitted(false), diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_geometry.h b/src/gallium/drivers/r600/sfn/sfn_shader_geometry.h index 9f7f69f6925..cacbdaf50b7 100644 --- a/src/gallium/drivers/r600/sfn/sfn_shader_geometry.h +++ b/src/gallium/drivers/r600/sfn/sfn_shader_geometry.h @@ -28,17 +28,18 @@ #ifndef SFN_GEOMETRYSHADERFROMNIR_H #define SFN_GEOMETRYSHADERFROMNIR_H -#include "sfn_shader_base.h" +#include "sfn_vertexstageexport.h" namespace r600 { -class GeometryShaderFromNir : public ShaderFromNirProcessor +class GeometryShaderFromNir : public VertexStage { public: GeometryShaderFromNir(r600_pipe_shader *sh, r600_pipe_shader_selector& sel, const r600_shader_key& key); bool do_emit_load_deref(const nir_variable *in_var, nir_intrinsic_instr* instr) override; bool do_emit_store_deref(const nir_variable *out_var, nir_intrinsic_instr* instr) override; bool scan_sysvalue_access(nir_instr *instr) override; + PValue primitive_id() override {return m_primitive_id;} private: struct ArrayDeref {