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 <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4714>
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user