summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv/emit_context.h
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-08-01 18:57:45 -0300
committerGravatar Fernando Sahmkow2021-11-16 22:11:29 +0100
commite66d5b88a6f1c2d85c5cd8e351c6ed52c96a0ecf (patch)
tree0107548906df0b9d42e89451489be6a54ed71bf3 /src/shader_recompiler/backend/spirv/emit_context.h
parentshader: Properly blacklist and scale image loads (diff)
downloadyuzu-e66d5b88a6f1c2d85c5cd8e351c6ed52c96a0ecf.tar.gz
yuzu-e66d5b88a6f1c2d85c5cd8e351c6ed52c96a0ecf.tar.xz
yuzu-e66d5b88a6f1c2d85c5cd8e351c6ed52c96a0ecf.zip
shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_context.h')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_context.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_context.h b/src/shader_recompiler/backend/spirv/emit_context.h
index a7917ac51..b67704baa 100644
--- a/src/shader_recompiler/backend/spirv/emit_context.h
+++ b/src/shader_recompiler/backend/spirv/emit_context.h
@@ -238,9 +238,14 @@ public:
238 Id indexed_load_func{}; 238 Id indexed_load_func{};
239 Id indexed_store_func{}; 239 Id indexed_store_func{};
240 240
241 Id rescaling_uniform_constant{};
241 Id rescaling_push_constants{}; 242 Id rescaling_push_constants{};
242 Id rescaling_textures_type{}; 243 Id rescaling_textures_type{};
244 Id rescaling_images_type{};
243 u32 rescaling_textures_member_index{}; 245 u32 rescaling_textures_member_index{};
246 u32 rescaling_images_member_index{};
247 u32 texture_rescaling_index{};
248 u32 image_rescaling_index{};
244 249
245 Id local_memory{}; 250 Id local_memory{};
246 251
@@ -314,11 +319,13 @@ private:
314 void DefineStorageBuffers(const Info& info, u32& binding); 319 void DefineStorageBuffers(const Info& info, u32& binding);
315 void DefineTextureBuffers(const Info& info, u32& binding); 320 void DefineTextureBuffers(const Info& info, u32& binding);
316 void DefineImageBuffers(const Info& info, u32& binding); 321 void DefineImageBuffers(const Info& info, u32& binding);
317 void DefineTextures(const Info& info, u32& binding); 322 void DefineTextures(const Info& info, u32& binding, u32& scaling_index);
318 void DefineImages(const Info& info, u32& binding); 323 void DefineImages(const Info& info, u32& binding, u32& scaling_index);
319 void DefineAttributeMemAccess(const Info& info); 324 void DefineAttributeMemAccess(const Info& info);
320 void DefineGlobalMemoryFunctions(const Info& info); 325 void DefineGlobalMemoryFunctions(const Info& info);
321 void DefineRescalingInput(const Info& info); 326 void DefineRescalingInput(const Info& info);
327 void DefineRescalingInputPushConstant(const Info& info);
328 void DefineRescalingInputUniformConstant();
322 329
323 void DefineInputs(const IR::Program& program); 330 void DefineInputs(const IR::Program& program);
324 void DefineOutputs(const IR::Program& program); 331 void DefineOutputs(const IR::Program& program);