diff options
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_context.h')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_context.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_context.h b/src/shader_recompiler/backend/spirv/emit_context.h index e70f3458c..34f38454f 100644 --- a/src/shader_recompiler/backend/spirv/emit_context.h +++ b/src/shader_recompiler/backend/spirv/emit_context.h | |||
| @@ -94,6 +94,7 @@ public: | |||
| 94 | Id output_f32{}; | 94 | Id output_f32{}; |
| 95 | 95 | ||
| 96 | Id storage_u32{}; | 96 | Id storage_u32{}; |
| 97 | Id storage_memory_u32{}; | ||
| 97 | 98 | ||
| 98 | Id image_buffer_type{}; | 99 | Id image_buffer_type{}; |
| 99 | Id sampled_texture_buffer_type{}; | 100 | Id sampled_texture_buffer_type{}; |
| @@ -136,9 +137,21 @@ public: | |||
| 136 | Id shared_memory_u32{}; | 137 | Id shared_memory_u32{}; |
| 137 | Id shared_memory_u32x2{}; | 138 | Id shared_memory_u32x2{}; |
| 138 | Id shared_memory_u32x4{}; | 139 | Id shared_memory_u32x4{}; |
| 140 | Id shared_memory_u32_type{}; | ||
| 139 | 141 | ||
| 140 | Id shared_store_u8_func{}; | 142 | Id shared_store_u8_func{}; |
| 141 | Id shared_store_u16_func{}; | 143 | Id shared_store_u16_func{}; |
| 144 | Id increment_cas_shared{}; | ||
| 145 | Id increment_cas_ssbo{}; | ||
| 146 | Id decrement_cas_shared{}; | ||
| 147 | Id decrement_cas_ssbo{}; | ||
| 148 | Id f32_add_cas{}; | ||
| 149 | Id f16x2_add_cas{}; | ||
| 150 | Id f16x2_min_cas{}; | ||
| 151 | Id f16x2_max_cas{}; | ||
| 152 | Id f32x2_add_cas{}; | ||
| 153 | Id f32x2_min_cas{}; | ||
| 154 | Id f32x2_max_cas{}; | ||
| 142 | 155 | ||
| 143 | Id input_position{}; | 156 | Id input_position{}; |
| 144 | std::array<Id, 32> input_generics{}; | 157 | std::array<Id, 32> input_generics{}; |
| @@ -153,6 +166,11 @@ public: | |||
| 153 | std::vector<Id> interfaces; | 166 | std::vector<Id> interfaces; |
| 154 | 167 | ||
| 155 | private: | 168 | private: |
| 169 | enum class CasPointerType { | ||
| 170 | Shared, | ||
| 171 | Ssbo, | ||
| 172 | }; | ||
| 173 | |||
| 156 | void DefineCommonTypes(const Info& info); | 174 | void DefineCommonTypes(const Info& info); |
| 157 | void DefineCommonConstants(); | 175 | void DefineCommonConstants(); |
| 158 | void DefineInterfaces(const Info& info); | 176 | void DefineInterfaces(const Info& info); |
| @@ -171,6 +189,8 @@ private: | |||
| 171 | 189 | ||
| 172 | void DefineInputs(const Info& info); | 190 | void DefineInputs(const Info& info); |
| 173 | void DefineOutputs(const Info& info); | 191 | void DefineOutputs(const Info& info); |
| 192 | |||
| 193 | [[nodiscard]] Id CasLoop(Id function, CasPointerType pointer_type, Id value_type); | ||
| 174 | }; | 194 | }; |
| 175 | 195 | ||
| 176 | } // namespace Shader::Backend::SPIRV | 196 | } // namespace Shader::Backend::SPIRV |