summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorRobert Stepinski <rob.stepinski@gmail.com>2019-10-17 17:22:46 -0400
committerTim Foley <tfoleyNV@users.noreply.github.com>2019-10-17 14:22:46 -0700
commitbb4a2ac62f59fd0cd2f597207bbfa93e07f7525b (patch)
treea52d4681a1d2d637dc830c3bb786791602ee19bd /source
parent1102c53513837e7f052730b847270f533876833f (diff)
Enable spriv-opt on spirv (#1076)
* Add spirv-tools module and set ENABLE_OPT to be true * Add spirv-headers dependency * Build spirv-opt into glslang project * Add optimization pass * Add generated spirv-opt files Modify solution to avoid obj file conflicts * Add optimization pass to SPIR-V generation * Don't pass additional optimizer options to glslang * Build spirv-opt in Linux
Diffstat (limited to 'source')
-rw-r--r--source/slang-glslang/slang-glslang.cpp121
-rw-r--r--source/slang-glslang/slang-glslang.h3
-rw-r--r--source/slang-glslang/slang-glslang.vcxproj191
-rw-r--r--source/slang-glslang/slang-glslang.vcxproj.filters674
-rw-r--r--source/slang/slang-compiler.cpp4
5 files changed, 912 insertions, 81 deletions
diff --git a/source/slang-glslang/slang-glslang.cpp b/source/slang-glslang/slang-glslang.cpp
index 25b46bafe..6b2af69b7 100644
--- a/source/slang-glslang/slang-glslang.cpp
+++ b/source/slang-glslang/slang-glslang.cpp
@@ -16,6 +16,9 @@
#include "../../slang.h"
+#include "spirv-tools/optimizer.hpp"
+#include "spirv-tools/libspirv.h"
+
#if 0
#include <cstring>
#include <cstdlib>
@@ -86,6 +89,119 @@ static void dumpDiagnostics(
dump(log.c_str(), log.length(), request->diagnosticFunc, request->diagnosticUserData, stderr);
}
+// Apply the SPIRV-Tools optimizer to generated SPIR-V based on the desired optimization level
+// TODO: add flag for optimizing SPIR-V size as well
+static void glslang_optimizeSPIRV(std::vector<unsigned int>& spirv, unsigned optimizationLevel, unsigned debugInfoType)
+{
+ spv_target_env target_env = SPV_ENV_UNIVERSAL_1_2;
+
+ spvtools::Optimizer optimizer(target_env);
+ optimizer.SetMessageConsumer(
+ [](spv_message_level_t level, const char *source, const spv_position_t &position, const char *message) {
+ auto &out = std::cerr;
+ switch (level)
+ {
+ case SPV_MSG_FATAL:
+ case SPV_MSG_INTERNAL_ERROR:
+ case SPV_MSG_ERROR:
+ out << "error: ";
+ break;
+ case SPV_MSG_WARNING:
+ out << "warning: ";
+ break;
+ case SPV_MSG_INFO:
+ case SPV_MSG_DEBUG:
+ out << "info: ";
+ break;
+ default:
+ break;
+ }
+ if (source)
+ {
+ out << source << ":";
+ }
+ out << position.line << ":" << position.column << ":" << position.index << ":";
+ if (message)
+ {
+ out << " " << message;
+ }
+ out << std::endl;
+ });
+
+ // If debug info is being generated, propagate
+ // line information into all SPIR-V instructions. This avoids loss of
+ // information when instructions are deleted or moved. Later, remove
+ // redundant information to minimize final SPRIR-V size.
+ if (debugInfoType != SLANG_DEBUG_INFO_LEVEL_NONE)
+ {
+ optimizer.RegisterPass(spvtools::CreatePropagateLineInfoPass());
+ }
+
+ // TODO confirm which passes we want to invoke for each level
+ switch (optimizationLevel)
+ {
+ case SLANG_OPTIMIZATION_LEVEL_NONE:
+ // Don't register any passes if our optimization level is none
+ break;
+ case SLANG_OPTIMIZATION_LEVEL_DEFAULT:
+ // Use a minimal set of performance settings
+ optimizer.RegisterPass(spvtools::CreateInlineExhaustivePass());
+ optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
+ optimizer.RegisterPass(spvtools::CreatePrivateToLocalPass());
+ optimizer.RegisterPass(spvtools::CreateScalarReplacementPass(100));
+ optimizer.RegisterPass(spvtools::CreateLocalAccessChainConvertPass());
+ optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
+ break;
+ case SLANG_OPTIMIZATION_LEVEL_HIGH:
+ case SLANG_OPTIMIZATION_LEVEL_MAXIMAL:
+ // Use the same passes when specifying the "-O" flag in spirv-opt
+ optimizer.RegisterPass(spvtools::CreateWrapOpKillPass());
+ optimizer.RegisterPass(spvtools::CreateDeadBranchElimPass());
+ optimizer.RegisterPass(spvtools::CreateMergeReturnPass());
+ optimizer.RegisterPass(spvtools::CreateInlineExhaustivePass());
+ optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
+ optimizer.RegisterPass(spvtools::CreatePrivateToLocalPass());
+ optimizer.RegisterPass(spvtools::CreateLocalSingleBlockLoadStoreElimPass());
+ optimizer.RegisterPass(spvtools::CreateLocalSingleStoreElimPass());
+ optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
+ optimizer.RegisterPass(spvtools::CreateScalarReplacementPass());
+ optimizer.RegisterPass(spvtools::CreateLocalAccessChainConvertPass());
+ optimizer.RegisterPass(spvtools::CreateLocalSingleBlockLoadStoreElimPass());
+ optimizer.RegisterPass(spvtools::CreateLocalSingleStoreElimPass());
+ optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
+ optimizer.RegisterPass(spvtools::CreateLocalMultiStoreElimPass());
+ optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
+ optimizer.RegisterPass(spvtools::CreateCCPPass());
+ optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
+ optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass());
+ optimizer.RegisterPass(spvtools::CreateCombineAccessChainsPass());
+ optimizer.RegisterPass(spvtools::CreateSimplificationPass());
+ optimizer.RegisterPass(spvtools::CreateVectorDCEPass());
+ optimizer.RegisterPass(spvtools::CreateDeadInsertElimPass());
+ optimizer.RegisterPass(spvtools::CreateDeadBranchElimPass());
+ optimizer.RegisterPass(spvtools::CreateSimplificationPass());
+ optimizer.RegisterPass(spvtools::CreateIfConversionPass());
+ optimizer.RegisterPass(spvtools::CreateCopyPropagateArraysPass());
+ optimizer.RegisterPass(spvtools::CreateReduceLoadSizePass());
+ optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
+ optimizer.RegisterPass(spvtools::CreateBlockMergePass());
+ optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass());
+ optimizer.RegisterPass(spvtools::CreateDeadBranchElimPass());
+ optimizer.RegisterPass(spvtools::CreateBlockMergePass());
+ optimizer.RegisterPass(spvtools::CreateSimplificationPass());
+ break;
+ }
+
+ if (debugInfoType != SLANG_DEBUG_INFO_LEVEL_NONE)
+ {
+ optimizer.RegisterPass(spvtools::CreateRedundantLineInfoElimPass());
+ }
+
+ spvtools::OptimizerOptions spvOptOptions;
+ spvOptOptions.set_run_validator(false); // Don't run the validator by default
+ optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions);
+}
+
static int glslang_compileGLSLToSPIRV(glslang_CompileRequest* request)
{
EShLanguage glslangStage;
@@ -167,6 +283,11 @@ static int glslang_compileGLSLToSPIRV(glslang_CompileRequest* request)
spv::SpvBuildLogger logger;
glslang::GlslangToSpv(*stageIntermediate, spirv, &logger);
+ if (request->optimizationLevel != SLANG_OPTIMIZATION_LEVEL_NONE)
+ {
+ glslang_optimizeSPIRV(spirv, request->optimizationLevel, request->debugInfoType);
+ }
+
dumpDiagnostics(request, logger.getAllMessages());
dump(spirv.data(), spirv.size() * sizeof(unsigned int), request->outputFunc, request->outputUserData, stdout);
diff --git a/source/slang-glslang/slang-glslang.h b/source/slang-glslang/slang-glslang.h
index 22014de72..16b8fb871 100644
--- a/source/slang-glslang/slang-glslang.h
+++ b/source/slang-glslang/slang-glslang.h
@@ -28,6 +28,9 @@ struct glslang_CompileRequest
int slangStage;
unsigned action;
+
+ unsigned optimizationLevel;
+ unsigned debugInfoType;
};
typedef int (*glslang_CompileFunc)(glslang_CompileRequest* request);
diff --git a/source/slang-glslang/slang-glslang.vcxproj b/source/slang-glslang/slang-glslang.vcxproj
index eb53fc311..5a6508f1d 100644
--- a/source/slang-glslang/slang-glslang.vcxproj
+++ b/source/slang-glslang/slang-glslang.vcxproj
@@ -97,11 +97,12 @@
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
- <PreprocessorDefinitions>_DEBUG;ENABLE_OPT=0;AMD_EXTENSIONS;NV_EXTENSIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\external\glslang;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;ENABLE_OPT=1;AMD_EXTENSIONS;NV_EXTENSIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\external\glslang;..\..\external\spirv-tools;..\..\external\spirv-tools\include;..\..\external\spirv-headers\include;..\..\external\spirv-tools\build;..\..\external\spirv-tools-generated;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <ObjectFileName>$(IntDir)/%(RelativeDir)/$(Configuration)/</ObjectFileName>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -113,11 +114,12 @@
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
- <PreprocessorDefinitions>_DEBUG;ENABLE_OPT=0;AMD_EXTENSIONS;NV_EXTENSIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\external\glslang;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;ENABLE_OPT=1;AMD_EXTENSIONS;NV_EXTENSIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\external\glslang;..\..\external\spirv-tools;..\..\external\spirv-tools\include;..\..\external\spirv-headers\include;..\..\external\spirv-tools\build;..\..\external\spirv-tools-generated;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <ObjectFileName>$(IntDir)/%(RelativeDir)/$(Configuration)/</ObjectFileName>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -129,14 +131,15 @@
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
- <PreprocessorDefinitions>NDEBUG;ENABLE_OPT=0;AMD_EXTENSIONS;NV_EXTENSIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\external\glslang;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;ENABLE_OPT=1;AMD_EXTENSIONS;NV_EXTENSIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\external\glslang;..\..\external\spirv-tools;..\..\external\spirv-tools\include;..\..\external\spirv-headers\include;..\..\external\spirv-tools\build;..\..\external\spirv-tools-generated;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <ObjectFileName>$(IntDir)/%(RelativeDir)/$(Configuration)/</ObjectFileName>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -149,14 +152,15 @@
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
- <PreprocessorDefinitions>NDEBUG;ENABLE_OPT=0;AMD_EXTENSIONS;NV_EXTENSIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\external\glslang;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;ENABLE_OPT=1;AMD_EXTENSIONS;NV_EXTENSIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\external\glslang;..\..\external\spirv-tools;..\..\external\spirv-tools\include;..\..\external\spirv-headers\include;..\..\external\spirv-tools\build;..\..\external\spirv-tools-generated;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <ObjectFileName>$(IntDir)/%(RelativeDir)/$(Configuration)/</ObjectFileName>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -252,6 +256,177 @@
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\propagateNoContraction.cpp" />
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\reflection.cpp" />
<ClCompile Include="..\..\external\glslang\glslang\OSDependent\Windows\ossource.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\assembly_grammar.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\binary.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\diagnostic.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\disassemble.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\enum_string_mapping.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\extensions.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\ext_inst.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\libspirv.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\name_mapper.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opcode.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\operand.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\aggressive_dead_code_elim_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\amd_ext_to_khr.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\basic_block.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\block_merge_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\block_merge_util.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\build_module.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\ccp_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\cfg.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\cfg_cleanup_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\code_sink.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\combine_access_chains.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\compact_ids_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\composite.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\constants.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\const_folding_rules.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\convert_to_half_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\copy_prop_arrays.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dead_branch_elim_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dead_insert_elim_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dead_variable_elimination.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\decompose_initialized_variables_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\decoration_manager.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\def_use_manager.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\desc_sroa.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dominator_analysis.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dominator_tree.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\eliminate_dead_constant_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\eliminate_dead_functions_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\eliminate_dead_functions_util.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\eliminate_dead_members_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\feature_manager.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\fix_storage_class.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\flatten_decoration_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\fold.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\folding_rules.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\fold_spec_constant_op_and_composite_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\freeze_spec_constant_value_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\function.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\generate_webgpu_initializers_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\graphics_robust_access_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\if_conversion.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inline_exhaustive_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inline_opaque_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inline_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\instruction.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\instruction_list.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\instrument_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inst_bindless_check_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inst_buff_addr_check_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\ir_context.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\ir_loader.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\legalize_vector_shuffle_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\licm_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\local_access_chain_convert_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\local_redundancy_elimination.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\local_single_block_elim_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\local_single_store_elim_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_dependence.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_dependence_helpers.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_descriptor.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_fission.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_fusion.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_fusion_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_peeling.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_unroller.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_unswitch_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_utils.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\mem_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\merge_return_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\module.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\optimizer.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\pass_manager.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\pch_source_opt.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\private_to_local_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\process_lines_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\propagator.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\reduce_load_size.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\redundancy_elimination.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\register_pressure.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\relax_float_ops_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\remove_duplicates_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\replace_invalid_opc.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\scalar_analysis.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\scalar_analysis_simplification.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\scalar_replacement_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\set_spec_constant_default_value_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\simplification_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\split_invalid_unreachable_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\ssa_rewrite_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\strength_reduction_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\strip_atomic_counter_memory_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\strip_debug_info_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\strip_reflect_info_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\struct_cfg_analysis.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\types.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\type_manager.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\unify_const_pass.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\upgrade_memory_model.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\value_number_table.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\vector_dce.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\workaround1209.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\wrap_opkill.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\parsed_operand.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\pch_source.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\print.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\software_version.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_endian.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_fuzzer_options.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_optimizer_options.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_reducer_options.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_target_env.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_validator_options.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\table.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\text.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\text_handler.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\util\bit_vector.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\util\parse_number.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\util\string_utils.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\util\timer.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\basic_block.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\construct.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\function.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\instruction.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_adjacency.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_annotation.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_arithmetics.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_atomics.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_barriers.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_bitwise.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_builtins.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_capability.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_cfg.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_composites.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_constants.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_conversion.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_debug.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_decorations.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_derivatives.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_execution_limitations.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_extensions.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_function.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_id.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_image.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_instruction.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_interfaces.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_layout.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_literals.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_logicals.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_memory.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_memory_semantics.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_misc.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_mode_setting.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_non_uniform.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_primitives.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_scopes.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_small_type_uses.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_type.cpp" />
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validation_state.cpp" />
<ClCompile Include="slang-glslang.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/source/slang-glslang/slang-glslang.vcxproj.filters b/source/slang-glslang/slang-glslang.vcxproj.filters
index 482728c71..a922440de 100644
--- a/source/slang-glslang/slang-glslang.vcxproj.filters
+++ b/source/slang-glslang/slang-glslang.vcxproj.filters
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
@@ -7,6 +7,21 @@
<Filter Include="Source Files">
<UniqueIdentifier>{E9C7FDCE-D52A-8D73-7EB0-C5296AF258F6}</UniqueIdentifier>
</Filter>
+ <Filter Include="Source Files\spirv-tools">
+ <UniqueIdentifier>{0f17aa89-8c4d-488f-9577-c32b50f9b081}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\spirv-tools\val">
+ <UniqueIdentifier>{79d3e53a-e1bb-41a8-9a8c-65ed15905fce}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\spirv-tools\opt">
+ <UniqueIdentifier>{cbc707d5-9925-4cfc-a98f-24edb5d66cfa}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\spirv-tools\util">
+ <UniqueIdentifier>{525e4d11-95f7-4087-af42-3148dd340ae1}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\glslang">
+ <UniqueIdentifier>{b2f07a8e-0eda-425b-b3d1-bf3e95a84878}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\external\glslang\OGLCompilersDLL\InitializeDll.h">
@@ -134,137 +149,650 @@
</ClInclude>
</ItemGroup>
<ItemGroup>
- <ClCompile Include="..\..\external\glslang\OGLCompilersDLL\InitializeDll.cpp">
+ <ClCompile Include="slang-glslang.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\GlslangToSpv.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\assembly_grammar.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\InReadableOrder.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\binary.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\Logger.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\diagnostic.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\SPVRemapper.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\disassemble.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\SpvBuilder.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\enum_string_mapping.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\SpvPostProcess.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\ext_inst.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\SpvTools.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\extensions.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\disassemble.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\libspirv.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\SPIRV\doc.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\name_mapper.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\StandAlone\ResourceLimits.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\opcode.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\StandAlone\spirv-remap.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\operand.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\GenericCodeGen\CodeGen.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\parsed_operand.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\GenericCodeGen\Link.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\pch_source.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Constant.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\print.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\InfoSink.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\software_version.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Initialize.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_endian.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\IntermTraverse.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_fuzzer_options.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Intermediate.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_optimizer_options.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\ParseContextBase.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_reducer_options.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\ParseHelper.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_target_env.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\PoolAlloc.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\spirv_validator_options.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\RemoveTree.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\table.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Scan.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\text.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\ShaderLang.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\text_handler.cpp">
+ <Filter>Source Files\spirv-tools</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\SymbolTable.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\aggressive_dead_code_elim_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Versions.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\amd_ext_to_khr.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\basic_block.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\block_merge_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\block_merge_util.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\build_module.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\ccp_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\cfg.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\cfg_cleanup_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\code_sink.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\combine_access_chains.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\compact_ids_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\composite.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\const_folding_rules.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\constants.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\convert_to_half_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\copy_prop_arrays.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dead_branch_elim_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dead_insert_elim_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dead_variable_elimination.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\decompose_initialized_variables_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\decoration_manager.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\def_use_manager.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\desc_sroa.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dominator_analysis.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\dominator_tree.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\eliminate_dead_constant_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\eliminate_dead_functions_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\eliminate_dead_functions_util.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\eliminate_dead_members_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\feature_manager.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\fix_storage_class.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\flatten_decoration_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\fold.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\fold_spec_constant_op_and_composite_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\folding_rules.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\freeze_spec_constant_value_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\function.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\generate_webgpu_initializers_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\graphics_robust_access_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\if_conversion.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inline_exhaustive_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inline_opaque_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inline_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inst_bindless_check_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\inst_buff_addr_check_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\instruction.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\instruction_list.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\instrument_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\ir_context.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\ir_loader.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\legalize_vector_shuffle_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\licm_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\local_access_chain_convert_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\local_redundancy_elimination.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\local_single_block_elim_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\local_single_store_elim_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_dependence.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_dependence_helpers.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_descriptor.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_fission.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_fusion.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_fusion_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_peeling.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_unroller.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_unswitch_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\loop_utils.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\mem_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\merge_return_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\module.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\optimizer.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\pass_manager.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\pch_source_opt.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\private_to_local_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\process_lines_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\propagator.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\reduce_load_size.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\redundancy_elimination.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\register_pressure.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\relax_float_ops_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\remove_duplicates_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\replace_invalid_opc.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\scalar_analysis.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\scalar_analysis_simplification.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\scalar_replacement_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\set_spec_constant_default_value_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\simplification_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\split_invalid_unreachable_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\ssa_rewrite_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\strength_reduction_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\strip_atomic_counter_memory_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\strip_debug_info_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\strip_reflect_info_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\struct_cfg_analysis.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\type_manager.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\types.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\unify_const_pass.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\upgrade_memory_model.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\value_number_table.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\vector_dce.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\workaround1209.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\opt\wrap_opkill.cpp">
+ <Filter>Source Files\spirv-tools\opt</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\basic_block.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\construct.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\function.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\instruction.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_adjacency.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_annotation.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_arithmetics.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_atomics.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_barriers.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_bitwise.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_builtins.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_capability.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_cfg.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_composites.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_constants.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_conversion.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_debug.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_decorations.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_derivatives.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_execution_limitations.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_extensions.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_function.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_id.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_image.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_instruction.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_interfaces.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_layout.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_literals.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_logicals.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_memory.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_memory_semantics.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_misc.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_mode_setting.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_non_uniform.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_primitives.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_scopes.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_small_type_uses.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validate_type.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\val\validation_state.cpp">
+ <Filter>Source Files\spirv-tools\val</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\util\bit_vector.cpp">
+ <Filter>Source Files\spirv-tools\util</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\util\parse_number.cpp">
+ <Filter>Source Files\spirv-tools\util</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\util\string_utils.cpp">
+ <Filter>Source Files\spirv-tools\util</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\spirv-tools\source\util\timer.cpp">
+ <Filter>Source Files\spirv-tools\util</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\attribute.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\GenericCodeGen\CodeGen.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Constant.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\disassemble.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\doc.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\glslang_tab.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\GlslangToSpv.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\InfoSink.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Initialize.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\OGLCompilersDLL\InitializeDll.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\InReadableOrder.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Intermediate.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\intermOut.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\IntermTraverse.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\iomapper.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\limits.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\GenericCodeGen\Link.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\linkValidate.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\Logger.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\OSDependent\Windows\ossource.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\parseConst.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\ParseContextBase.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\ParseHelper.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\pch.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\PoolAlloc.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\preprocessor\Pp.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\preprocessor\PpAtom.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\preprocessor\PpContext.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\preprocessor\PpScanner.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\preprocessor\PpTokens.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\propagateNoContraction.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\reflection.cpp">
- <Filter>Source Files</Filter>
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
- <ClCompile Include="..\..\external\glslang\glslang\OSDependent\Windows\ossource.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\RemoveTree.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
- <ClCompile Include="slang-glslang.cpp">
- <Filter>Source Files</Filter>
+ <ClCompile Include="..\..\external\glslang\StandAlone\ResourceLimits.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Scan.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\ShaderLang.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\StandAlone\spirv-remap.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\SpvBuilder.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\SpvPostProcess.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\SPVRemapper.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\SPIRV\SpvTools.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\SymbolTable.cpp">
+ <Filter>Source Files\glslang</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\external\glslang\glslang\MachineIndependent\Versions.cpp">
+ <Filter>Source Files\glslang</Filter>
</ClCompile>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/source/slang/slang-compiler.cpp b/source/slang/slang-compiler.cpp
index c8cc947f4..ecd34ccd3 100644
--- a/source/slang/slang-compiler.cpp
+++ b/source/slang/slang-compiler.cpp
@@ -1098,6 +1098,7 @@ SlangResult dissassembleDXILUsingDXC(
{
Session* session = slangCompileRequest->getSession();
auto sink = slangCompileRequest->getSink();
+ auto linkage = slangCompileRequest->getLinkage();
auto glslang_compile = (glslang_CompileFunc)session->getSharedLibraryFunc(Session::SharedLibraryFuncType::Glslang_Compile, sink);
if (!glslang_compile)
@@ -1115,6 +1116,9 @@ SlangResult dissassembleDXILUsingDXC(
request.diagnosticFunc = diagnosticOutputFunc;
request.diagnosticUserData = &diagnosticOutput;
+ request.optimizationLevel = (unsigned)linkage->optimizationLevel;
+ request.debugInfoType = (unsigned)linkage->debugInfoLevel;
+
int err = glslang_compile(&request);
if (err)