summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv/emit_context.h
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-03-20 19:11:56 -0300
committerGravatar ameerj2021-07-22 21:51:23 -0400
commit76c8a962ac4eae77e71d66a72c448930240339f9 (patch)
tree267bdb72f0fad43779080cd1907dd8159a6c7154 /src/shader_recompiler/backend/spirv/emit_context.h
parentshader: Refactor half floating instructions (diff)
downloadyuzu-76c8a962ac4eae77e71d66a72c448930240339f9.tar.gz
yuzu-76c8a962ac4eae77e71d66a72c448930240339f9.tar.xz
yuzu-76c8a962ac4eae77e71d66a72c448930240339f9.zip
spirv: Implement VertexId and InstanceId, refactor code
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_context.h')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_context.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_context.h b/src/shader_recompiler/backend/spirv/emit_context.h
index 2d7961ac3..9b9e0d6b1 100644
--- a/src/shader_recompiler/backend/spirv/emit_context.h
+++ b/src/shader_recompiler/backend/spirv/emit_context.h
@@ -82,6 +82,12 @@ public:
82 82
83 Id workgroup_id{}; 83 Id workgroup_id{};
84 Id local_invocation_id{}; 84 Id local_invocation_id{};
85 Id instance_id{};
86 Id instance_index{};
87 Id base_instance{};
88 Id vertex_id{};
89 Id vertex_index{};
90 Id base_vertex{};
85 91
86 Id input_position{}; 92 Id input_position{};
87 std::array<Id, 32> input_generics{}; 93 std::array<Id, 32> input_generics{};
@@ -99,11 +105,15 @@ private:
99 void DefineCommonConstants(); 105 void DefineCommonConstants();
100 void DefineInterfaces(const Info& info, Stage stage); 106 void DefineInterfaces(const Info& info, Stage stage);
101 void DefineConstantBuffers(const Info& info, u32& binding); 107 void DefineConstantBuffers(const Info& info, u32& binding);
102 void DefineConstantBuffers(const Info& info, Id UniformDefinitions::*member_type, u32 binding,
103 Id type, char type_char, u32 element_size);
104 void DefineStorageBuffers(const Info& info, u32& binding); 108 void DefineStorageBuffers(const Info& info, u32& binding);
105 void DefineTextures(const Info& info, u32& binding); 109 void DefineTextures(const Info& info, u32& binding);
106 void DefineLabels(IR::Program& program); 110 void DefineLabels(IR::Program& program);
111
112 void DefineConstantBuffers(const Info& info, Id UniformDefinitions::*member_type, u32 binding,
113 Id type, char type_char, u32 element_size);
114
115 void DefineInputs(const Info& info, Stage stage);
116 void DefineOutputs(const Info& info, Stage stage);
107}; 117};
108 118
109} // namespace Shader::Backend::SPIRV 119} // namespace Shader::Backend::SPIRV