Lines Matching defs:const

480 constexpr const uint32_t RESERVED_CONSTANT_ID_INDEX { 256 };

519 array_view<const uint8_t> reflectionData;
521 bool IsValid() const;
522 ShaderStageFlags GetStageFlags() const;
523 PipelineLayout GetPipelineLayout() const;
524 std::vector<ShaderSpecializationConstant> GetSpecializationConstants() const;
525 std::vector<VertexInputDeclaration::VertexInputAttributeDescription> GetInputDescriptions() const;
526 UVec3 GetLocalSize() const;
531 array_view<const uint8_t> spvData;
560 scope(const std::function<void()>&& initializer, const std::function<void()>&& deinitalizer)
572 bool ShaderReflectionData::IsValid() const
577 const ReflectionHeader& header = *reinterpret_cast<const ReflectionHeader*>(reflectionData.data());
581 ShaderStageFlags ShaderReflectionData::GetStageFlags() const
584 const ReflectionHeader& header = *reinterpret_cast<const ReflectionHeader*>(reflectionData.data());
589 PipelineLayout ShaderReflectionData::GetPipelineLayout() const
592 const ReflectionHeader& header = *reinterpret_cast<const ReflectionHeader*>(reflectionData.data());
595 const auto constants = *ptr;
607 const uint32_t set = static_cast<uint32_t>(*ptr | (*(ptr + 1) << 8));
612 const auto bindings = static_cast<uint32_t>(*ptr | (*(ptr + 1) << 8));
630 std::vector<ShaderSpecializationConstant> ShaderReflectionData::GetSpecializationConstants() const
633 const ReflectionHeader& header = *reinterpret_cast<const ReflectionHeader*>(reflectionData.data());
636 const auto size = *ptr | *(ptr + 1) << 8 | *(ptr + 2) << 16 | *(ptr + 3) << 24;
653 std::vector<VertexInputDeclaration::VertexInputAttributeDescription> ShaderReflectionData::GetInputDescriptions() const
656 const ReflectionHeader& header = *reinterpret_cast<const ReflectionHeader*>(reflectionData.data());
659 const auto size = *(ptr) | (*(ptr + 1) << 8);
675 UVec3 ShaderReflectionData::GetLocalSize() const
678 const ReflectionHeader& header = *reinterpret_cast<const ReflectionHeader*>(reflectionData.data());
704 } catch (std::exception const& ex) {
713 const CompilationSettings& settings;
714 FileIncluder(const CompilationSettings& compilationSettings) : settings(compilationSettings) {}
718 const char* headerName, const char* includerName, size_t inclusionDepth, bool relative)
762 virtual IncludeResult* includeSystem(const char* headerName, const char* includerName, size_t inclusionDepth)
767 virtual IncludeResult* includeLocal(const char* headerName, const char* includerName, size_t inclusionDepth)
796 std::string_view aSource, ShaderKind aKind, std::string_view aSourceName, const CompilationSettings& settings)
840 const char* shader_strings = aSource.data();
841 const int shader_lengths = static_cast<int>(aSource.size());
842 const char* string_names = aSourceName.data();
861 const EShMessages rules =
877 std::string_view aSource, ShaderKind aKind, std::string_view aSourceName, const CompilationSettings& settings)
920 const char* shader_strings = aSource.data();
921 const int shader_lengths = static_cast<int>(aSource.size());
922 const char* string_names = aSourceName.data();
939 const EShMessages rules = static_cast<EShMessages>(EShMsgSpvRules | EShMsgVulkanRules | EShMsgCascadingErrors);
963 const uint32_t shaderc_generator_word = 13; // From SPIR-V XML Registry
964 const uint32_t generator_word_index = 2; // SPIR-V 2.3: Physical layout
970 void processResource(const spirv_cross::Compiler& compiler, const spirv_cross::Resource& resource,
973 const uint32_t set = compiler.get_decoration(resource.id, spv::DecorationDescriptorSet);
983 const uint32_t bindingIndex = compiler.get_decoration(resource.id, spv::DecorationBinding);
986 [bindingIndex](const DescriptorSetLayoutBinding& binding) { return binding.binding == bindingIndex; });
988 const spirv_cross::SPIRType& spirType = compiler.get_type(resource.type_id);
1002 void reflectDescriptorSets(const spirv_cross::Compiler& compiler, const spirv_cross::ShaderResources& resources,
1005 for (const auto& ref : resources.sampled_images) {
1009 for (const auto& ref : resources.separate_samplers) {
1013 for (const auto& ref : resources.separate_images) {
1017 for (const auto& ref : resources.storage_images) {
1021 for (const auto& ref : resources.uniform_buffers) {
1025 for (const auto& ref : resources.storage_buffers) {
1029 for (const auto& ref : resources.subpass_inputs) {
1033 for (const auto& ref : resources.acceleration_structures) {
1038 [](const DescriptorSetLayout& lhs, const DescriptorSetLayout& rhs) { return (lhs.set < rhs.set); });
1043 [](const DescriptorSetLayoutBinding& lhs, const DescriptorSetLayoutBinding& rhs) {
1049 void reflectPushContants(const spirv_cross::Compiler& compiler, const spirv_cross::ShaderResources& resources,
1056 const auto ranges = compiler.get_active_buffer_ranges(resources.push_constant_buffers[0].id);
1057 const uint32_t byteSize = std::accumulate(
1058 ranges.begin(), ranges.end(), 0u, [](uint32_t byteSize, const spirv_cross::BufferRange& range) {
1066 const spirv_cross::Compiler& compiler, ShaderStageFlags shaderStateFlags)
1070 for (auto const& constant : compiler.get_specialization_constants()) {
1072 const spirv_cross::SPIRConstant& spirvConstant = compiler.get_constant(constant.id);
1073 const auto type = compiler.get_type(spirvConstant.constant_type);
1086 const uint32_t size = spirvConstant.vector_size() * spirvConstant.columns() * sizeof(uint32_t);
1095 [](const auto& lhs, const auto& rhs) { return (lhs.offset < rhs.offset); });
1100 Format convertToVertexInputFormat(const spirv_cross::SPIRType& type)
1163 void reflectVertexInputs(const spirv_cross::Compiler& compiler, const spirv_cross::ShaderResources& resources,
1171 const spirv_cross::SPIRType attributeType = compiler.get_type(attr.type_id);
1188 [](const VertexAttributeInfo& aA, const VertexAttributeInfo& aB) {
1219 std::vector<uint8_t> reflectSpvBinary(const std::vector<uint32_t>& aBinary, ShaderKind aKind)
1221 const spirv_cross::Compiler compiler(aBinary);
1223 const auto shaderStateFlags = ShaderStageFlags(aKind);
1225 const spirv_cross::ShaderResources resources = compiler.get_shader_resources();
1231 std::end(pipelineLayout.descriptorSetLayouts), [](const DescriptorSetLayout& layout) {
1239 const auto& blockType = compiler.get_type(remap.base_type_id);
1282 for (const auto& refl : pushConstantReflection) {
1300 const auto size = static_cast<uint32_t>(specializationConstants.size());
1303 for (auto const& constant : specializationConstants) {
1317 std::for_each(begin, end, [&reflection](const DescriptorSetLayout& layout) {
1320 for (const auto& binding : layout.bindings) {
1330 const auto size = static_cast<uint16_t>(vertexInputAttributes.size());
1332 for (const auto& input : vertexInputAttributes) {
1374 const uint32_t dset = compiler.get_decoration(id, spv::Decoration::DecorationDescriptorSet);
1375 const uint32_t dbind = compiler.get_decoration(id, spv::Decoration::DecorationBinding);
1378 const uint8_t set = static_cast<uint8_t>(dset);
1379 const uint8_t bind = static_cast<uint8_t>(dbind);
1391 [](auto const& lhs, auto const& rhs) { return (lhs.binding < rhs.binding); });
1396 void Collect(Gles::CoreCompiler& compiler, const spirv_cross::SmallVector<spirv_cross::Resource>& resources,
1397 const uint32_t forceBinding = 0)
1401 for (const auto& remap : resources) {
1402 const auto binding = get_binding(compiler, remap.id);
1405 const auto nameLen = sprintf(name.data(), "s%u_b%u", binding.set, binding.bind);
1433 Gles::CoreCompiler& compiler, const spirv_cross::ShaderResources& res, ShaderModulePlatformDataGLES& plat_)
1450 const auto imageBinding = get_binding(compiler, remap.image_id);
1453 const auto nameLen = sprintf(imageName.data(), "s%u_b%u", imageBinding.set, imageBinding.bind);
1456 const auto samplerBinding = get_binding(compiler, remap.sampler_id);
1459 const auto nameLen = sprintf(samplerName.data(), "s%u_b%u", samplerBinding.set, samplerBinding.bind);
1518 void ProcessShaderModule(Shader& me, const ShaderModuleCreateInfo& createInfo)
1521 auto compiler = Gles::CoreCompiler(reinterpret_cast<const uint32_t*>(createInfo.spvData.data()),
1529 // const auto& res = compiler.get_shader_resources();
1532 const auto& res = compiler.get_shader_resources(active);
1547 bool writeToFile(const array_view<T>& data, std::filesystem::path aDestinationFile)
1551 outputStream.write((const char*)data.data(), data.size() * sizeof(T));
1564 const std::filesystem::path relativeInputFilename =
1566 const std::string relativeFilename = relativeInputFilename.string();
1567 const std::string extension = std::filesystem::path(inputFilename).extension().string();
1617 const auto reflection = reflectSpvBinary(spvBinary, shaderKind);
1643 static constexpr const std::string_view multiview = "GL_EXT_multiview";
1670 array_view(static_cast<const uint8_t*>(static_cast<const void*>(spvBinary.data())),
1673 array_view(static_cast<const uint8_t*>(static_cast<const void*>(reflection.data())),
1676 writeToFile(array_view(static_cast<const uint8_t*>(
1677 static_cast<const void*>(shader.source_.data())),
1680 } catch (std::exception const& e) {
1689 static constexpr const std::string_view multiview = "GL_EXT_multiview";
1716 array_view(static_cast<const uint8_t*>(static_cast<const void*>(spvBinary.data())),
1719 array_view(static_cast<const uint8_t*>(static_cast<const void*>(reflection.data())),
1722 writeToFile(array_view(static_cast<const uint8_t*>(
1723 static_cast<const void*>(shader.source_.data())),
1726 } catch (std::exception const& e) {
1737 } catch (std::exception const& e) {
1756 const std::vector<std::string>& aFilenames, const std::vector<std::string_view>& aIncludeExtensions)
1759 for (auto const& file : aFilenames) {
1763 for (auto const& extension : aIncludeExtensions) {
1781 std::filesystem::path const currentFolder = std::filesystem::current_path();
1791 const auto arg = std::string_view(argv[i]);
1841 const auto version = std::string_view(argv[++i]);
1893 const std::vector<std::string_view> supportedFileTypes = { ".vert", ".frag", ".comp", ".json" };
1897 for (auto const& path : shaderIncludePaths) {
1910 for (auto const& path : shaderIncludePaths) {
1939 for (auto const& file : fileList) {
1969 for (auto const& addedFile : addedFiles) {
1976 for (auto const& removedFile : removedFiles) {
1984 for (auto const& modifiedFile : modifiedFiles) {
1990 [&sourceFile](const std::string& modified) { return modified == sourceFile; });