summaryrefslogtreecommitdiff
path: root/spirv_msl.hpp
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2021-10-25 10:55:11 +0200
committerHans-Kristian Arntzen <post@arntzen-software.no>2021-10-25 10:55:11 +0200
commitedf247fb1c632a0c4487207a51151bd1f7f8aef5 (patch)
tree9c7c909f2b400d0a2dad9d8f2a9f146241fe072c /spirv_msl.hpp
parent43eecb23603a5eccaefdc423a8b488931609c85f (diff)
downloadSPIRV-Cross-edf247fb1c632a0c4487207a51151bd1f7f8aef5.tar.gz
SPIRV-Cross-edf247fb1c632a0c4487207a51151bd1f7f8aef5.tar.bz2
SPIRV-Cross-edf247fb1c632a0c4487207a51151bd1f7f8aef5.zip
MSL: Workaround compiler crashes when using threadgroup bool.
Promote to short instead and do simple casts on load/store instead. Not 100% complete fix since structs can contain booleans, but this is getting into pretty ridiculously complicated territory.
Diffstat (limited to 'spirv_msl.hpp')
-rw-r--r--spirv_msl.hpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/spirv_msl.hpp b/spirv_msl.hpp
index ce43cd9e..d1d2ef3e 100644
--- a/spirv_msl.hpp
+++ b/spirv_msl.hpp
@@ -960,8 +960,8 @@ protected:
bool does_shader_write_sample_mask = false;
- void cast_to_builtin_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type) override;
- void cast_from_builtin_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type) override;
+ void cast_to_variable_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type) override;
+ void cast_from_variable_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type) override;
void emit_store_statement(uint32_t lhs_expression, uint32_t rhs_expression) override;
void analyze_sampled_image_usage();