mirror of https://github.com/PCSX2/pcsx2.git
CI: Add non semantic debug option to shaderc
This commit is contained in:
parent
17e0d9fcbe
commit
1cd4ba2698
|
@ -1,3 +1,13 @@
|
||||||
|
--- a/CHANGES
|
||||||
|
+++ b/CHANGES
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
Revision history for Shaderc
|
||||||
|
|
||||||
|
-v2024.0
|
||||||
|
+v2024.0 2024-03-09
|
||||||
|
- Update dependencies
|
||||||
|
- Utilities:
|
||||||
|
- Use Python3 explicitly in utility scripts
|
||||||
--- a/CMakeLists.txt
|
--- a/CMakeLists.txt
|
||||||
+++ b/CMakeLists.txt
|
+++ b/CMakeLists.txt
|
||||||
@@ -117,6 +117,9 @@ if(MSVC)
|
@@ -117,6 +117,9 @@ if(MSVC)
|
||||||
|
@ -93,34 +103,118 @@
|
||||||
if(${SHADERC_ENABLE_TESTS})
|
if(${SHADERC_ENABLE_TESTS})
|
||||||
add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c)
|
add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c)
|
||||||
shaderc_default_c_compile_options(shaderc_c_smoke_test)
|
shaderc_default_c_compile_options(shaderc_c_smoke_test)
|
||||||
diff --git a/libshaderc_util/src/compiler.cc b/libshaderc_util/src/compiler.cc
|
--- a/libshaderc/include/shaderc/shaderc.h
|
||||||
index e5f5d10..f4f0fef 100644
|
+++ b/libshaderc/include/shaderc/shaderc.h
|
||||||
|
@@ -319,6 +319,10 @@ SHADERC_EXPORT void shaderc_compile_options_set_source_language(
|
||||||
|
SHADERC_EXPORT void shaderc_compile_options_set_generate_debug_info(
|
||||||
|
shaderc_compile_options_t options);
|
||||||
|
|
||||||
|
+// Sets the compiler mode to emit non-semantic debug information in the output.
|
||||||
|
+SHADERC_EXPORT void shaderc_compile_options_set_emit_non_semantic_debug_info(
|
||||||
|
+ shaderc_compile_options_t options);
|
||||||
|
+
|
||||||
|
// Sets the compiler optimization level to the given level. Only the last one
|
||||||
|
// takes effect if multiple calls of this function exist.
|
||||||
|
SHADERC_EXPORT void shaderc_compile_options_set_optimization_level(
|
||||||
|
--- a/libshaderc/include/shaderc/shaderc.hpp
|
||||||
|
+++ b/libshaderc/include/shaderc/shaderc.hpp
|
||||||
|
@@ -172,6 +172,12 @@ class CompileOptions {
|
||||||
|
shaderc_compile_options_set_generate_debug_info(options_);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Sets the compiler mode to emit non-semantic debug information in the
|
||||||
|
+ // output.
|
||||||
|
+ void SetEmitNonSemanticDebugInfo() {
|
||||||
|
+ shaderc_compile_options_set_emit_non_semantic_debug_info(options_);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// Sets the compiler optimization level to the given level. Only the last one
|
||||||
|
// takes effect if multiple calls of this function exist.
|
||||||
|
void SetOptimizationLevel(shaderc_optimization_level level) {
|
||||||
|
--- a/libshaderc/src/shaderc.cc
|
||||||
|
+++ b/libshaderc/src/shaderc.cc
|
||||||
|
@@ -422,6 +422,11 @@ void shaderc_compile_options_set_generate_debug_info(
|
||||||
|
options->compiler.SetGenerateDebugInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
+void shaderc_compile_options_set_emit_non_semantic_debug_info(
|
||||||
|
+ shaderc_compile_options_t options) {
|
||||||
|
+ options->compiler.SetEmitNonSemanticDebugInfo();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void shaderc_compile_options_set_optimization_level(
|
||||||
|
shaderc_compile_options_t options, shaderc_optimization_level level) {
|
||||||
|
auto opt_level = shaderc_util::Compiler::OptimizationLevel::Zero;
|
||||||
|
--- a/libshaderc_util/include/libshaderc_util/compiler.h
|
||||||
|
+++ b/libshaderc_util/include/libshaderc_util/compiler.h
|
||||||
|
@@ -195,6 +195,7 @@ class Compiler {
|
||||||
|
warnings_as_errors_(false),
|
||||||
|
suppress_warnings_(false),
|
||||||
|
generate_debug_info_(false),
|
||||||
|
+ emit_non_semantic_debug_info_(false),
|
||||||
|
enabled_opt_passes_(),
|
||||||
|
target_env_(TargetEnv::Vulkan),
|
||||||
|
target_env_version_(TargetEnvVersion::Default),
|
||||||
|
@@ -220,6 +221,10 @@ class Compiler {
|
||||||
|
// such as identifier names and line numbers.
|
||||||
|
void SetGenerateDebugInfo();
|
||||||
|
|
||||||
|
+ // Requests that the compiler emit non-semantic debug information.
|
||||||
|
+ // Requires VK_KHR_shader_non_semantic_info.
|
||||||
|
+ void SetEmitNonSemanticDebugInfo();
|
||||||
|
+
|
||||||
|
// Sets the optimization level to the given level. Only the last one takes
|
||||||
|
// effect if multiple calls of this method exist.
|
||||||
|
void SetOptimizationLevel(OptimizationLevel level);
|
||||||
|
@@ -486,6 +491,10 @@ class Compiler {
|
||||||
|
// output.
|
||||||
|
bool generate_debug_info_;
|
||||||
|
|
||||||
|
+ // When true and generate_debug_info_ is also set, generate non-semantic debug
|
||||||
|
+ // information.
|
||||||
|
+ bool emit_non_semantic_debug_info_;
|
||||||
|
+
|
||||||
|
// Optimization passes to be applied.
|
||||||
|
std::vector<PassId> enabled_opt_passes_;
|
||||||
|
|
||||||
--- a/libshaderc_util/src/compiler.cc
|
--- a/libshaderc_util/src/compiler.cc
|
||||||
+++ b/libshaderc_util/src/compiler.cc
|
+++ b/libshaderc_util/src/compiler.cc
|
||||||
@@ -341,6 +341,10 @@ std::tuple<bool, std::vector<uint32_t>, size_t> Compiler::Compile(
|
@@ -341,6 +341,11 @@ std::tuple<bool, std::vector<uint32_t>, size_t> Compiler::Compile(
|
||||||
options.generateDebugInfo = generate_debug_info_;
|
options.generateDebugInfo = generate_debug_info_;
|
||||||
options.disableOptimizer = true;
|
options.disableOptimizer = true;
|
||||||
options.optimizeSize = false;
|
options.optimizeSize = false;
|
||||||
+ if (generate_debug_info_) {
|
+ options.emitNonSemanticShaderDebugInfo =
|
||||||
+ options.emitNonSemanticShaderDebugInfo = true;
|
+ generate_debug_info_ && emit_non_semantic_debug_info_;
|
||||||
+ options.emitNonSemanticShaderDebugSource = true;
|
+ options.emitNonSemanticShaderDebugSource =
|
||||||
+ }
|
+ generate_debug_info_ && emit_non_semantic_debug_info_;
|
||||||
|
+
|
||||||
// Note the call to GlslangToSpv also populates compilation_output_data.
|
// Note the call to GlslangToSpv also populates compilation_output_data.
|
||||||
glslang::GlslangToSpv(*program.getIntermediate(used_shader_stage), spirv,
|
glslang::GlslangToSpv(*program.getIntermediate(used_shader_stage), spirv,
|
||||||
&options);
|
&options);
|
||||||
|
@@ -438,6 +443,10 @@ void Compiler::SetGenerateDebugInfo() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+void Compiler::SetEmitNonSemanticDebugInfo() {
|
||||||
|
+ emit_non_semantic_debug_info_ = true;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void Compiler::SetOptimizationLevel(Compiler::OptimizationLevel level) {
|
||||||
|
// Clear previous settings first.
|
||||||
|
enabled_opt_passes_.clear();
|
||||||
--- a/third_party/CMakeLists.txt
|
--- a/third_party/CMakeLists.txt
|
||||||
+++ b/third_party/CMakeLists.txt
|
+++ b/third_party/CMakeLists.txt
|
||||||
@@ -20,9 +20,9 @@ set(SHADERC_TINT_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/tint" CACHE STRING
|
@@ -20,9 +20,9 @@ set(SHADERC_TINT_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/tint" CACHE STRING
|
||||||
set(SHADERC_ABSL_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/abseil_cpp" CACHE STRING
|
set(SHADERC_ABSL_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/abseil_cpp" CACHE STRING
|
||||||
"Location of re2 source")
|
"Location of re2 source")
|
||||||
|
|
||||||
-set( SKIP_GLSLANG_INSTALL ${SHADERC_SKIP_INSTALL} )
|
-set( SKIP_GLSLANG_INSTALL ${SHADERC_SKIP_INSTALL} )
|
||||||
-set( SKIP_SPIRV_TOOLS_INSTALL ${SHADERC_SKIP_INSTALL} )
|
-set( SKIP_SPIRV_TOOLS_INSTALL ${SHADERC_SKIP_INSTALL} )
|
||||||
-set( SKIP_GOOGLETEST_INSTALL ${SHADERC_SKIP_INSTALL} )
|
-set( SKIP_GOOGLETEST_INSTALL ${SHADERC_SKIP_INSTALL} )
|
||||||
+set( SKIP_GLSLANG_INSTALL ON )
|
+set( SKIP_GLSLANG_INSTALL ON )
|
||||||
+set( SKIP_SPIRV_TOOLS_INSTALL ON )
|
+set( SKIP_SPIRV_TOOLS_INSTALL ON )
|
||||||
+set( SKIP_GOOGLETEST_INSTALL ON )
|
+set( SKIP_GOOGLETEST_INSTALL ON )
|
||||||
|
|
||||||
# Configure third party projects.
|
# Configure third party projects.
|
||||||
if(${SHADERC_ENABLE_TESTS})
|
if(${SHADERC_ENABLE_TESTS})
|
||||||
@@ -64,7 +64,10 @@ if (NOT TARGET SPIRV-Tools)
|
@@ -64,7 +64,10 @@ if (NOT TARGET SPIRV-Tools)
|
||||||
|
@ -136,7 +230,7 @@ index e5f5d10..f4f0fef 100644
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
if (${MSVC_VERSION} LESS 1920)
|
if (${MSVC_VERSION} LESS 1920)
|
||||||
@@ -83,7 +86,7 @@ endif()
|
@@ -83,7 +86,7 @@ endif()
|
||||||
|
|
||||||
if (NOT TARGET glslang)
|
if (NOT TARGET glslang)
|
||||||
if (IS_DIRECTORY ${SHADERC_GLSLANG_DIR})
|
if (IS_DIRECTORY ${SHADERC_GLSLANG_DIR})
|
||||||
- add_subdirectory(${SHADERC_GLSLANG_DIR} glslang)
|
- add_subdirectory(${SHADERC_GLSLANG_DIR} glslang)
|
|
@ -306,7 +306,7 @@ mv "SPIRV-Headers-$SHADERC_SPIRVHEADERS" "spirv-headers"
|
||||||
tar xf "../../shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz"
|
tar xf "../../shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz"
|
||||||
mv "SPIRV-Tools-$SHADERC_SPIRVTOOLS" "spirv-tools"
|
mv "SPIRV-Tools-$SHADERC_SPIRVTOOLS" "spirv-tools"
|
||||||
cd ..
|
cd ..
|
||||||
patch -p1 < "$SCRIPTDIR/../common/shaderc-install.patch"
|
patch -p1 < "$SCRIPTDIR/../common/shaderc-changes.patch"
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build -G Ninja
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build -G Ninja
|
||||||
cmake --build build --parallel
|
cmake --build build --parallel
|
||||||
ninja -C build install
|
ninja -C build install
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
"buildsystem": "cmake-ninja",
|
"buildsystem": "cmake-ninja",
|
||||||
"builddir": true,
|
"builddir": true,
|
||||||
"config-opts": [
|
"config-opts": [
|
||||||
|
"-DCMAKE_BUILD_TYPE=Release",
|
||||||
"-DSHADERC_SKIP_TESTS=ON",
|
"-DSHADERC_SKIP_TESTS=ON",
|
||||||
"-DSHADERC_SKIP_EXAMPLES=ON",
|
"-DSHADERC_SKIP_EXAMPLES=ON",
|
||||||
"-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
|
"-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
|
||||||
|
@ -36,7 +37,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "patch",
|
"type": "patch",
|
||||||
"path": "../../../common/shaderc-install.patch"
|
"path": "../../../common/shaderc-changes.patch"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"cleanup": [
|
"cleanup": [
|
||||||
|
@ -47,4 +48,4 @@
|
||||||
"/lib/cmake",
|
"/lib/cmake",
|
||||||
"/lib/pkgconfig"
|
"/lib/pkgconfig"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -297,7 +297,7 @@ mv "SPIRV-Headers-$SHADERC_SPIRVHEADERS" "spirv-headers"
|
||||||
tar xf "../../shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz"
|
tar xf "../../shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz"
|
||||||
mv "SPIRV-Tools-$SHADERC_SPIRVTOOLS" "spirv-tools"
|
mv "SPIRV-Tools-$SHADERC_SPIRVTOOLS" "spirv-tools"
|
||||||
cd ..
|
cd ..
|
||||||
patch -p1 < "$SCRIPTDIR/../common/shaderc-install.patch"
|
patch -p1 < "$SCRIPTDIR/../common/shaderc-changes.patch"
|
||||||
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build
|
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build
|
||||||
make -C build "-j$NPROCS"
|
make -C build "-j$NPROCS"
|
||||||
make -C build install
|
make -C build install
|
||||||
|
|
|
@ -250,7 +250,7 @@ rename "SPIRV-Headers-%SHADERC_SPIRVHEADERS%" "spirv-headers" || goto error
|
||||||
%SEVENZIP% x "..\..\shaderc-spirv-tools-%SHADERC_SPIRVTOOLS%.zip" || goto error
|
%SEVENZIP% x "..\..\shaderc-spirv-tools-%SHADERC_SPIRVTOOLS%.zip" || goto error
|
||||||
rename "SPIRV-Tools-%SHADERC_SPIRVTOOLS%" "spirv-tools" || goto error
|
rename "SPIRV-Tools-%SHADERC_SPIRVTOOLS%" "spirv-tools" || goto error
|
||||||
cd .. || goto error
|
cd .. || goto error
|
||||||
%PATCH% -p1 < "%SCRIPTDIR%\..\common\shaderc-install.patch" || goto error
|
%PATCH% -p1 < "%SCRIPTDIR%\..\common\shaderc-changes.patch" || goto error
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -DSHADERC_ENABLE_SHARED_CRT=ON -B build -G Ninja || goto error
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -DSHADERC_ENABLE_SHARED_CRT=ON -B build -G Ninja || goto error
|
||||||
cmake --build build --parallel || goto error
|
cmake --build build --parallel || goto error
|
||||||
ninja -C build install || goto error
|
ninja -C build install || goto error
|
||||||
|
|
Loading…
Reference in New Issue