[Linux] Enable PixTest for Linux (#5945)

DxilDia is enabled for Linux with only
DxcPixLiveVariables_FragmentIterator enabled for PixTest.

Enabled PixTest for Linux build.

This is for #5877
This commit is contained in:
Xiang Li 2023-10-31 12:49:44 -04:00 коммит произвёл GitHub
Родитель d66d34a417
Коммит e496555aae
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
5 изменённых файлов: 71 добавлений и 35 удалений

Просмотреть файл

@ -13,7 +13,9 @@
#define __DXC_PIX__ #define __DXC_PIX__
#include "dxc/dxcapi.h" #include "dxc/dxcapi.h"
#ifdef _WIN32
#include "objidl.h" #include "objidl.h"
#endif
struct __declspec(uuid("199d8c13-d312-4197-a2c1-07a532999727")) IDxcPixType struct __declspec(uuid("199d8c13-d312-4197-a2c1-07a532999727")) IDxcPixType
: public IUnknown { : public IUnknown {

Просмотреть файл

@ -27,9 +27,7 @@ add_subdirectory(DXIL) # HLSL Change
add_subdirectory(DxilContainer) # HLSL Change add_subdirectory(DxilContainer) # HLSL Change
add_subdirectory(DxilPdbInfo) # HLSL Change add_subdirectory(DxilPdbInfo) # HLSL Change
add_subdirectory(DxilPIXPasses) # HLSL Change add_subdirectory(DxilPIXPasses) # HLSL Change
if(WIN32) # HLSL Change add_subdirectory(DxilDia) # HLSL Change
add_subdirectory(DxilDia) # HLSL Change
endif(WIN32) # HLSL Change
add_subdirectory(DxilRootSignature) # HLSL Change add_subdirectory(DxilRootSignature) # HLSL Change
add_subdirectory(DxcBindingTable) # HLSL Change add_subdirectory(DxcBindingTable) # HLSL Change
add_subdirectory(DxrFallback) # HLSL Change add_subdirectory(DxrFallback) # HLSL Change

Просмотреть файл

@ -5,33 +5,67 @@ if (WIN32)
find_package(DiaSDK REQUIRED) # Used for constants and declarations. find_package(DiaSDK REQUIRED) # Used for constants and declarations.
endif (WIN32) endif (WIN32)
add_llvm_library(LLVMDxilDia if (WIN32)
DxcPixCompilationInfo.cpp add_llvm_library(LLVMDxilDia
DxcPixDxilDebugInfo.cpp DxcPixCompilationInfo.cpp
DxcPixDxilStorage.cpp DxcPixDxilDebugInfo.cpp
DxcPixEntrypoints.cpp DxcPixDxilStorage.cpp
DxcPixLiveVariables.cpp DxcPixEntrypoints.cpp
DxcPixLiveVariables_FragmentIterator.cpp DxcPixLiveVariables.cpp
DxcPixTypes.cpp DxcPixLiveVariables_FragmentIterator.cpp
DxcPixVariables.cpp DxcPixTypes.cpp
DxilDia.cpp DxcPixVariables.cpp
DxilDiaDataSource.cpp DxilDia.cpp
DxilDiaEnumTables.cpp DxilDiaDataSource.cpp
DxilDiaSession.cpp DxilDiaEnumTables.cpp
DxilDiaSymbolManager.cpp DxilDiaSession.cpp
DxilDiaTable.cpp DxilDiaSymbolManager.cpp
DxilDiaTableFrameData.cpp DxilDiaTable.cpp
DxilDiaTableInjectedSources.cpp DxilDiaTableFrameData.cpp
DxilDiaTableInputAssemblyFile.cpp DxilDiaTableInjectedSources.cpp
DxilDiaTableLineNumbers.cpp DxilDiaTableInputAssemblyFile.cpp
DxilDiaTableSections.cpp DxilDiaTableLineNumbers.cpp
DxilDiaTableSegmentMap.cpp DxilDiaTableSections.cpp
DxilDiaTableSourceFiles.cpp DxilDiaTableSegmentMap.cpp
DxilDiaTableSymbols.cpp DxilDiaTableSourceFiles.cpp
DxilDiaTableSymbols.cpp
ADDITIONAL_HEADER_DIRS ADDITIONAL_HEADER_DIRS
${LLVM_MAIN_INCLUDE_DIR}/llvm/IR ${LLVM_MAIN_INCLUDE_DIR}/llvm/IR
) )
else(WIN32)
# DxcPixLiveVariables_FragmentIterator is not dependent on dia.
# It is used by PixTest.
set(HLSL_IGNORE_SOURCES
DxcPixCompilationInfo.cpp
DxcPixDxilDebugInfo.cpp
DxcPixDxilStorage.cpp
DxcPixEntrypoints.cpp
DxcPixLiveVariables.cpp
DxcPixTypes.cpp
DxcPixVariables.cpp
DxilDia.cpp
DxilDiaDataSource.cpp
DxilDiaEnumTables.cpp
DxilDiaSession.cpp
DxilDiaSymbolManager.cpp
DxilDiaTable.cpp
DxilDiaTableFrameData.cpp
DxilDiaTableInjectedSources.cpp
DxilDiaTableInputAssemblyFile.cpp
DxilDiaTableLineNumbers.cpp
DxilDiaTableSections.cpp
DxilDiaTableSegmentMap.cpp
DxilDiaTableSourceFiles.cpp
DxilDiaTableSymbols.cpp
)
add_llvm_library(LLVMDxilDia
DxcPixLiveVariables_FragmentIterator.cpp
ADDITIONAL_HEADER_DIRS
${LLVM_MAIN_INCLUDE_DIR}/llvm/IR
)
endif(WIN32)
if (WIN32) if (WIN32)
target_link_libraries(LLVMDxilDia PRIVATE ${LIBRARIES} ${DIASDK_LIBRARIES}) target_link_libraries(LLVMDxilDia PRIVATE ${LIBRARIES} ${DIASDK_LIBRARIES})

Просмотреть файл

@ -56,7 +56,6 @@ else (WIN32)
set(HLSL_IGNORE_SOURCES set(HLSL_IGNORE_SOURCES
MSFileSysTest.cpp MSFileSysTest.cpp
PixDiaTest.cpp PixDiaTest.cpp
PixTest.cpp
RewriterTest.cpp RewriterTest.cpp
) )
@ -74,6 +73,7 @@ add_clang_unittest(ClangHLSLTests
Objects.cpp Objects.cpp
OptimizerTest.cpp OptimizerTest.cpp
OptionsTest.cpp OptionsTest.cpp
PixTest.cpp
PixTestUtils.cpp PixTestUtils.cpp
SystemValueTest.cpp SystemValueTest.cpp
TestMain.cpp TestMain.cpp
@ -99,6 +99,7 @@ target_link_libraries(ClangHLSLTests PRIVATE
else(WIN32) else(WIN32)
target_link_libraries(ClangHLSLTests target_link_libraries(ClangHLSLTests
dxcompiler dxcompiler
LLVMDxilDia
HLSLTestLib HLSLTestLib
) )
endif(WIN32) endif(WIN32)

Просмотреть файл

@ -9,9 +9,6 @@
// // // //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// This whole file is win32-only
#ifdef _WIN32
#ifndef UNICODE #ifndef UNICODE
#define UNICODE #define UNICODE
#endif #endif
@ -31,7 +28,9 @@
#include "dxc/Support/WinIncludes.h" #include "dxc/Support/WinIncludes.h"
#include "dxc/dxcapi.h" #include "dxc/dxcapi.h"
#include "dxc/dxcpix.h" #include "dxc/dxcpix.h"
#ifdef _WIN32
#include <atlfile.h> #include <atlfile.h>
#endif
#include "dxc/DXIL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
@ -86,7 +85,11 @@ static std::vector<std::string> Tokenize(const std::string &str,
return tokens; return tokens;
} }
#ifdef _WIN32
class PixTest { class PixTest {
#else
class PixTest : public ::testing::Test {
#endif
public: public:
BEGIN_TEST_CLASS(PixTest) BEGIN_TEST_CLASS(PixTest)
TEST_CLASS_PROPERTY(L"Parallel", L"true") TEST_CLASS_PROPERTY(L"Parallel", L"true")
@ -2567,5 +2570,3 @@ void MyMiss(inout MyPayload payload)
auto compiledLib = Compile(m_dllSupport, source, L"lib_6_6", {}); auto compiledLib = Compile(m_dllSupport, source, L"lib_6_6", {});
RunDxilPIXDXRInvocationsLog(compiledLib); RunDxilPIXDXRInvocationsLog(compiledLib);
} }
#endif