| 373 | } // namespace |
| 374 | |
| 375 | bool SPIRVReflection::reflect_shader_resources(VkShaderStageFlagBits stage, const std::vector<uint32_t> &spirv, std::vector<ShaderResource> &resources, const ShaderVariant &variant) |
| 376 | { |
| 377 | spirv_cross::CompilerGLSL compiler{spirv}; |
| 378 | |
| 379 | auto opts = compiler.get_common_options(); |
| 380 | opts.enable_420pack_extension = true; |
| 381 | |
| 382 | compiler.set_common_options(opts); |
| 383 | |
| 384 | parse_shader_resources(compiler, stage, resources, variant); |
| 385 | parse_push_constants(compiler, stage, resources, variant); |
| 386 | parse_specialization_constants(compiler, stage, resources, variant); |
| 387 | |
| 388 | return true; |
| 389 | } |
| 390 | |
| 391 | void SPIRVReflection::parse_shader_resources(const spirv_cross::Compiler &compiler, VkShaderStageFlagBits stage, std::vector<ShaderResource> &resources, const ShaderVariant &variant) |
| 392 | { |