diff options
Diffstat (limited to 'spirv_hlsl.hpp')
-rw-r--r-- | spirv_hlsl.hpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/spirv_hlsl.hpp b/spirv_hlsl.hpp index e98c6443..fa3b656f 100644 --- a/spirv_hlsl.hpp +++ b/spirv_hlsl.hpp @@ -264,8 +264,23 @@ private: bool requires_scalar_reflect = false; bool requires_scalar_refract = false; bool requires_scalar_faceforward = false; - uint64_t required_textureSizeVariants = 0; - void require_texture_query_variant(const SPIRType &type); + + struct TextureSizeVariants + { + // MSVC 2013 workaround. + TextureSizeVariants() + { + srv = 0; + for (auto &unorm : uav) + for (auto &u : unorm) + u = 0; + } + uint64_t srv; + uint64_t uav[3][4]; + } required_texture_size_variants; + + void require_texture_query_variant(uint32_t var_id); + void emit_texture_size_variants(uint64_t variant_mask, const char *vecsize_qualifier, bool uav, const char *type_qualifier); enum TextureQueryVariantDim { |