mirror of
				https://github.com/RetroDECK/Duckstation.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	CI: Backport shaderc changes from PCSX2
This commit is contained in:
		
							parent
							
								
									06a29f6d95
								
							
						
					
					
						commit
						59eeb89243
					
				|  | @ -327,7 +327,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/shaderc-install.patch" | patch -p1 < "$SCRIPTDIR/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 | ||||||
|  |  | ||||||
|  | @ -240,7 +240,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%\shaderc-install.patch" || goto error | %PATCH% -p1 < "%SCRIPTDIR%\shaderc-changes.patch" || goto error | ||||||
| cmake %ARM64TOOLCHAIN% -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 %ARM64TOOLCHAIN% -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 | ||||||
|  |  | ||||||
|  | @ -237,7 +237,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%\shaderc-install.patch" || goto error | %PATCH% -p1 < "%SCRIPTDIR%\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 | ||||||
|  |  | ||||||
|  | @ -291,7 +291,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/shaderc-install.patch" | patch -p1 < "$SCRIPTDIR/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 | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "type": "patch", |       "type": "patch", | ||||||
|       "path": "shaderc-install.patch" |       "path": "../../shaderc-changes.patch" | ||||||
|     } |     } | ||||||
|   ], |   ], | ||||||
|   "cleanup": [ |   "cleanup": [ | ||||||
|  | @ -48,4 +48,4 @@ | ||||||
|     "/lib/cmake", |     "/lib/cmake", | ||||||
|     "/lib/pkgconfig" |     "/lib/pkgconfig" | ||||||
|   ] |   ] | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -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)
 | ||||||
|  | @ -1,146 +0,0 @@ | ||||||
| --- a/CMakeLists.txt
 |  | ||||||
| +++ b/CMakeLists.txt
 |  | ||||||
| @@ -117,6 +117,9 @@ if(MSVC)
 |  | ||||||
|    endif() |  | ||||||
|  endif(MSVC) |  | ||||||
|   |  | ||||||
| +if(NOT WIN32)
 |  | ||||||
| +  add_definitions("-fvisibility=hidden")
 |  | ||||||
| +endif()
 |  | ||||||
|   |  | ||||||
|  # Configure subdirectories. |  | ||||||
|  # We depend on these for later projects, so they should come first. |  | ||||||
| @@ -124,7 +127,6 @@ add_subdirectory(third_party)
 |  | ||||||
|   |  | ||||||
|  add_subdirectory(libshaderc_util) |  | ||||||
|  add_subdirectory(libshaderc) |  | ||||||
| -add_subdirectory(glslc)
 |  | ||||||
|  if(${SHADERC_ENABLE_EXAMPLES}) |  | ||||||
|      add_subdirectory(examples) |  | ||||||
|  endif() |  | ||||||
| @@ -158,5 +160,3 @@ function(define_pkg_config_file NAME LIBS)
 |  | ||||||
|  endfunction() |  | ||||||
|   |  | ||||||
|  define_pkg_config_file(shaderc -lshaderc_shared) |  | ||||||
| -define_pkg_config_file(shaderc_static "-lshaderc ${EXTRA_STATIC_PKGCONFIG_LIBS} -lshaderc_util")
 |  | ||||||
| -define_pkg_config_file(shaderc_combined -lshaderc_combined)
 |  | ||||||
| --- a/libshaderc/CMakeLists.txt
 |  | ||||||
| +++ b/libshaderc/CMakeLists.txt
 |  | ||||||
| @@ -24,13 +24,6 @@ set(SHADERC_SOURCES
 |  | ||||||
|    src/shaderc_private.h |  | ||||||
|  ) |  | ||||||
|   |  | ||||||
| -add_library(shaderc STATIC ${SHADERC_SOURCES})
 |  | ||||||
| -shaderc_default_compile_options(shaderc)
 |  | ||||||
| -target_include_directories(shaderc
 |  | ||||||
| -    PUBLIC include
 |  | ||||||
| -    PRIVATE ${glslang_SOURCE_DIR}
 |  | ||||||
| -            ${SPIRV-Headers_SOURCE_DIR}/include)
 |  | ||||||
| -
 |  | ||||||
|  add_library(shaderc_shared SHARED ${SHADERC_SOURCES}) |  | ||||||
|  shaderc_default_compile_options(shaderc_shared) |  | ||||||
|  target_include_directories(shaderc_shared |  | ||||||
| @@ -54,7 +47,7 @@ if(SHADERC_ENABLE_INSTALL)
 |  | ||||||
|      DESTINATION |  | ||||||
|        ${CMAKE_INSTALL_INCLUDEDIR}/shaderc) |  | ||||||
|   |  | ||||||
| -  install(TARGETS shaderc shaderc_shared
 |  | ||||||
| +  install(TARGETS shaderc_shared
 |  | ||||||
|      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |  | ||||||
|      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |  | ||||||
|      BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} |  | ||||||
| @@ -69,20 +62,8 @@ set(SHADERC_LIBS
 |  | ||||||
|    SPIRV-Tools |  | ||||||
|  ) |  | ||||||
|   |  | ||||||
| -target_link_libraries(shaderc PRIVATE ${SHADERC_LIBS})
 |  | ||||||
|  target_link_libraries(shaderc_shared PRIVATE ${SHADERC_LIBS}) |  | ||||||
|   |  | ||||||
| -shaderc_add_tests(
 |  | ||||||
| -  TEST_PREFIX shaderc
 |  | ||||||
| -  LINK_LIBS shaderc
 |  | ||||||
| -  INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR}
 |  | ||||||
| -               ${spirv-tools_SOURCE_DIR}/include
 |  | ||||||
| -               ${SPIRV-Headers_SOURCE_DIR}/include
 |  | ||||||
| -  TEST_NAMES
 |  | ||||||
| -    shaderc
 |  | ||||||
| -    shaderc_cpp
 |  | ||||||
| -    shaderc_private)
 |  | ||||||
| -
 |  | ||||||
|  shaderc_add_tests( |  | ||||||
|    TEST_PREFIX shaderc_shared |  | ||||||
|    LINK_LIBS shaderc_shared SPIRV-Tools |  | ||||||
| @@ -94,22 +75,6 @@ shaderc_add_tests(
 |  | ||||||
|      shaderc_cpp |  | ||||||
|      shaderc_private) |  | ||||||
|   |  | ||||||
| -shaderc_combine_static_lib(shaderc_combined shaderc)
 |  | ||||||
| -
 |  | ||||||
| -if(SHADERC_ENABLE_INSTALL)
 |  | ||||||
| -  install(TARGETS shaderc_combined DESTINATION ${CMAKE_INSTALL_LIBDIR})
 |  | ||||||
| -endif(SHADERC_ENABLE_INSTALL)
 |  | ||||||
| -
 |  | ||||||
| -shaderc_add_tests(
 |  | ||||||
| -  TEST_PREFIX shaderc_combined
 |  | ||||||
| -  LINK_LIBS shaderc_combined ${CMAKE_THREAD_LIBS_INIT}
 |  | ||||||
| -  INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR}
 |  | ||||||
| -               ${spirv-tools_SOURCE_DIR}/include
 |  | ||||||
| -               ${SPIRV-Headers_SOURCE_DIR}/include
 |  | ||||||
| -  TEST_NAMES
 |  | ||||||
| -    shaderc
 |  | ||||||
| -    shaderc_cpp)
 |  | ||||||
| -
 |  | ||||||
|  if(${SHADERC_ENABLE_TESTS}) |  | ||||||
|    add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c) |  | ||||||
|    shaderc_default_c_compile_options(shaderc_c_smoke_test) |  | ||||||
| diff --git a/libshaderc_util/src/compiler.cc b/libshaderc_util/src/compiler.cc
 |  | ||||||
| index e5f5d10..f4f0fef 100644
 |  | ||||||
| --- a/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(
 |  | ||||||
|    options.generateDebugInfo = generate_debug_info_; |  | ||||||
|    options.disableOptimizer = true; |  | ||||||
|    options.optimizeSize = false; |  | ||||||
| +  if (generate_debug_info_) {
 |  | ||||||
| +    options.emitNonSemanticShaderDebugInfo = true;
 |  | ||||||
| +    options.emitNonSemanticShaderDebugSource = true;
 |  | ||||||
| +  }
 |  | ||||||
|    // Note the call to GlslangToSpv also populates compilation_output_data. |  | ||||||
|    glslang::GlslangToSpv(*program.getIntermediate(used_shader_stage), spirv, |  | ||||||
|                          &options); |  | ||||||
| --- a/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
 |  | ||||||
|  set(SHADERC_ABSL_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/abseil_cpp" CACHE STRING |  | ||||||
|    "Location of re2 source") |  | ||||||
| 
 |  | ||||||
| -set( SKIP_GLSLANG_INSTALL ${SHADERC_SKIP_INSTALL} )
 |  | ||||||
| -set( SKIP_SPIRV_TOOLS_INSTALL ${SHADERC_SKIP_INSTALL} )
 |  | ||||||
| -set( SKIP_GOOGLETEST_INSTALL ${SHADERC_SKIP_INSTALL} )
 |  | ||||||
| +set( SKIP_GLSLANG_INSTALL ON )
 |  | ||||||
| +set( SKIP_SPIRV_TOOLS_INSTALL ON )
 |  | ||||||
| +set( SKIP_GOOGLETEST_INSTALL ON )
 |  | ||||||
| 
 |  | ||||||
|  # Configure third party projects. |  | ||||||
|  if(${SHADERC_ENABLE_TESTS}) |  | ||||||
| @@ -64,7 +64,10 @@ if (NOT TARGET SPIRV-Tools)
 |  | ||||||
|        add_subdirectory(${SHADERC_RE2_DIR} re2) |  | ||||||
|        add_subdirectory(${SHADERC_EFFCEE_DIR} effcee) |  | ||||||
|      endif() |  | ||||||
| -    add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools)
 |  | ||||||
| +    set(SPIRV_SKIP_EXECUTABLES ON CACHE BOOL "Skip building SPIRV-Tools executables")
 |  | ||||||
| +    set(SPIRV_TOOLS_BUILD_STATIC OFF CACHE BOOL "Skip building two SPIRV-Tools libs")
 |  | ||||||
| +    set(SPIRV_TOOLS_LIBRARY_TYPE STATIC CACHE STRING "Build static SPIRV-Tools libs")
 |  | ||||||
| +    add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools EXCLUDE_FROM_ALL)
 |  | ||||||
|      if (NOT "${SPIRV_SKIP_TESTS}") |  | ||||||
|        if (MSVC) |  | ||||||
|          if (${MSVC_VERSION} LESS 1920) |  | ||||||
| @@ -83,7 +86,7 @@ endif()
 |  | ||||||
| 
 |  | ||||||
|  if (NOT TARGET glslang) |  | ||||||
|    if (IS_DIRECTORY ${SHADERC_GLSLANG_DIR}) |  | ||||||
| -    add_subdirectory(${SHADERC_GLSLANG_DIR} glslang)
 |  | ||||||
| +    add_subdirectory(${SHADERC_GLSLANG_DIR} glslang EXCLUDE_FROM_ALL)
 |  | ||||||
|    endif() |  | ||||||
|    if (NOT TARGET glslang) |  | ||||||
|      message(FATAL_ERROR "glslang was not found - required for compilation") |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Stenzek
						Stenzek