diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-03-19 19:28:31 -0300 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-22 21:51:23 -0400 |
commit | 260743f371236f7c57b01334b1c3474b15a47c39 (patch) | |
tree | 312d89fa8215199ef5f7ec1fc84b025df526e107 /src/shader_recompiler/backend/spirv/emit_context.h | |
parent | 72990df7bad1c81d6ebc51179d34e1bfc71e0caf (diff) |
shader: Add partial rasterizer integration
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_context.h')
-rw-r--r-- | src/shader_recompiler/backend/spirv/emit_context.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_context.h b/src/shader_recompiler/backend/spirv/emit_context.h index 35eca258a8..2d7961ac3b 100644 --- a/src/shader_recompiler/backend/spirv/emit_context.h +++ b/src/shader_recompiler/backend/spirv/emit_context.h @@ -46,7 +46,7 @@ struct UniformDefinitions { class EmitContext final : public Sirit::Module { public: - explicit EmitContext(const Profile& profile, IR::Program& program); + explicit EmitContext(const Profile& profile, IR::Program& program, u32& binding); ~EmitContext(); [[nodiscard]] Id Def(const IR::Value& value); @@ -71,6 +71,9 @@ public: UniformDefinitions uniform_types; + Id input_f32{}; + Id output_f32{}; + Id storage_u32{}; std::array<UniformDefinitions, Info::MAX_CBUFS> cbufs{}; @@ -80,10 +83,21 @@ public: Id workgroup_id{}; Id local_invocation_id{}; + Id input_position{}; + std::array<Id, 32> input_generics{}; + + Id output_position{}; + std::array<Id, 32> output_generics{}; + + std::array<Id, 8> frag_color{}; + Id frag_depth {}; + + std::vector<Id> interfaces; + private: void DefineCommonTypes(const Info& info); void DefineCommonConstants(); - void DefineSpecialVariables(const Info& info); + void DefineInterfaces(const Info& info, Stage stage); void DefineConstantBuffers(const Info& info, u32& binding); void DefineConstantBuffers(const Info& info, Id UniformDefinitions::*member_type, u32 binding, Id type, char type_char, u32 element_size); |