Skip to content

Commit f052133

Browse files
bandotiqnixsynapse
authored andcommitted
cmake: clean up external project logic for vulkan-shaders-gen (ggml-org#14179)
* Remove install step for vulkan-shaders-gen * Add install step to normalize msvc with make * Regenerate modified shaders at build-time
1 parent 0901e95 commit f052133

File tree

2 files changed

+6
-21
lines changed

2 files changed

+6
-21
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ jobs:
693693
- build: 'openblas-x64'
694694
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_OPENMP=OFF -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"'
695695
- build: 'vulkan-x64'
696-
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_VULKAN=ON'
696+
defines: '-DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_VULKAN=ON'
697697
- build: 'llvm-arm64'
698698
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON'
699699
- build: 'llvm-arm64-opencl-adreno'

ggml/src/ggml-vulkan/CMakeLists.txt

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ if (Vulkan_FOUND)
9999

100100
if (GGML_VULKAN_SHADER_DEBUG_INFO)
101101
add_compile_definitions(GGML_VULKAN_SHADER_DEBUG_INFO)
102-
list(APPEND VULKAN_SHADER_GEN_CMAKE_ARGS -DGGML_VULKAN_SHADER_DEBUG_INFO=ON)
103102
endif()
104103

105104
if (GGML_VULKAN_VALIDATE)
@@ -144,17 +143,10 @@ if (Vulkan_FOUND)
144143
-DCMAKE_BUILD_TYPE=$<CONFIG>
145144
${VULKAN_SHADER_GEN_CMAKE_ARGS}
146145

147-
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
148-
BUILD_ALWAYS TRUE
149-
150-
# NOTE: When DESTDIR is set using Makefile generators and
151-
# "make install" triggers the build step, vulkan-shaders-gen
152-
# would be installed into the DESTDIR prefix, so it is unset
153-
# to ensure that does not happen.
154-
155-
INSTALL_COMMAND ${CMAKE_COMMAND} -E env --unset=DESTDIR
156-
${CMAKE_COMMAND} --install . --config $<CONFIG>
146+
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
147+
INSTALL_COMMAND ${CMAKE_COMMAND} --install . --config $<CONFIG>
157148
)
149+
ExternalProject_Add_StepTargets(vulkan-shaders-gen build install)
158150

159151
set (_ggml_vk_host_suffix $<IF:$<STREQUAL:${CMAKE_HOST_SYSTEM_NAME},Windows>,.exe,>)
160152
set (_ggml_vk_genshaders_dir "${CMAKE_BINARY_DIR}/$<CONFIG>")
@@ -166,14 +158,6 @@ if (Vulkan_FOUND)
166158

167159
file(GLOB _ggml_vk_shader_files CONFIGURE_DEPENDS "${_ggml_vk_input_dir}/*.comp")
168160

169-
# Because external projects do not provide source-level tracking,
170-
# the vulkan-shaders-gen sources need to be explicitly added to
171-
# ensure that changes will cascade into shader re-generation.
172-
173-
file(GLOB _ggml_vk_shaders_gen_sources
174-
CONFIGURE_DEPENDS "${_ggml_vk_input_dir}/*.cpp"
175-
"${_ggml_vk_input_dir}/*.h")
176-
177161
add_custom_command(
178162
OUTPUT ${_ggml_vk_header}
179163
${_ggml_vk_source}
@@ -187,8 +171,9 @@ if (Vulkan_FOUND)
187171
--no-clean
188172

189173
DEPENDS ${_ggml_vk_shader_files}
190-
${_ggml_vk_shaders_gen_sources}
191174
vulkan-shaders-gen
175+
vulkan-shaders-gen-build
176+
vulkan-shaders-gen-install
192177

193178
COMMENT "Generate vulkan shaders"
194179
)

0 commit comments

Comments
 (0)