Browse Source
[spirv] nuke spirv-opt (#3877)
[spirv] nuke spirv-opt (#3877)
lots of AGILEism in spirv-opt theres BETTER alternatives like https://github.com/renderbag/re-spirv (im not gonna bother for now, it probably has shitty build system) it sucks the IR already resolves most of the shader code to just constant load/stores Spirv-opt passes do not seem to make such a big difference only introduce extra latency like for example cbuf pass in IR already removes a lot of code, that spirv_opt would otherwise miss due to the fact it doesn't have cbuf information Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3877 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev>pull/3884/head
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
19 changed files with 14 additions and 431 deletions
-
14.patch/spirv-tools/0001-netbsd-fix.patch
-
287.patch/spirv-tools/0002-allow-static-only.patch
-
2CMakeLists.txt
-
26CMakeModules/FindSPIRV-Tools.cmake
-
8externals/CMakeLists.txt
-
14externals/cpmfile.json
-
4externals/ffmpeg/CMakeLists.txt
-
1src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
-
9src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
-
1src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
-
4src/common/settings.h
-
4src/qt_common/config/shared_translation.cpp
-
2src/shader_recompiler/CMakeLists.txt
-
38src/shader_recompiler/backend/spirv/emit_spirv.cpp
-
11src/shader_recompiler/backend/spirv/emit_spirv.h
-
9src/video_core/renderer_opengl/gl_shader_cache.cpp
-
1src/video_core/renderer_opengl/gl_shader_cache.h
-
9src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
-
1src/video_core/renderer_vulkan/vk_pipeline_cache.h
@ -1,14 +0,0 @@ |
|||
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
|
|||
index eb4e69e..3155805 100644
|
|||
--- a/external/CMakeLists.txt
|
|||
+++ b/external/CMakeLists.txt
|
|||
@@ -72,7 +72,8 @@ if (SPIRV_TOOLS_USE_MIMALLOC)
|
|||
pop_variable(MI_BUILD_TESTS) |
|||
endif() |
|||
|
|||
-if (DEFINED SPIRV-Headers_SOURCE_DIR)
|
|||
+# NetBSD doesn't have SPIRV-Headers readily available on system
|
|||
+if (DEFINED SPIRV-Headers_SOURCE_DIR AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "NetBSD")
|
|||
# This allows flexible position of the SPIRV-Headers repo. |
|||
set(SPIRV_HEADER_DIR ${SPIRV-Headers_SOURCE_DIR}) |
|||
else() |
|||
@ -1,287 +0,0 @@ |
|||
From 67bf3d1381b1faf59e87001d6156ba4e21cada14 Mon Sep 17 00:00:00 2001 |
|||
From: crueter <crueter@eden-emu.dev> |
|||
Date: Mon, 29 Dec 2025 21:22:36 -0500 |
|||
Subject: [PATCH] [cmake] refactor: shared/static handling |
|||
|
|||
This significantly redoes the way shared and static libraries are |
|||
handled. Now, it's controlled by two options: `SPIRV_TOOLS_BUILD_STATIC` |
|||
and `SPIRV_TOOLS_BUILD_SHARED`. |
|||
|
|||
The default configuration (no `BUILD_SHARED_LIBS` set, options left at |
|||
default) is to build shared ONLY if this is the master project, or |
|||
static ONLY if this is a subproject (e.g. FetchContent, CPM.cmake). Also |
|||
I should note that static-only (i.e. no shared) is now a supported |
|||
target, this is done because projects including it as a submodule e.g. |
|||
on Android or Windows may prefer this. |
|||
|
|||
Now the shared/static handling: |
|||
- static ON, shared OFF: Only generates `.a` libraries.
|
|||
- static ON, shared ON: Generates `.a` libraries, but also
|
|||
`libSPIRV-Tools.so` |
|||
- static OFF, shared ON: Only generates `.so` libraries.
|
|||
|
|||
Notable TODOs: |
|||
- SPIRV-Tools-shared.pc seems redundant--how should we handle which one
|
|||
to use in the case of distributions that distribute both types (MSYS2 |
|||
for instance)? |
|||
* *Note: pkgconfig sucks at this and usually just leaves it up to the |
|||
user, so the optimal solution may indeed be doing absolutely |
|||
nothing.* CMake is unaffected :) |
|||
- use namespaces in the CMake config files pleaaaaase
|
|||
|
|||
This is going to change things a good bit for package maintainers, but |
|||
cest la vie. It's for the greater good, I promise. |
|||
|
|||
Signed-off-by: crueter <crueter@eden-emu.dev> |
|||
---
|
|||
CMakeLists.txt | 108 +++++++++++++++++++++++++----------------- |
|||
source/CMakeLists.txt | 62 ++++++++++++------------ |
|||
2 files changed, 94 insertions(+), 76 deletions(-) |
|||
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|||
index 4d843b4d2f..07201f690f 100644
|
|||
--- a/CMakeLists.txt
|
|||
+++ b/CMakeLists.txt
|
|||
@@ -14,6 +14,15 @@
|
|||
|
|||
cmake_minimum_required(VERSION 3.22.1) |
|||
|
|||
+# master project detection--useful for FetchContent/submodule inclusion
|
|||
+set(master_project OFF)
|
|||
+set(subproject ON)
|
|||
+
|
|||
+if (NOT DEFINED PROJECT_NAME)
|
|||
+ set(master_project ON)
|
|||
+ set(subproject OFF)
|
|||
+endif()
|
|||
+
|
|||
project(spirv-tools) |
|||
|
|||
# Avoid a bug in CMake 3.22.1. By default it will set -std=c++11 for |
|||
@@ -135,46 +144,49 @@ if (DEFINED SPIRV_TOOLS_EXTRA_DEFINITIONS)
|
|||
add_definitions(${SPIRV_TOOLS_EXTRA_DEFINITIONS}) |
|||
endif() |
|||
|
|||
-# Library build setting definitions:
|
|||
-#
|
|||
-# * SPIRV_TOOLS_BUILD_STATIC - ON or OFF - Defaults to ON.
|
|||
-# If enabled the following targets will be created:
|
|||
-# ${SPIRV_TOOLS}-static - STATIC library.
|
|||
-# Has full public symbol visibility.
|
|||
-# ${SPIRV_TOOLS}-shared - SHARED library.
|
|||
-# Has default-hidden symbol visibility.
|
|||
-# ${SPIRV_TOOLS} - will alias to one of above, based on BUILD_SHARED_LIBS.
|
|||
-# If disabled the following targets will be created:
|
|||
-# ${SPIRV_TOOLS} - either STATIC or SHARED based on SPIRV_TOOLS_LIBRARY_TYPE.
|
|||
-# Has full public symbol visibility.
|
|||
-# ${SPIRV_TOOLS}-shared - SHARED library.
|
|||
-# Has default-hidden symbol visibility.
|
|||
-#
|
|||
-# * SPIRV_TOOLS_LIBRARY_TYPE - SHARED or STATIC.
|
|||
-# Specifies the library type used for building SPIRV-Tools libraries.
|
|||
-# Defaults to SHARED when BUILD_SHARED_LIBS=1, otherwise STATIC.
|
|||
-#
|
|||
-# * SPIRV_TOOLS_FULL_VISIBILITY - "${SPIRV_TOOLS}-static" or "${SPIRV_TOOLS}"
|
|||
-# Evaluates to the SPIRV_TOOLS target library name that has no hidden symbols.
|
|||
-# This is used by internal targets for accessing symbols that are non-public.
|
|||
-# Note this target provides no API stability guarantees.
|
|||
-#
|
|||
-# Ideally, all of these will go away - see https://github.com/KhronosGroup/SPIRV-Tools/issues/3909.
|
|||
-option(ENABLE_EXCEPTIONS_ON_MSVC "Build SPIRV-TOOLS with c++ exceptions enabled in MSVC" ON)
|
|||
-option(SPIRV_TOOLS_BUILD_STATIC "Build ${SPIRV_TOOLS}-static target. ${SPIRV_TOOLS} will alias to ${SPIRV_TOOLS}-static or ${SPIRV_TOOLS}-shared based on BUILD_SHARED_LIBS" ON)
|
|||
-if(SPIRV_TOOLS_BUILD_STATIC)
|
|||
- set(SPIRV_TOOLS_FULL_VISIBILITY ${SPIRV_TOOLS}-static)
|
|||
+# If BUILD_SHARED_LIBS is undefined, set it based on whether we are
|
|||
+# the master project or a subproject
|
|||
+if (NOT DEFINED BUILD_SHARED_LIBS)
|
|||
+ set(BUILD_SHARED_LIBS ${master_project})
|
|||
+endif()
|
|||
+
|
|||
+if (BUILD_SHARED_LIBS)
|
|||
+ set(static_default OFF)
|
|||
+else()
|
|||
+ set(static_default ON)
|
|||
+endif()
|
|||
+
|
|||
+option(SPIRV_TOOLS_BUILD_SHARED "Build ${SPIRV_TOOLS} as a shared library"
|
|||
+ ${BUILD_SHARED_LIBS})
|
|||
+option(SPIRV_TOOLS_BUILD_STATIC "Build ${SPIRV_TOOLS} as a static library"
|
|||
+ ${static_default})
|
|||
+
|
|||
+# Avoid conflict between the dll import library and
|
|||
+# the static library (thanks microsoft)
|
|||
+if(CMAKE_STATIC_LIBRARY_PREFIX STREQUAL "" AND
|
|||
+ CMAKE_STATIC_LIBRARY_SUFFIX STREQUAL ".lib")
|
|||
+ set(SPIRV_TOOLS_STATIC_LIBNAME "${SPIRV_TOOLS}-static")
|
|||
+else()
|
|||
+ set(SPIRV_TOOLS_STATIC_LIBNAME "${SPIRV_TOOLS}")
|
|||
+endif()
|
|||
+
|
|||
+if (SPIRV_TOOLS_BUILD_STATIC)
|
|||
+ # If building a static library at all, always build other libraries as static,
|
|||
+ # and link to the static SPIRV-Tools library.
|
|||
set(SPIRV_TOOLS_LIBRARY_TYPE "STATIC") |
|||
-else(SPIRV_TOOLS_BUILD_STATIC)
|
|||
- set(SPIRV_TOOLS_FULL_VISIBILITY ${SPIRV_TOOLS})
|
|||
- if (NOT DEFINED SPIRV_TOOLS_LIBRARY_TYPE)
|
|||
- if(BUILD_SHARED_LIBS)
|
|||
- set(SPIRV_TOOLS_LIBRARY_TYPE "SHARED")
|
|||
- else()
|
|||
- set(SPIRV_TOOLS_LIBRARY_TYPE "STATIC")
|
|||
- endif()
|
|||
- endif()
|
|||
-endif(SPIRV_TOOLS_BUILD_STATIC)
|
|||
+ set(SPIRV_TOOLS_FULL_VISIBILITY ${SPIRV_TOOLS}-static)
|
|||
+elseif (SPIRV_TOOLS_BUILD_SHARED)
|
|||
+ # If only building a shared library, link other libraries to the
|
|||
+ # shared library. Also, other libraries should be shared
|
|||
+ set(SPIRV_TOOLS_LIBRARY_TYPE "SHARED")
|
|||
+ set(SPIRV_TOOLS_FULL_VISIBILITY ${SPIRV_TOOLS}-shared)
|
|||
+else()
|
|||
+ message(FATAL_ERROR "You must set one of "
|
|||
+ "SPIRV_TOOLS_BUILD_STATIC or SPIRV_TOOLS_BUILD_SHARED!")
|
|||
+endif()
|
|||
+
|
|||
+option(ENABLE_EXCEPTIONS_ON_MSVC
|
|||
+ "Build SPIRV-TOOLS with C++ exceptions enabled in MSVC" ON)
|
|||
|
|||
function(spvtools_default_compile_options TARGET) |
|||
target_compile_options(${TARGET} PRIVATE ${SPIRV_WARNINGS}) |
|||
@@ -372,7 +384,7 @@ if (NOT "${SPIRV_SKIP_TESTS}")
|
|||
endif() |
|||
|
|||
set(SPIRV_LIBRARIES "-lSPIRV-Tools-opt -lSPIRV-Tools -lSPIRV-Tools-link") |
|||
-set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools-shared")
|
|||
+set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools")
|
|||
|
|||
# Build pkg-config file |
|||
# Use a first-class target so it's regenerated when relevant files are updated. |
|||
@@ -388,7 +400,12 @@ add_custom_command(
|
|||
-DSPIRV_LIBRARIES=${SPIRV_LIBRARIES} |
|||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake |
|||
DEPENDS "CHANGES" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools.pc.in" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake") |
|||
-add_custom_command(
|
|||
+
|
|||
+set(pc_files ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc)
|
|||
+
|
|||
+# TODO(crueter): remove?
|
|||
+if (SPIRV_TOOLS_BUILD_SHARED)
|
|||
+ add_custom_command(
|
|||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc |
|||
COMMAND ${CMAKE_COMMAND} |
|||
-DCHANGES_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CHANGES |
|||
@@ -400,9 +417,12 @@ add_custom_command(
|
|||
-DSPIRV_SHARED_LIBRARIES=${SPIRV_SHARED_LIBRARIES} |
|||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake |
|||
DEPENDS "CHANGES" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools-shared.pc.in" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake") |
|||
-add_custom_target(spirv-tools-pkg-config
|
|||
- ALL
|
|||
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc)
|
|||
+ set(pc_files ${pc_files} ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc)
|
|||
+endif()
|
|||
+
|
|||
+add_custom_target(spirv-tools-pkg-config
|
|||
+ ALL
|
|||
+ DEPENDS ${pc_files})
|
|||
|
|||
# Install pkg-config file |
|||
if (ENABLE_SPIRV_TOOLS_INSTALL) |
|||
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
|
|||
index bfa1e661bc..fd3712c70c 100644
|
|||
--- a/source/CMakeLists.txt
|
|||
+++ b/source/CMakeLists.txt
|
|||
@@ -337,49 +337,44 @@ function(spirv_tools_default_target_options target)
|
|||
) |
|||
set_property(TARGET ${target} PROPERTY FOLDER "SPIRV-Tools libraries") |
|||
spvtools_check_symbol_exports(${target}) |
|||
- add_dependencies(${target} spirv-tools-build-version core_tables extinst_tables)
|
|||
+ add_dependencies(${target}
|
|||
+ spirv-tools-build-version core_tables extinst_tables)
|
|||
endfunction() |
|||
|
|||
-# Always build ${SPIRV_TOOLS}-shared. This is expected distro packages, and
|
|||
-# unlike the other SPIRV_TOOLS target, defaults to hidden symbol visibility.
|
|||
-add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
|
|||
-if (SPIRV_TOOLS_USE_MIMALLOC)
|
|||
- target_link_libraries(${SPIRV_TOOLS}-shared PRIVATE mimalloc-static)
|
|||
+if (SPIRV_TOOLS_BUILD_SHARED)
|
|||
+ add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
|
|||
+ if (SPIRV_TOOLS_USE_MIMALLOC)
|
|||
+ target_link_libraries(${SPIRV_TOOLS}-shared PRIVATE mimalloc-static)
|
|||
+ endif()
|
|||
+
|
|||
+ set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES
|
|||
+ OUTPUT_NAME "${SPIRV_TOOLS}")
|
|||
+ spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
|
|||
+
|
|||
+ target_compile_definitions(${SPIRV_TOOLS}-shared
|
|||
+ PRIVATE SPIRV_TOOLS_IMPLEMENTATION
|
|||
+ PUBLIC SPIRV_TOOLS_SHAREDLIB)
|
|||
+
|
|||
+ list(APPEND SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-shared)
|
|||
endif() |
|||
-spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
|
|||
-set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
|||
-target_compile_definitions(${SPIRV_TOOLS}-shared
|
|||
- PRIVATE SPIRV_TOOLS_IMPLEMENTATION
|
|||
- PUBLIC SPIRV_TOOLS_SHAREDLIB
|
|||
-)
|
|||
|
|||
if(SPIRV_TOOLS_BUILD_STATIC) |
|||
add_library(${SPIRV_TOOLS}-static STATIC ${SPIRV_SOURCES}) |
|||
if (SPIRV_TOOLS_USE_MIMALLOC AND SPIRV_TOOLS_USE_MIMALLOC_IN_STATIC_BUILD) |
|||
target_link_libraries(${SPIRV_TOOLS}-shared PRIVATE mimalloc-static) |
|||
endif() |
|||
+
|
|||
spirv_tools_default_target_options(${SPIRV_TOOLS}-static) |
|||
- # The static target does not have the '-static' suffix.
|
|||
- set_target_properties(${SPIRV_TOOLS}-static PROPERTIES OUTPUT_NAME "${SPIRV_TOOLS}")
|
|||
-
|
|||
- # Create the "${SPIRV_TOOLS}" target as an alias to either "${SPIRV_TOOLS}-static"
|
|||
- # or "${SPIRV_TOOLS}-shared" depending on the value of BUILD_SHARED_LIBS.
|
|||
- if(BUILD_SHARED_LIBS)
|
|||
- add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-shared)
|
|||
- else()
|
|||
- add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-static)
|
|||
- endif()
|
|||
+ set_target_properties(${SPIRV_TOOLS}-static PROPERTIES
|
|||
+ OUTPUT_NAME "${SPIRV_TOOLS_STATIC_LIBNAME}")
|
|||
|
|||
- set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared)
|
|||
-else()
|
|||
- add_library(${SPIRV_TOOLS} ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_SOURCES})
|
|||
- if (SPIRV_TOOLS_USE_MIMALLOC)
|
|||
- target_link_libraries(${SPIRV_TOOLS} PRIVATE mimalloc-static)
|
|||
- endif()
|
|||
- spirv_tools_default_target_options(${SPIRV_TOOLS})
|
|||
- set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared)
|
|||
+ list(APPEND SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static)
|
|||
endif() |
|||
|
|||
+# Create the "SPIRV-Tools" target as an alias to either "SPIRV-Tools-static"
|
|||
+# or "SPIRV-Tools-shared" depending on the value of SPIRV_TOOLS_BUILD_SHARED.
|
|||
+add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS_FULL_VISIBILITY})
|
|||
+
|
|||
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") |
|||
find_library(LIBRT rt) |
|||
if(LIBRT) |
|||
@@ -390,14 +385,17 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
|||
endif() |
|||
|
|||
if(ENABLE_SPIRV_TOOLS_INSTALL) |
|||
- if (SPIRV_TOOLS_USE_MIMALLOC AND (NOT SPIRV_TOOLS_BUILD_STATIC OR SPIRV_TOOLS_USE_MIMALLOC_IN_STATIC_BUILD))
|
|||
+ if (SPIRV_TOOLS_USE_MIMALLOC AND
|
|||
+ (NOT SPIRV_TOOLS_BUILD_STATIC OR SPIRV_TOOLS_USE_MIMALLOC_IN_STATIC_BUILD))
|
|||
list(APPEND SPIRV_TOOLS_TARGETS mimalloc-static) |
|||
endif() |
|||
install(TARGETS ${SPIRV_TOOLS_TARGETS} EXPORT ${SPIRV_TOOLS}Targets) |
|||
export(EXPORT ${SPIRV_TOOLS}Targets FILE ${SPIRV_TOOLS}Target.cmake) |
|||
|
|||
spvtools_config_package_dir(${SPIRV_TOOLS} PACKAGE_DIR) |
|||
- install(EXPORT ${SPIRV_TOOLS}Targets FILE ${SPIRV_TOOLS}Target.cmake DESTINATION ${PACKAGE_DIR})
|
|||
+ install(EXPORT ${SPIRV_TOOLS}Targets
|
|||
+ FILE ${SPIRV_TOOLS}Target.cmake
|
|||
+ DESTINATION ${PACKAGE_DIR})
|
|||
|
|||
# Special config file for root library compared to other libs. |
|||
file(WRITE ${CMAKE_BINARY_DIR}/${SPIRV_TOOLS}Config.cmake |
|||
@ -1,26 +0,0 @@ |
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project |
|||
# SPDX-License-Identifier: GPL-3.0-or-later |
|||
|
|||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project |
|||
# SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
include(FindPackageHandleStandardArgs) |
|||
|
|||
find_package(PkgConfig QUIET) |
|||
pkg_search_module(SPIRV-Tools QUIET IMPORTED_TARGET SPIRV-Tools) |
|||
find_package_handle_standard_args(SPIRV-Tools |
|||
REQUIRED_VARS SPIRV-Tools_LINK_LIBRARIES |
|||
VERSION_VAR SPIRV-Tools_VERSION |
|||
) |
|||
|
|||
if (PLATFORM_MSYS) |
|||
FixMsysPath(PkgConfig::SPIRV-Tools) |
|||
endif() |
|||
|
|||
if (SPIRV-Tools_FOUND AND NOT TARGET SPIRV-Tools::SPIRV-Tools) |
|||
if (TARGET SPIRV-Tools) |
|||
add_library(SPIRV-Tools::SPIRV-Tools ALIAS SPIRV-Tools) |
|||
else() |
|||
add_library(SPIRV-Tools::SPIRV-Tools ALIAS PkgConfig::SPIRV-Tools) |
|||
endif() |
|||
endif() |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue