diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f7db99784..4f08b013b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,20 +136,10 @@ endif() # HLSL Change Ends # SPIRV change starts -option(ENABLE_SPIRV_CODEGEN "Enables SPIR-V code generation." OFF) option(SPIRV_BUILD_TESTS "Build targets for the SPIR-V unit tests." OFF) -# Enable SPIR-V CodeGen for Linux by default. -if(NOT WIN32) - set(ENABLE_SPIRV_CODEGEN ON) -endif() - if (${SPIRV_BUILD_TESTS}) enable_testing() - set(ENABLE_SPIRV_CODEGEN ON) -endif() -if (${ENABLE_SPIRV_CODEGEN}) - add_definitions(-DENABLE_SPIRV_CODEGEN) endif() # SPIRV change ends diff --git a/cmake/caches/PredefinedParams.cmake b/cmake/caches/PredefinedParams.cmake index e21a9bdaa1..8d1095cdba 100644 --- a/cmake/caches/PredefinedParams.cmake +++ b/cmake/caches/PredefinedParams.cmake @@ -27,6 +27,5 @@ set(CLANG_CL OFF CACHE BOOL "") set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "") set(HLSL_INCLUDE_TESTS ON CACHE BOOL "") -set(ENABLE_SPIRV_CODEGEN ON CACHE BOOL "") set(SPIRV_BUILD_TESTS ON CACHE BOOL "") set(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "") diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index a8b2638e3d..1c3549cccd 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -18,58 +18,55 @@ if (NOT DIRECTX_HEADER_INCLUDE_DIR) endif (NOT WIN32) endif(NOT DIRECTX_HEADER_INCLUDE_DIR) -# Enabling SPIR-V codegen requires SPIRV-Headers for spirv.hpp and +# SPIR-V codegen requires SPIRV-Headers for spirv.hpp and # SPIRV-Tools for SPIR-V disassembling functionality. -if (${ENABLE_SPIRV_CODEGEN}) - set(DXC_SPIRV_HEADERS_DIR "${DXC_EXTERNAL_ROOT_DIR}/SPIRV-Headers" - CACHE STRING "Location of SPIRV-Headers source") - set(DXC_SPIRV_TOOLS_DIR "${DXC_EXTERNAL_ROOT_DIR}/SPIRV-Tools" - CACHE STRING "Location of SPIRV-Tools source") +set(DXC_SPIRV_HEADERS_DIR "${DXC_EXTERNAL_ROOT_DIR}/SPIRV-Headers" + CACHE STRING "Location of SPIRV-Headers source") +set(DXC_SPIRV_TOOLS_DIR "${DXC_EXTERNAL_ROOT_DIR}/SPIRV-Tools" + CACHE STRING "Location of SPIRV-Tools source") - if (NOT DEFINED SPIRV-Headers_SOURCE_DIR) - if (IS_DIRECTORY ${DXC_SPIRV_HEADERS_DIR}) - add_subdirectory(${DXC_SPIRV_HEADERS_DIR} - "${CMAKE_BINARY_DIR}/external/SPIRV-Headers" - EXCLUDE_FROM_ALL) - endif() - endif() - if (NOT DEFINED SPIRV-Headers_SOURCE_DIR) - message(FATAL_ERROR "SPIRV-Headers was not found - required for SPIR-V codegen") - else() - set(SPIRV_HEADER_INCLUDE_DIR ${SPIRV-Headers_SOURCE_DIR}/include PARENT_SCOPE) +if (NOT DEFINED SPIRV-Headers_SOURCE_DIR) + if (IS_DIRECTORY ${DXC_SPIRV_HEADERS_DIR}) + add_subdirectory(${DXC_SPIRV_HEADERS_DIR} + "${CMAKE_BINARY_DIR}/external/SPIRV-Headers" + EXCLUDE_FROM_ALL) endif() +endif() +if (NOT DEFINED SPIRV-Headers_SOURCE_DIR) + message(FATAL_ERROR "SPIRV-Headers was not found - required for SPIR-V codegen") +else() + set(SPIRV_HEADER_INCLUDE_DIR ${SPIRV-Headers_SOURCE_DIR}/include PARENT_SCOPE) +endif() - if (NOT TARGET SPIRV-Tools) - if (IS_DIRECTORY ${DXC_SPIRV_TOOLS_DIR}) - # Avoid implicit fallthrough warning from clang - # This add_compile_options() will only affect the current directory and its subdirectories. - if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wno-implicit-fallthrough) - endif() - # We only need the library from SPIRV-Tools. - set(SPIRV_SKIP_EXECUTABLES ON CACHE BOOL "Skip building SPIRV-Tools executables") - if (NOT HLSL_ENABLE_DEBUG_ITERATORS) - set(SPIRV_TOOLS_EXTRA_DEFINITIONS /D_ITERATOR_DEBUG_LEVEL=0) - endif() - add_subdirectory(${DXC_SPIRV_TOOLS_DIR} - "${CMAKE_BINARY_DIR}/external/SPIRV-Tools" - EXCLUDE_FROM_ALL) +if (NOT TARGET SPIRV-Tools) + if (IS_DIRECTORY ${DXC_SPIRV_TOOLS_DIR}) + # Avoid implicit fallthrough warning from clang + # This add_compile_options() will only affect the current directory and its subdirectories. + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wno-implicit-fallthrough) endif() + # We only need the library from SPIRV-Tools. + set(SPIRV_SKIP_EXECUTABLES ON CACHE BOOL "Skip building SPIRV-Tools executables") + if (NOT HLSL_ENABLE_DEBUG_ITERATORS) + set(SPIRV_TOOLS_EXTRA_DEFINITIONS /D_ITERATOR_DEBUG_LEVEL=0) + endif() + add_subdirectory(${DXC_SPIRV_TOOLS_DIR} + "${CMAKE_BINARY_DIR}/external/SPIRV-Tools" + EXCLUDE_FROM_ALL) endif() - if (NOT TARGET SPIRV-Tools) - message(FATAL_ERROR "SPIRV-Tools was not found - required for SPIR-V codegen") - else() - set(SPIRV_TOOLS_INCLUDE_DIR ${spirv-tools_SOURCE_DIR}/include PARENT_SCOPE) - endif() - - set(SPIRV_DEP_TARGETS - SPIRV-Tools-static - SPIRV-Tools-opt - ) +endif() +if (NOT TARGET SPIRV-Tools) + message(FATAL_ERROR "SPIRV-Tools was not found - required for SPIR-V codegen") +else() + set(SPIRV_TOOLS_INCLUDE_DIR ${spirv-tools_SOURCE_DIR}/include PARENT_SCOPE) +endif() - # Organize these targets better in Visual Studio - foreach(target ${SPIRV_DEP_TARGETS}) - set_property(TARGET ${target} PROPERTY FOLDER "External dependencies") - endforeach() +set(SPIRV_DEP_TARGETS + SPIRV-Tools-static + SPIRV-Tools-opt +) -endif() +# Organize these targets better in Visual Studio +foreach(target ${SPIRV_DEP_TARGETS}) + set_property(TARGET ${target} PROPERTY FOLDER "External dependencies") +endforeach() diff --git a/gcp-pipelines/x86_64-linux-clang.yml b/gcp-pipelines/x86_64-linux-clang.yml index 326b87a907..44dc494c79 100644 --- a/gcp-pipelines/x86_64-linux-clang.yml +++ b/gcp-pipelines/x86_64-linux-clang.yml @@ -16,7 +16,6 @@ steps: - '-DCMAKE_CXX_COMPILER=clang++' - '-DCMAKE_C_COMPILER=clang' - '-DCMAKE_INSTALL_PREFIX=artifacts' - - '-DENABLE_SPIRV_CODEGEN=ON' - '-DSPIRV_BUILD_TESTS=ON' - '-DLLVM_ENABLE_WERROR=On' - '-C' diff --git a/include/dxc/HlslIntrinsicOp.h b/include/dxc/HlslIntrinsicOp.h index fcc9bb11b1..ff4e68e7ec 100644 --- a/include/dxc/HlslIntrinsicOp.h +++ b/include/dxc/HlslIntrinsicOp.h @@ -226,21 +226,11 @@ enum class IntrinsicOp { IOP_unpack_s8s32, IOP_unpack_u8u16, IOP_unpack_u8u32, -#ifdef ENABLE_SPIRV_CODEGEN IOP_VkRawBufferLoad, -#endif // ENABLE_SPIRV_CODEGEN -#ifdef ENABLE_SPIRV_CODEGEN IOP_VkRawBufferStore, -#endif // ENABLE_SPIRV_CODEGEN -#ifdef ENABLE_SPIRV_CODEGEN IOP_VkReadClock, -#endif // ENABLE_SPIRV_CODEGEN -#ifdef ENABLE_SPIRV_CODEGEN IOP_Vkext_execution_mode, -#endif // ENABLE_SPIRV_CODEGEN -#ifdef ENABLE_SPIRV_CODEGEN IOP_Vkext_execution_mode_id, -#endif // ENABLE_SPIRV_CODEGEN MOP_Append, MOP_RestartStrip, MOP_CalculateLevelOfDetail, @@ -351,9 +341,7 @@ enum class IntrinsicOp { MOP_GroupIncrementOutputCount, MOP_ThreadIncrementOutputCount, MOP_OutputComplete, -#ifdef ENABLE_SPIRV_CODEGEN MOP_SubpassLoad, -#endif // ENABLE_SPIRV_CODEGEN // unsigned IOP_InterlockedUMax, IOP_InterlockedUMin, diff --git a/include/dxc/Support/HLSLOptions.h b/include/dxc/Support/HLSLOptions.h index 56e95a1659..dd72f3b9a8 100644 --- a/include/dxc/Support/HLSLOptions.h +++ b/include/dxc/Support/HLSLOptions.h @@ -268,11 +268,9 @@ class DxcOpts { llvm::StringRef GetPDBName() const; // Fd name // SPIRV Change Starts -#ifdef ENABLE_SPIRV_CODEGEN bool GenSPIRV; // OPT_spirv clang::spirv::SpirvCodeGenOptions SpirvOptions; // All SPIR-V CodeGen-related options -#endif // SPIRV Change Ends bool GenMetal = false; // OPT_metal diff --git a/include/dxc/Support/SPIRVOptions.h b/include/dxc/Support/SPIRVOptions.h index 1b88ef4def..4e0c8cf55c 100644 --- a/include/dxc/Support/SPIRVOptions.h +++ b/include/dxc/Support/SPIRVOptions.h @@ -14,8 +14,6 @@ #ifndef LLVM_SPIRV_OPTIONS_H #define LLVM_SPIRV_OPTIONS_H -#ifdef ENABLE_SPIRV_CODEGEN - #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/StringRef.h" #include "llvm/Option/ArgList.h" @@ -123,5 +121,4 @@ struct SpirvCodeGenOptions { } // namespace spirv } // namespace clang -#endif // ENABLE_SPIRV_CODEGEN #endif // LLVM_SPIRV_OPTIONS_H diff --git a/lib/DxcSupport/HLSLOptions.cpp b/lib/DxcSupport/HLSLOptions.cpp index 1ce7d0dfc0..e41a2559d3 100644 --- a/lib/DxcSupport/HLSLOptions.cpp +++ b/lib/DxcSupport/HLSLOptions.cpp @@ -31,9 +31,7 @@ using namespace llvm::opt; using namespace dxc; using namespace hlsl; using namespace hlsl::options; -#ifdef ENABLE_SPIRV_CODEGEN using namespace clang::spirv; -#endif #define PREFIX(NAME, VALUE) static const char *const NAME[] = VALUE; #include "dxc/Support/HLSLOptions.inc" @@ -275,7 +273,6 @@ static std::pair ParseDefine(std::string &argVal) { } // SPIRV Change Starts -#ifdef ENABLE_SPIRV_CODEGEN /// Checks and collects the arguments for -fvk-{b|s|t|u}-shift into *shifts. static bool handleVkShiftArgs(const InputArgList &args, OptSpecifier id, const char *name, @@ -392,7 +389,6 @@ static const uint32_t kDefaultMaximumSourceLength = 0xFFFDu; static const uint32_t kTestingMaximumSourceLength = 13u; } // namespace -#endif // ENABLE_SPIRV_CODEGEN // SPIRV Change Ends namespace hlsl { @@ -1092,7 +1088,6 @@ int ReadDxcOpts(const OptTable *optionTable, unsigned flagsToInclude, opts.GenMetal = Args.hasFlag(OPT_metal, OPT_INVALID, false); // SPIRV Change Starts -#ifdef ENABLE_SPIRV_CODEGEN opts.GenSPIRV = Args.hasFlag(OPT_spirv, OPT_INVALID, false); opts.SpirvOptions.invertY = Args.hasFlag(OPT_fvk_invert_y, OPT_INVALID, false); @@ -1275,44 +1270,6 @@ int ReadDxcOpts(const OptTable *optionTable, unsigned flagsToInclude, return 1; opts.SpirvOptions.floatDenormalMode = Args.getLastArgValue(OPT_denorm); - -#else - if (Args.hasFlag(OPT_spirv, OPT_INVALID, false) || - Args.hasFlag(OPT_fvk_invert_y, OPT_INVALID, false) || - Args.hasFlag(OPT_fvk_use_dx_position_w, OPT_INVALID, false) || - Args.hasFlag(OPT_fvk_support_nonzero_base_instance, OPT_INVALID, false) || - Args.hasFlag(OPT_fvk_use_gl_layout, OPT_INVALID, false) || - Args.hasFlag(OPT_fvk_use_dx_layout, OPT_INVALID, false) || - Args.hasFlag(OPT_fvk_use_scalar_layout, OPT_INVALID, false) || - Args.hasFlag(OPT_fspv_use_legacy_buffer_matrix_order, OPT_INVALID, - false) || - Args.hasFlag(OPT_fspv_flatten_resource_arrays, OPT_INVALID, false) || - Args.hasFlag(OPT_fspv_reduce_load_size, OPT_INVALID, false) || - Args.hasFlag(OPT_fspv_reflect, OPT_INVALID, false) || - Args.hasFlag(OPT_fspv_fix_func_call_arguments, OPT_INVALID, false) || - Args.hasFlag(OPT_fspv_print_all, OPT_INVALID, false) || - Args.hasFlag(OPT_Wno_vk_ignored_features, OPT_INVALID, false) || - Args.hasFlag(OPT_Wno_vk_emulated_features, OPT_INVALID, false) || - Args.hasFlag(OPT_fvk_auto_shift_bindings, OPT_INVALID, false) || - !Args.getLastArgValue(OPT_fvk_stage_io_order_EQ).empty() || - !Args.getLastArgValue(OPT_fspv_debug_EQ).empty() || - !Args.getLastArgValue(OPT_fspv_extension_EQ).empty() || - !Args.getLastArgValue(OPT_fspv_target_env_EQ).empty() || - !Args.getLastArgValue(OPT_Oconfig).empty() || - !Args.getLastArgValue(OPT_fvk_bind_register).empty() || - !Args.getLastArgValue(OPT_fvk_bind_globals).empty() || - !Args.getLastArgValue(OPT_fvk_b_shift).empty() || - !Args.getLastArgValue(OPT_fvk_t_shift).empty() || - !Args.getLastArgValue(OPT_fvk_s_shift).empty() || - !Args.getLastArgValue(OPT_fvk_u_shift).empty() || - !Args.getLastArgValue(OPT_fvk_bind_resource_heap).empty() || - !Args.getLastArgValue(OPT_fvk_bind_sampler_heap).empty() || - !Args.getLastArgValue(OPT_fvk_bind_counter_heap).empty()) { - errors << "SPIR-V CodeGen not available. " - "Please recompile with -DENABLE_SPIRV_CODEGEN=ON."; - return 1; - } -#endif // ENABLE_SPIRV_CODEGEN // SPIRV Change Ends #ifndef ENABLE_METAL_CODEGEN diff --git a/lib/HLSL/HLOperationLower.cpp b/lib/HLSL/HLOperationLower.cpp index 9c3ad76b92..80d3af4147 100644 --- a/lib/HLSL/HLOperationLower.cpp +++ b/lib/HLSL/HLOperationLower.cpp @@ -6156,7 +6156,6 @@ Value *EmptyLower(CallInst *CI, IntrinsicOp IOP, DXIL::OpCode opcode, } // SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN Value *UnsupportedVulkanIntrinsic(CallInst *CI, IntrinsicOp IOP, DXIL::OpCode opcode, HLOperationLowerHelper &helper, @@ -6166,7 +6165,6 @@ Value *UnsupportedVulkanIntrinsic(CallInst *CI, IntrinsicOp IOP, dxilutil::EmitErrorOnInstruction(CI, "Unsupported Vulkan intrinsic."); return nullptr; } -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends Value *StreamOutputLower(CallInst *CI, IntrinsicOp IOP, DXIL::OpCode opcode, @@ -6511,7 +6509,6 @@ IntrinsicLower gLowerTable[] = { {IntrinsicOp::IOP_unpack_s8s32, TranslateUnpack, DXIL::OpCode::Unpack4x8}, {IntrinsicOp::IOP_unpack_u8u16, TranslateUnpack, DXIL::OpCode::Unpack4x8}, {IntrinsicOp::IOP_unpack_u8u32, TranslateUnpack, DXIL::OpCode::Unpack4x8}, -#ifdef ENABLE_SPIRV_CODEGEN {IntrinsicOp::IOP_VkRawBufferLoad, UnsupportedVulkanIntrinsic, DXIL::OpCode::NumOpCodes}, {IntrinsicOp::IOP_VkRawBufferStore, UnsupportedVulkanIntrinsic, @@ -6522,7 +6519,6 @@ IntrinsicLower gLowerTable[] = { DXIL::OpCode::NumOpCodes}, {IntrinsicOp::IOP_Vkext_execution_mode_id, UnsupportedVulkanIntrinsic, DXIL::OpCode::NumOpCodes}, -#endif // ENABLE_SPIRV_CODEGEN {IntrinsicOp::MOP_Append, StreamOutputLower, DXIL::OpCode::EmitStream}, {IntrinsicOp::MOP_RestartStrip, StreamOutputLower, DXIL::OpCode::CutStream}, {IntrinsicOp::MOP_CalculateLevelOfDetail, TranslateCalculateLOD, @@ -6750,11 +6746,9 @@ IntrinsicLower gLowerTable[] = { {IntrinsicOp::MOP_OutputComplete, TranslateNodeOutputComplete, DXIL::OpCode::OutputComplete}, -// SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN + // SPIRV change starts {IntrinsicOp::MOP_SubpassLoad, UnsupportedVulkanIntrinsic, DXIL::OpCode::NumOpCodes}, -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends // Manually added part. diff --git a/tools/clang/include/clang/AST/HlslTypes.h b/tools/clang/include/clang/AST/HlslTypes.h index e6a50de8fb..39d139a834 100644 --- a/tools/clang/include/clang/AST/HlslTypes.h +++ b/tools/clang/include/clang/AST/HlslTypes.h @@ -400,7 +400,6 @@ DeclareNodeOrRecordType(clang::ASTContext &Ctx, DXIL::NodeIOKind Type, bool HasGetMethods = false, bool IsArray = false, bool IsCompleteType = false); -#ifdef ENABLE_SPIRV_CODEGEN clang::CXXRecordDecl *DeclareInlineSpirvType(clang::ASTContext &context, clang::DeclContext *declContext, llvm::StringRef typeName, @@ -408,7 +407,6 @@ clang::CXXRecordDecl *DeclareInlineSpirvType(clang::ASTContext &context, clang::CXXRecordDecl *DeclareVkIntegralConstant( clang::ASTContext &context, clang::DeclContext *declContext, llvm::StringRef typeName, clang::ClassTemplateDecl **templateDecl); -#endif clang::CXXRecordDecl *DeclareNodeOutputArray(clang::ASTContext &Ctx, DXIL::NodeIOKind Type, diff --git a/tools/clang/include/clang/Frontend/CodeGenOptions.h b/tools/clang/include/clang/Frontend/CodeGenOptions.h index 859cba53da..aa07100355 100644 --- a/tools/clang/include/clang/Frontend/CodeGenOptions.h +++ b/tools/clang/include/clang/Frontend/CodeGenOptions.h @@ -257,9 +257,7 @@ class CodeGenOptions : public CodeGenOptionsBase { // HLSL Change Ends // SPIRV Change Starts -#ifdef ENABLE_SPIRV_CODEGEN clang::spirv::SpirvCodeGenOptions SpirvOptions; -#endif // SPIRV Change Ends /// Regular expression to select optimizations for which we should enable diff --git a/tools/clang/lib/AST/ASTContextHLSL.cpp b/tools/clang/lib/AST/ASTContextHLSL.cpp index 1b6c346acd..f19c326a37 100644 --- a/tools/clang/lib/AST/ASTContextHLSL.cpp +++ b/tools/clang/lib/AST/ASTContextHLSL.cpp @@ -1277,7 +1277,6 @@ CXXRecordDecl *hlsl::DeclareNodeOrRecordType( return Builder.getRecordDecl(); } -#ifdef ENABLE_SPIRV_CODEGEN CXXRecordDecl *hlsl::DeclareInlineSpirvType(clang::ASTContext &context, clang::DeclContext *declContext, llvm::StringRef typeName, @@ -1312,7 +1311,6 @@ CXXRecordDecl *hlsl::DeclareVkIntegralConstant( *templateDecl = typeDeclBuilder.getTemplateDecl(); return typeDeclBuilder.getRecordDecl(); } -#endif CXXRecordDecl *hlsl::DeclareNodeOutputArray(clang::ASTContext &Ctx, DXIL::NodeIOKind Type, diff --git a/tools/clang/lib/CMakeLists.txt b/tools/clang/lib/CMakeLists.txt index 47cb69f042..965b9259e4 100644 --- a/tools/clang/lib/CMakeLists.txt +++ b/tools/clang/lib/CMakeLists.txt @@ -23,7 +23,5 @@ if(CLANG_ENABLE_STATIC_ANALYZER) endif() add_subdirectory(Format) # SPIRV change starts -if (ENABLE_SPIRV_CODEGEN) add_subdirectory(SPIRV) -endif (ENABLE_SPIRV_CODEGEN) -# SPIRV change ends \ No newline at end of file +# SPIRV change ends diff --git a/tools/clang/lib/Frontend/InitPreprocessor.cpp b/tools/clang/lib/Frontend/InitPreprocessor.cpp index b0a53650b5..63630a3503 100644 --- a/tools/clang/lib/Frontend/InitPreprocessor.cpp +++ b/tools/clang/lib/Frontend/InitPreprocessor.cpp @@ -398,7 +398,6 @@ static void InitializeStandardPredefinedMacros(const TargetInfo &TI, Builder.defineMacro("__SHADER_TARGET_MAJOR", Twine(SM->GetMajor())); Builder.defineMacro("__SHADER_TARGET_MINOR", Twine(SM->GetMinor())); // SPIRV Change Starts -#ifdef ENABLE_SPIRV_CODEGEN if (LangOpts.SPIRV) { Builder.defineMacro("__spirv__"); Builder.defineMacro("__SPIRV_MAJOR_VERSION__", @@ -406,7 +405,6 @@ static void InitializeStandardPredefinedMacros(const TargetInfo &TI, Builder.defineMacro("__SPIRV_MINOR_VERSION__", Twine(LangOpts.SpirvMinorVersion)); } -#endif // ENABLE_SPIRV_CODEGEN // SPIRV Change Ends } return; diff --git a/tools/clang/lib/Sema/SemaHLSL.cpp b/tools/clang/lib/Sema/SemaHLSL.cpp index 031e49408f..41a4dcdce7 100644 --- a/tools/clang/lib/Sema/SemaHLSL.cpp +++ b/tools/clang/lib/Sema/SemaHLSL.cpp @@ -181,8 +181,7 @@ enum ArBasicKind { AR_OBJECT_FEEDBACKTEXTURE2D, AR_OBJECT_FEEDBACKTEXTURE2D_ARRAY, -// SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN + // SPIRV change starts AR_OBJECT_VK_SUBPASS_INPUT, AR_OBJECT_VK_SUBPASS_INPUT_MS, AR_OBJECT_VK_SPIRV_TYPE, @@ -191,7 +190,6 @@ enum ArBasicKind { AR_OBJECT_VK_LITERAL, AR_OBJECT_VK_SPV_INTRINSIC_TYPE, AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID, -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends AR_OBJECT_INNER, // Used for internal type object @@ -533,8 +531,7 @@ const UINT g_uBasicKindProps[] = { BPROP_OBJECT | BPROP_FEEDBACKTEXTURE, // AR_OBJECT_FEEDBACKTEXTURE2D BPROP_OBJECT | BPROP_FEEDBACKTEXTURE, // AR_OBJECT_FEEDBACKTEXTURE2D_ARRAY -// SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN + // SPIRV change starts BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SUBPASS_INPUT BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SUBPASS_INPUT_MS BPROP_OBJECT, // AR_OBJECT_VK_SPIRV_TYPE @@ -543,7 +540,6 @@ const UINT g_uBasicKindProps[] = { BPROP_OBJECT, // AR_OBJECT_VK_LITERAL, BPROP_OBJECT, // AR_OBJECT_VK_SPV_INTRINSIC_TYPE use recordType BPROP_OBJECT, // AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID use recordType -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends BPROP_OBJECT, // AR_OBJECT_INNER @@ -1324,13 +1320,11 @@ static const ArBasicKind g_ArBasicKindsAsTypes[] = { AR_OBJECT_FEEDBACKTEXTURE2D, AR_OBJECT_FEEDBACKTEXTURE2D_ARRAY, -// SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN + // SPIRV change starts AR_OBJECT_VK_SUBPASS_INPUT, AR_OBJECT_VK_SUBPASS_INPUT_MS, AR_OBJECT_VK_SPIRV_TYPE, AR_OBJECT_VK_SPIRV_OPAQUE_TYPE, AR_OBJECT_VK_INTEGRAL_CONSTANT, AR_OBJECT_VK_LITERAL, AR_OBJECT_VK_SPV_INTRINSIC_TYPE, AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID, -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends AR_OBJECT_LEGACY_EFFECT, // Used for all unsupported but ignored legacy @@ -1423,8 +1417,7 @@ static const uint8_t g_ArBasicKindsTemplateCount[] = { 1, // AR_OBJECT_FEEDBACKTEXTURE2D 1, // AR_OBJECT_FEEDBACKTEXTURE2D_ARRAY -// SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN + // SPIRV change starts 1, // AR_OBJECT_VK_SUBPASS_INPUT 1, // AR_OBJECT_VK_SUBPASS_INPUT_MS, 1, // AR_OBJECT_VK_SPIRV_TYPE @@ -1433,7 +1426,6 @@ static const uint8_t g_ArBasicKindsTemplateCount[] = { 1, // AR_OBJECT_VK_LITERAL, 1, // AR_OBJECT_VK_SPV_INTRINSIC_TYPE 1, // AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends 0, // AR_OBJECT_LEGACY_EFFECT // Used for all unsupported but ignored @@ -1567,8 +1559,7 @@ static const SubscriptOperatorRecord g_ArBasicKindsSubscripts[] = { {0, MipsFalse, SampleFalse}, // AR_OBJECT_FEEDBACKTEXTURE2D {0, MipsFalse, SampleFalse}, // AR_OBJECT_FEEDBACKTEXTURE2D_ARRAY -// SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN + // SPIRV change starts {0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_SUBPASS_INPUT (SubpassInput) {0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_SUBPASS_INPUT_MS (SubpassInputMS) @@ -1578,7 +1569,6 @@ static const SubscriptOperatorRecord g_ArBasicKindsSubscripts[] = { {0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_LITERAL, {0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_SPV_INTRINSIC_TYPE {0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends {0, MipsFalse, @@ -1661,11 +1651,9 @@ static const char *g_ArBasicTypeNames[] = { "FeedbackTexture2D", "FeedbackTexture2DArray", -// SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN + // SPIRV change starts "SubpassInput", "SubpassInputMS", "SpirvType", "SpirvOpaqueType", "integral_constant", "Literal", "ext_type", "ext_result_id", -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends "", @@ -2320,7 +2308,6 @@ static void GetIntrinsicMethods(ArBasicKind kind, break; // SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN case AR_OBJECT_VK_SUBPASS_INPUT: *intrinsics = g_VkSubpassInputMethods; *intrinsicCount = _countof(g_VkSubpassInputMethods); @@ -2329,7 +2316,6 @@ static void GetIntrinsicMethods(ArBasicKind kind, *intrinsics = g_VkSubpassInputMSMethods; *intrinsicCount = _countof(g_VkSubpassInputMSMethods); break; -#endif // ENABLE_SPIRV_CODEGEN // SPIRV change ends default: *intrinsics = nullptr; @@ -2386,11 +2372,9 @@ static bool TemplateHasDefaultType(ArBasicKind kind) { case AR_OBJECT_TEXTURECUBE: case AR_OBJECT_TEXTURECUBE_ARRAY: // SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN case AR_OBJECT_VK_SUBPASS_INPUT: case AR_OBJECT_VK_SUBPASS_INPUT_MS: -#endif // ENABLE_SPIRV_CODEGEN - // SPIRV change ends + // SPIRV change ends return true; default: // Objects with default types return true. Everything else is false. @@ -3312,7 +3296,6 @@ class HLSLExternalSource : public ExternalSemaSource { return -1; } -#ifdef ENABLE_SPIRV_CODEGEN SmallVector CreateTemplateTypeParmDeclsForVkIntrinsicFunction( const HLSL_INTRINSIC *intrinsic) { SmallVector templateTypeParmDecls; @@ -3531,7 +3514,6 @@ class HLSLExternalSource : public ExternalSemaSource { m_vkNSDecl->addDecl(varDecl); } } -#endif // ENABLE_SPIRV_CODEGEN // Adds all built-in HLSL object types. void AddObjectTypes() { @@ -3713,9 +3695,7 @@ class HLSLExternalSource : public ExternalSemaSource { recordDecl = m_GroupNodeOutputRecordsTemplateDecl->getTemplatedDecl(); } else if (kind == AR_OBJECT_THREAD_NODE_OUTPUT_RECORDS) { recordDecl = m_ThreadNodeOutputRecordsTemplateDecl->getTemplatedDecl(); - } -#ifdef ENABLE_SPIRV_CODEGEN - else if (kind == AR_OBJECT_VK_SPIRV_TYPE) { + } else if (kind == AR_OBJECT_VK_SPIRV_TYPE) { if (!m_vkNSDecl) continue; recordDecl = @@ -3753,9 +3733,7 @@ class HLSLExternalSource : public ExternalSemaSource { recordDecl = DeclareTemplateTypeWithHandleInDeclContext( *m_context, m_vkNSDecl, typeName, 1, nullptr); recordDecl->setImplicit(true); - } -#endif - else if (templateArgCount == 0) { + } else if (templateArgCount == 0) { recordDecl = DeclareRecordTypeWithHandle(*m_context, typeName, /*isCompleteType*/ false, Attr); @@ -3896,7 +3874,6 @@ class HLSLExternalSource : public ExternalSemaSource { m_sema = &S; S.addExternalSource(this); -#ifdef ENABLE_SPIRV_CODEGEN if (m_sema->getLangOpts().SPIRV) { // Create the "vk" namespace which contains Vulkan-specific intrinsics. m_vkNSDecl = @@ -3906,7 +3883,6 @@ class HLSLExternalSource : public ExternalSemaSource { /*PrevDecl*/ nullptr); context.getTranslationUnitDecl()->addDecl(m_vkNSDecl); } -#endif // ENABLE_SPIRV_CODEGEN AddObjectTypes(); AddStdIsEqualImplementation(context, S); @@ -3914,13 +3890,11 @@ class HLSLExternalSource : public ExternalSemaSource { AddIntrinsicTableMethods(intrinsic); } -#ifdef ENABLE_SPIRV_CODEGEN if (m_sema->getLangOpts().SPIRV) { // Add Vulkan-specific intrinsics. AddVkIntrinsicFunctions(); AddVkIntrinsicConstants(); } -#endif // ENABLE_SPIRV_CODEGEN } void ForgetSema() override { m_sema = nullptr; } @@ -4935,12 +4909,10 @@ class HLSLExternalSource : public ExternalSemaSource { StringRef nameIdentifier = idInfo->getName(); const HLSL_INTRINSIC *table = g_Intrinsics; auto tableCount = _countof(g_Intrinsics); -#ifdef ENABLE_SPIRV_CODEGEN if (isVkNamespace) { table = g_VkIntrinsics; tableCount = _countof(g_VkIntrinsics); } -#endif // ENABLE_SPIRV_CODEGEN IntrinsicDefIter cursor = FindIntrinsicByNameAndArgCount( table, tableCount, StringRef(), nameIdentifier, Args.size()); diff --git a/tools/clang/test/CodeGenSPIRV/lit.local.cfg b/tools/clang/test/CodeGenSPIRV/lit.local.cfg index 6cc3ab2586..66cd3cdc66 100644 --- a/tools/clang/test/CodeGenSPIRV/lit.local.cfg +++ b/tools/clang/test/CodeGenSPIRV/lit.local.cfg @@ -1,2 +1 @@ -config.unsupported = not config.spirv config.suffixes = ['.hlsl', '.hlsl2spv'] \ No newline at end of file diff --git a/tools/clang/test/lit.cfg b/tools/clang/test/lit.cfg index a3a352071c..3f898f1da8 100644 --- a/tools/clang/test/lit.cfg +++ b/tools/clang/test/lit.cfg @@ -501,8 +501,8 @@ else: if config.enable_backtrace == "1": config.available_features.add("backtrace") -if config.spirv: - config.available_features.add("spirv") +# spirv enabled by default +config.available_features.add("spirv") if config.metal: config.available_features.add("metal") diff --git a/tools/clang/test/lit.site.cfg.in b/tools/clang/test/lit.site.cfg.in index 80dcadf288..47a9716413 100644 --- a/tools/clang/test/lit.site.cfg.in +++ b/tools/clang/test/lit.site.cfg.in @@ -20,7 +20,6 @@ config.clang_examples = @ENABLE_CLANG_EXAMPLES@ config.enable_shared = @ENABLE_SHARED@ config.enable_backtrace = "@ENABLE_BACKTRACES@" config.host_arch = "@HOST_ARCH@" -config.spirv = "@ENABLE_SPIRV_CODEGEN@" =="ON" config.hlsl_headers_dir = "@HLSL_HEADERS_DIR@" # HLSL change config.metal = "@ENABLE_METAL_CODEGEN@".upper() == "ON" # HLSL change diff --git a/tools/clang/tools/dxclib/CMakeLists.txt b/tools/clang/tools/dxclib/CMakeLists.txt index 74927fd403..72f0f91106 100644 --- a/tools/clang/tools/dxclib/CMakeLists.txt +++ b/tools/clang/tools/dxclib/CMakeLists.txt @@ -25,10 +25,8 @@ if (MINGW) target_link_libraries(dxclib PRIVATE version) endif() -if(ENABLE_SPIRV_CODEGEN) - target_link_libraries(dxclib PRIVATE SPIRV-Tools) - target_link_libraries(dxclib PRIVATE clangSPIRV) -endif() +target_link_libraries(dxclib PRIVATE SPIRV-Tools) +target_link_libraries(dxclib PRIVATE clangSPIRV) if (MSVC) include_directories(AFTER ${DIASDK_INCLUDE_DIRS}) diff --git a/tools/clang/tools/dxclib/dxc.cpp b/tools/clang/tools/dxclib/dxc.cpp index cdcfe2b3f6..27fcbb44fd 100644 --- a/tools/clang/tools/dxclib/dxc.cpp +++ b/tools/clang/tools/dxclib/dxc.cpp @@ -73,7 +73,6 @@ #endif // SPIRV Change Starts -#ifdef ENABLE_SPIRV_CODEGEN #include "spirv-tools/libspirv.hpp" #include "clang/SPIRV/FeatureManager.h" @@ -109,7 +108,6 @@ static bool DisassembleSpirv(IDxcBlob *binaryBlob, IDxcLibrary *library, return true; } -#endif // SPIRV Change Ends inline bool wcseq(LPCWSTR a, LPCWSTR b) { @@ -386,7 +384,6 @@ int DxcContext::ActOnBlob(IDxcBlob *pBlob, IDxcBlob *pDebugBlob, CComPtr pDisassembleResult; // SPIRV Change Starts -#ifdef ENABLE_SPIRV_CODEGEN if (m_Opts.GenSPIRV) { CComPtr pLibrary; IFT(m_dxcSupport.CreateInstance(CLSID_DxcLibrary, &pLibrary)); @@ -401,7 +398,6 @@ int DxcContext::ActOnBlob(IDxcBlob *pBlob, IDxcBlob *pDebugBlob, "dxc failed : Internal Compiler Error - " "unable to disassemble generated SPIR-V."); } else { -#endif // ENABLE_SPIRV_CODEGEN // SPIRV Change Ends if (m_Opts.IsRootSignatureProfile()) { @@ -417,12 +413,7 @@ int DxcContext::ActOnBlob(IDxcBlob *pBlob, IDxcBlob *pDebugBlob, IFT(CreateInstance(CLSID_DxcCompiler, &pCompiler)); IFT(pCompiler->Disassemble(pBlob, &pDisassembleResult)); } - - // SPIRV Change Starts -#ifdef ENABLE_SPIRV_CODEGEN } -#endif // ENABLE_SPIRV_CODEGEN - // SPIRV Change Ends bool disassemblyWritten = false; if (!m_Opts.OutputHeader.empty()) { diff --git a/tools/clang/tools/dxcompiler/CMakeLists.txt b/tools/clang/tools/dxcompiler/CMakeLists.txt index c69e276194..4d5057ffe8 100644 --- a/tools/clang/tools/dxcompiler/CMakeLists.txt +++ b/tools/clang/tools/dxcompiler/CMakeLists.txt @@ -133,9 +133,7 @@ if (MSVC) add_dependencies(dxcompiler DxcEtw) endif() target_link_libraries(dxcompiler PRIVATE ${LIBRARIES}) -if (ENABLE_SPIRV_CODEGEN) - target_link_libraries(dxcompiler PRIVATE clangSPIRV) -endif (ENABLE_SPIRV_CODEGEN) +target_link_libraries(dxcompiler PRIVATE clangSPIRV) if (ENABLE_METAL_CODEGEN) target_link_libraries(dxcompiler PRIVATE ${METAL_IRCONVERTER_LIB}) target_include_directories(dxcompiler PRIVATE ${METAL_IRCONVERTER_INCLUDE_DIR}) diff --git a/tools/clang/tools/dxcompiler/dxcompilerobj.cpp b/tools/clang/tools/dxcompiler/dxcompilerobj.cpp index ebeee380ef..dc40ccac5a 100644 --- a/tools/clang/tools/dxcompiler/dxcompilerobj.cpp +++ b/tools/clang/tools/dxcompiler/dxcompilerobj.cpp @@ -61,10 +61,8 @@ #include // SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN #include "clang/SPIRV/EmitSpirvAction.h" #include "clang/SPIRV/FeatureManager.h" -#endif // SPIRV change ends #ifdef SUPPORT_QUERY_GIT_COMMIT_INFO @@ -608,7 +606,6 @@ class DxcCompiler : public IDxcCompiler3, pSource->Encoding != 0, pSource->Encoding, nullptr, &pSourceEncoding)); -#ifdef ENABLE_SPIRV_CODEGEN // We want to embed the original source code in the final SPIR-V if // debug information is enabled. But the compiled source requires // pre-seeding with #line directives. We invoke Preprocess() here @@ -640,7 +637,6 @@ class DxcCompiler : public IDxcCompiler3, DXC_OUT_HLSL, IID_PPV_ARGS(&pSourceEncoding), nullptr)); } } -#endif // ENABLE_SPIRV_CODEGEN // Convert source code encoding IFC(hlsl::DxcGetBlobAsUtf8(pSourceEncoding, m_pMalloc, &utf8Source, @@ -944,10 +940,7 @@ class DxcCompiler : public IDxcCompiler3, action.Execute(); action.EndSourceFile(); } - } - // SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN - else if (!isPreprocessing && opts.GenSPIRV) { + } else if (!isPreprocessing && opts.GenSPIRV) { // SPIRV change starts // Since SpirvOptions is passed to the SPIR-V CodeGen as a whole // structure, we need to copy a few non-spirv-specific options into the // structure. @@ -974,10 +967,8 @@ class DxcCompiler : public IDxcCompiler3, action.Execute(); action.EndSourceFile(); outStream.flush(); - } -#endif - // SPIRV change ends - else if (!isPreprocessing) { + // SPIRV change ends + } else if (!isPreprocessing) { EmitBCAction action(&llvmContext); FrontendInputFile file(pUtf8SourceName, IK_HLSL); bool compileOK; @@ -1225,9 +1216,7 @@ class DxcCompiler : public IDxcCompiler3, bool writePDB = opts.GeneratePDB() && produceFullContainer; // SPIRV change starts -#if defined(ENABLE_SPIRV_CODEGEN) writePDB &= !opts.GenSPIRV; -#endif // SPIRV change ends if (!hasErrorOccurred && writePDB) { @@ -1547,8 +1536,7 @@ class DxcCompiler : public IDxcCompiler3, Opts.AstDumpImplicit || !Opts.AstDump; compiler.getLangOpts().HLSLDefaultRowMajor = Opts.DefaultRowMajor; -// SPIRV change starts -#ifdef ENABLE_SPIRV_CODEGEN + // SPIRV change starts compiler.getLangOpts().SPIRV = Opts.GenSPIRV; llvm::Optional spirvTargetEnv = spirv::FeatureManager::stringToSpvEnvironment( @@ -1566,7 +1554,6 @@ class DxcCompiler : public IDxcCompiler3, compiler.getLangOpts().SpirvMinorVersion = spirvVersion.getMinor().getValue(); } -#endif // SPIRV change ends if (Opts.WarningAsError) @@ -1928,17 +1915,11 @@ HRESULT DxcCompilerAdapter::WrapCompile( LPCWSTR EmbedDebugOpt[] = {L"-Qembed_debug"}; if (opts.DebugInfo && !ppDebugBlob && !opts.EmbedDebug && !opts.StripDebug) { -// SPIRV change starts -#if defined(ENABLE_SPIRV_CODEGEN) + // SPIRV change starts if (!opts.GenSPIRV) outStream << "warning: no output provided for debug - embedding PDB in " "shader container. Use -Qembed_debug to silence this " "warning.\n"; -#else - outStream << "warning: no output provided for debug - embedding PDB in " - "shader container. Use -Qembed_debug to silence this " - "warning.\n"; -#endif // SPIRV change ends IFT(pArgs->AddArguments(EmbedDebugOpt, _countof(EmbedDebugOpt))); } diff --git a/tools/clang/tools/dxrfallbackcompiler/CMakeLists.txt b/tools/clang/tools/dxrfallbackcompiler/CMakeLists.txt index 214b8dcd90..58fbb23e3f 100644 --- a/tools/clang/tools/dxrfallbackcompiler/CMakeLists.txt +++ b/tools/clang/tools/dxrfallbackcompiler/CMakeLists.txt @@ -56,9 +56,7 @@ set(SOURCES add_clang_library(dxrfallbackcompiler SHARED ${SOURCES}) target_link_libraries(dxrfallbackcompiler PRIVATE ${LIBRARIES} ${DIASDK_LIBRARIES} dxcvalidator) # SPIRV change starts -if (ENABLE_SPIRV_CODEGEN) - target_link_libraries(dxrfallbackcompiler PRIVATE clangSPIRV) -endif (ENABLE_SPIRV_CODEGEN) +target_link_libraries(dxrfallbackcompiler PRIVATE clangSPIRV) # SPIRV change ends add_dependencies(dxrfallbackcompiler DxcEtw) include_directories(AFTER ${LLVM_INCLUDE_DIR}/dxc/Tracing ${DIASDK_INCLUDE_DIRS}) diff --git a/utils/hct/hctbuild.cmd b/utils/hct/hctbuild.cmd index ff6dbfa22a..4d2014cb5f 100644 --- a/utils/hct/hctbuild.cmd +++ b/utils/hct/hctbuild.cmd @@ -37,7 +37,6 @@ set OFFICIAL=OFF set FIXED_VER=OFF set FIXED_LOC= set VENDOR= -set SPIRV=OFF set SPV_TEST=OFF set DXILCONV=ON set DXC_CMAKE_SYSTEM_VERSION= @@ -217,8 +216,7 @@ if "%1"=="-fresh" ( rem Begin SPIRV change if "%1"=="-spirv" ( - echo SPIR-V codegen is enabled. - set SPIRV=ON + echo SPIR-V codegen is enabled by default (deprecated flag -spirv) shift /1 & goto :parse_args ) if "%1"=="-spirvtest" ( @@ -330,7 +328,6 @@ set CMAKE_OPTS=%CMAKE_OPTS% -DHLSL_ENABLE_FIXED_VER:BOOL=%FIXED_VER% set CMAKE_OPTS=%CMAKE_OPTS% -DHLSL_ENABLE_FIXED_VER:BOOL=%FIXED_VER% -DHLSL_FIXED_VERSION_LOCATION:STRING=%FIXED_LOC% set CMAKE_OPTS=%CMAKE_OPTS% -DHLSL_BUILD_DXILCONV:BOOL=%DXILCONV% set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_VENDOR:STRING=%VENDOR% -set CMAKE_OPTS=%CMAKE_OPTS% -DENABLE_SPIRV_CODEGEN:BOOL=%SPIRV% set CMAKE_OPTS=%CMAKE_OPTS% -DSPIRV_BUILD_TESTS:BOOL=%SPV_TEST% set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_ENABLE_ARCMT:BOOL=OFF set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=OFF @@ -421,7 +418,7 @@ echo -official will generate official version for build echo -fv fixes the resource version for release (utils\version\version.inc) echo -fvloc ^ directory with the version.inc file echo -rel builds release rather than debug -echo -spirv enable SPIR-V codegen +echo -spirv enable SPIR-V codegen. (deprecated, on by default) echo -spirvtest enable building SPIR-V tests echo -speak-up enables audible build confirmation echo -no-parallel disables parallel build diff --git a/utils/hct/hctdb.py b/utils/hct/hctdb.py index 1c3fd0f717..5e7c14ea72 100644 --- a/utils/hct/hctdb.py +++ b/utils/hct/hctdb.py @@ -8251,10 +8251,6 @@ def __init__( + "!" + ("%3d" % idx) ) # Unique key - self.vulkanSpecific = ns.startswith( - "Vk" - ) # Vulkan specific intrinsic - SPIRV change - class db_hlsl_namespace(object): "A grouping of HLSL intrinsics" diff --git a/utils/hct/hctdb_instrhelp.py b/utils/hct/hctdb_instrhelp.py index 353f8f9634..f740f6a73b 100644 --- a/utils/hct/hctdb_instrhelp.py +++ b/utils/hct/hctdb_instrhelp.py @@ -963,7 +963,6 @@ def get_hlsl_intrinsics(): result = "" last_ns = "" ns_table = "" - is_vk_table = False # SPIRV Change id_prefix = "" arg_idx = 0 opcode_namespace = db.opcode_namespace @@ -975,19 +974,9 @@ def get_hlsl_intrinsics(): ) # SPIRV Change if len(ns_table): result += ns_table + "};\n" - # SPIRV Change Starts - if is_vk_table: - result += "\n#endif // ENABLE_SPIRV_CODEGEN\n" - is_vk_table = False - # SPIRV Change Ends result += "\n//\n// Start of %s\n//\n\n" % (last_ns) # This used to be qualified as __declspec(selectany), but that's no longer necessary. ns_table = "static const HLSL_INTRINSIC g_%s[] =\n{\n" % (last_ns) - # SPIRV Change Starts - if i.vulkanSpecific: - is_vk_table = True - result += "#ifdef ENABLE_SPIRV_CODEGEN\n\n" - # SPIRV Change Ends arg_idx = 0 flags = [] if i.readonly: @@ -1034,32 +1023,15 @@ def get_hlsl_intrinsics(): result += "};\n\n" arg_idx += 1 result += ns_table + "};\n" - result += ( - "\n#endif // ENABLE_SPIRV_CODEGEN\n" if is_vk_table else "" - ) # SPIRV Change return result - -# SPIRV Change Starts -def wrap_with_ifdef_if_vulkan_specific(intrinsic, text): - if intrinsic.vulkanSpecific: - return ( - "#ifdef ENABLE_SPIRV_CODEGEN\n" + text + "#endif // ENABLE_SPIRV_CODEGEN\n" - ) - return text - - -# SPIRV Change Ends - - def enum_hlsl_intrinsics(): db = get_db_hlsl() result = "" enumed = [] for i in sorted(db.intrinsics, key=lambda x: x.key): if i.enum_name not in enumed: - enumerant = " %s,\n" % (i.enum_name) - result += wrap_with_ifdef_if_vulkan_specific(i, enumerant) # SPIRV Change + result += " %s,\n" % (i.enum_name) enumed.append(i.enum_name) # unsigned result += " // unsigned\n"