Skip to content

Commit

Permalink
Enable lit by default. (microsoft#5133)
Browse files Browse the repository at this point in the history
* Enable lit by default.

* Update README for git user bin.

* Add DXC_DISABLE_LIT to replace DXC_ENABLE_LIT

* Set -DDXC_DISABLE_LIT=Off for appveyor.

* Keep original name for ClangSPIRVTests

* Set correct path for unit tests binary.

* Remove doc about DXC_DISABLE_LIT

* Remove extra space.

* Remove DxcOnUnix.rst.
  • Loading branch information
python3kgae authored Jun 5, 2023
1 parent 58d3053 commit 06a7197
Show file tree
Hide file tree
Showing 12 changed files with 21 additions and 175 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/coverage-gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
- name: Install dependencies
run: sudo apt install -y ninja-build
- name: Configure
run: cmake -B build -G Ninja -DLLVM_PARALLEL_LINK_JOBS=1 -DLLVM_USE_LINKER=lld -DCMAKE_BUILD_TYPE=Release -DDXC_USE_LIT=On -DDXC_COVERAGE=On -C ${{github.workspace}}/cmake/caches/PredefinedParams.cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ${{github.workspace}}
run: cmake -B build -G Ninja -DLLVM_PARALLEL_LINK_JOBS=1 -DLLVM_USE_LINKER=lld -DCMAKE_BUILD_TYPE=Release -DDXC_COVERAGE=On -C ${{github.workspace}}/cmake/caches/PredefinedParams.cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ${{github.workspace}}
- name: Build
run: ninja -C build test-depends
- name: Test
Expand Down
10 changes: 5 additions & 5 deletions CMakeSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"configurationType": "RelWithDebInfo",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "-DDXC_USE_LIT=On -C ${projectDir}\\cmake\\caches\\PredefinedParams.cmake -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_LIT_ARGS=\"-v\"",
"cmakeCommandArgs": "-C ${projectDir}\\cmake\\caches\\PredefinedParams.cmake -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_LIT_ARGS=\"-v\"",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ]
Expand All @@ -17,7 +17,7 @@
"configurationType": "Debug",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "-DDXC_USE_LIT=On -C ${projectDir}\\cmake\\caches\\PredefinedParams.cmake -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_LIT_ARGS=\"-v\"",
"cmakeCommandArgs": "-C ${projectDir}\\cmake\\caches\\PredefinedParams.cmake -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_LIT_ARGS=\"-v\"",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ]
Expand All @@ -28,7 +28,7 @@
"configurationType": "RelWithDebInfo",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "-DDXC_USE_LIT=On -C ${projectDir}\\cmake\\caches\\PredefinedParams.cmake -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_LIT_ARGS=\"-v\"",
"cmakeCommandArgs": "-C ${projectDir}\\cmake\\caches\\PredefinedParams.cmake -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_LIT_ARGS=\"-v\"",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x86_x64" ]
Expand All @@ -39,10 +39,10 @@
"configurationType": "Debug",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "-DDXC_USE_LIT=On -C ${projectDir}\\cmake\\caches\\PredefinedParams.cmake -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_LIT_ARGS=\"-v\"",
"cmakeCommandArgs": "-C ${projectDir}\\cmake\\caches\\PredefinedParams.cmake -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_LIT_ARGS=\"-v\"",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x86_x64" ]
}
]
}
}
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,10 @@ Building on windows additionally requires:

> A new experimental simplified build and test workflow is documented [here](docs/BuildingAndTestingDXC.rst).
Note: If you intend to build from sources on Linux/macOS, follow [these instructions](docs/DxcOnUnix.rst).

Before you build, you will need to have some additional software installed. This is the most straightforward path - see [Building Sources](https://github.com/microsoft/DirectXShaderCompiler/wiki/Building-Sources) on the Wiki for more options, including Visual Studio 2015 and Ninja support.

* [Git](http://git-scm.com/downloads).
* [Git](http://git-scm.com/downloads) - On Windows the Git command line tools must be added to the PATH in order to successfully build and test DXC.
* [Python](https://www.python.org/downloads/) - version 3.x is required
* [Visual Studio 2019](https://www.visualstudio.com/downloads) - select the following workloads:
* Universal Windows Platform Development
Expand Down
8 changes: 4 additions & 4 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,20 @@ before_build:
- cmd: call utils\hct\hctstart %HLSL_SRC_DIR% %HLSL_BLD_DIR%

build_script:
- cmd: call utils\hct\hctbuild -%PLATFORM% -%CONFIGURATION% -show-cmake-log -spirvtest -disable-lit
- cmd: call utils\hct\hctbuild -%PLATFORM% -%CONFIGURATION% -show-cmake-log -spirvtest -enable-lit
- sh: mkdir build && cd build
- sh: cmake .. -GNinja -C ../cmake/caches/PredefinedParams.cmake -DSPIRV_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-14 -DCMAKE_CXX_COMPILER=clang++-14 -DLLVM_ENABLE_WERROR=On
- sh: ninja

test_script:
- ps: utils\appveyor\appveyor_test.ps1
- cmd: call utils\hct\hcttest -rel spirv_only -disable-lit
- cmd: call utils\hct\hcttest -rel clang -enable-lit
- sh: ./bin/dxc --help
- sh: ./bin/dxc -T ps_6_0 ../tools/clang/test/CodeGenSPIRV/passthru-ps.hlsl2spv
- sh: ./bin/dxc -T ps_6_0 -Fo passthru-ps.dxil ../tools/clang/test/CodeGenSPIRV/passthru-ps.hlsl2spv
- sh: ./bin/dxc -T ps_6_0 -Fo passthru-ps.spv ../tools/clang/test/CodeGenSPIRV/passthru-ps.hlsl2spv -spirv
- sh: ./bin/clang-spirv-tests --spirv-test-root ../tools/clang/test/CodeGenSPIRV/
- sh: ./bin/ClangHLSLTests --HlslDataDir $PWD/../tools/clang/test/HLSL/
- sh: ./tools/clang/unittests/SPIRV/ClangSPIRVTests --spirv-test-root ../tools/clang/test/CodeGenSPIRV/
- sh: ./tools/clang/unittests/HLSL/ClangHLSLTests --HlslDataDir $PWD/../tools/clang/test/HLSL/

after_test:
# Collect artifacts for Windows
Expand Down
2 changes: 1 addition & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ stages:
displayName: 'Installing dependencies'
condition: eq(variables['image'], variables['macOS'])
- bash: |
cmake -B build -G Ninja $BUILD_SOURCESDIRECTORY -DLLVM_LIT_ARGS=--xunit-xml-output=testresults.xunit.xml -DDXC_USE_LIT=On -C $BUILD_SOURCESDIRECTORY/cmake/caches/PredefinedParams.cmake -DSPIRV_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=$(configuration) -DCMAKE_C_COMPILER=$(CC) -DCMAKE_CXX_COMPILER=$(CXX) $(CMAKE_OPTS)
cmake -B build -G Ninja $BUILD_SOURCESDIRECTORY -DLLVM_LIT_ARGS=--xunit-xml-output=testresults.xunit.xml -C $BUILD_SOURCESDIRECTORY/cmake/caches/PredefinedParams.cmake -DSPIRV_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=$(configuration) -DCMAKE_C_COMPILER=$(CC) -DCMAKE_CXX_COMPILER=$(CXX) $(CMAKE_OPTS)
displayName: 'Running Cmake'
- bash: |
ninja -C build test-depends
Expand Down
7 changes: 4 additions & 3 deletions cmake/caches/PredefinedParams.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ if (DXC_COVERAGE)
set(LLVM_CODE_COVERAGE_TEST_TARGETS "check-all" CACHE STRING "")
endif()

if (DXC_USE_LIT)
set(LLVM_TEST_VALUE ON)
else()
# TODO: remove this option after switch to support lit only.
if (DXC_DISABLE_LIT)
set(LLVM_TEST_VALUE OFF)
else()
set(LLVM_TEST_VALUE ON)
endif()

set(LLVM_INCLUDE_TESTS ${LLVM_TEST_VALUE} CACHE BOOL "")
Expand Down
11 changes: 0 additions & 11 deletions docs/BuildingAndTestingDXC.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ Building and Testing DirectXShaderCompiler
is complete on Linux and Unix platforms, but is incomplete but usable on
Windows. Instructions for building on Windows are available in the repository
`readme <https://github.com/microsoft/DirectXShaderCompiler/blob/main/README.md>`_.
Instructions for the preexisting Linux and Unix workflow can be found here:
:doc:`DxcOnUnix`

Introduction
============
Expand Down Expand Up @@ -57,7 +55,6 @@ Open a Visual Stuido command prompt and run:
.. code:: sh
cmake <Repository Root> \
-B <Path to Output> \
-DDXC_USE_LIT=On \
-C <Repository Root>/cmake/caches/PredefinedParams.cmake \
-DCMAKE_BUILD_TYPE=<Build Type> \
-G "Visual Studio 17 2022"
Expand Down Expand Up @@ -85,7 +82,6 @@ In your preferred terminal run:
.. code:: sh
cmake <Repository Root> \
-B <Path to Output> \
-DDXC_USE_LIT=On \
-C <Repository Root>/cmake/caches/PredefinedParams.cmake \
-DCMAKE_BUILD_TYPE=<Build Type> \
-G Ninja
Expand Down Expand Up @@ -150,10 +146,3 @@ four commonly used option prefixes:
code coverage reports. With this setting enabled the
``generate-coverage-report`` target is added to the build which produces a
static HTML page with code coverage analysis results.

**DXC_USE_LIT**:BOOL
This option must be passed before the ``-C`` flag to set the PredefinedParams
cache script because it is handled by the cache script. This option enables
building DXC with the LLVM-LIT testing infrastructure enabled. This generates
check targets for each sub-project (i.e. ``check-llvm``, ``check-clang``...),
and a ``check-all`` target to build and run DXC's tests.
141 changes: 0 additions & 141 deletions docs/DxcOnUnix.rst

This file was deleted.

1 change: 0 additions & 1 deletion gcp-pipelines/x86_64-linux-clang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ steps:
- '-DCMAKE_CXX_COMPILER=clang++'
- '-DCMAKE_C_COMPILER=clang'
- '-DCMAKE_INSTALL_PREFIX=artifacts'
- '-DDXC_USE_LIT=ON'
- '-DENABLE_SPIRV_CODEGEN=ON'
- '-DSPIRV_BUILD_TESTS=ON'
- '-DLLVM_ENABLE_WERROR=On'
Expand Down
1 change: 0 additions & 1 deletion tools/clang/unittests/SPIRV/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ target_include_directories(ClangSPIRVTests
PRIVATE ${SPIRV_TOOLS_INCLUDE_DIR} ${DXC_EFFCEE_DIR})

if (NOT CLANG_INCLUDE_TESTS)
set_target_properties(ClangSPIRVTests PROPERTIES OUTPUT_NAME clang-spirv-tests)
set_output_directory(ClangSPIRVTests
${LLVM_RUNTIME_OUTPUT_INTDIR} ${LLVM_LIBRARY_OUTPUT_INTDIR})
endif()
Expand Down
2 changes: 1 addition & 1 deletion utils/hct/hctbuild.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ set SPV_TEST=OFF
set DXILCONV=ON
set DXC_CMAKE_SYSTEM_VERSION=
set SHOW_CMAKE_LOG=0
set ENABLE_LIT=OFF
set ENABLE_LIT=ON
set WINSDK_MIN_VERSION=10.0.17763.0
set INSTALL_DIR=

Expand Down
8 changes: 4 additions & 4 deletions utils/hct/hcttest.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ set TEST_DXILCONV_FILTER=
set TEST_EXEC_FUTURE=0
set TEST_EXTRAS=0
set TEST_EXEC_REQUIRED=0
set TEST_USE_LIT=0
set TEST_USE_LIT=1
set TEST_CLANG_FILTER=
set TEST_EXEC_FILTER=ExecutionTest::*
set LOG_FILTER=/logOutput:LowWithConsoleBuffering
Expand Down Expand Up @@ -332,12 +332,12 @@ if not "%DXIL_DLL_LOC%"=="" (

rem Begin SPIRV change
if "%TEST_SPIRV%"=="1" (
if not exist %BIN_DIR%\clang-spirv-tests.exe (
echo clang-spirv-tests.exe has not been built. Make sure you run "hctbuild -spirvtest" first.
if not exist %BIN_DIR%\ClangSPIRVTests.exe (
echo ClangSPIRVTests.exe has not been built. Make sure you run "hctbuild -spirvtest" first.
exit /b 1
)
echo Running SPIRV tests ...
%BIN_DIR%\clang-spirv-tests.exe --spirv-test-root %HLSL_SRC_DIR%\tools\clang\test\CodeGenSPIRV
%BIN_DIR%\ClangSPIRVTests.exe --spirv-test-root %HLSL_SRC_DIR%\tools\clang\test\CodeGenSPIRV
if errorlevel 1 (
echo Failure occured in SPIRV unit tests
exit /b 1
Expand Down

0 comments on commit 06a7197

Please sign in to comment.