@@ -21,29 +21,23 @@ endfunction()
2121# TEST_SHADER_FILE - Path to the test shader file
2222# RESULT_VARIABLE - Name of the variable to set (ON/OFF) based on test result
2323function (test_shader_extension_support EXTENSION_NAME TEST_SHADER_FILE RESULT_VARIABLE )
24- # Compile the test shader to determine whether the extension is supported
2524 execute_process (
2625 COMMAND ${Vulkan_GLSLC_EXECUTABLE} -o - -fshader-stage=compute --target -env=vulkan1.3 "${TEST_SHADER_FILE} "
2726 OUTPUT_VARIABLE glslc_output
2827 ERROR_VARIABLE glslc_error
2928 )
3029
31- # Check if error message contains extension not supported
3230 if (${glslc_error} MATCHES ".*extension not supported: ${EXTENSION_NAME} .*" )
3331 message (STATUS "${EXTENSION_NAME} not supported by glslc" )
3432 set (${RESULT_VARIABLE} OFF PARENT_SCOPE)
35-
36- # Append to the shader extensions definitions file
37- file (APPEND ${CMAKE_CURRENT_BINARY_DIR} /vulkan-shader-extension-defs.cmake
38- "set(${RESULT_VARIABLE} OFF)\n " )
3933 else ()
4034 message (STATUS "${EXTENSION_NAME} supported by glslc" )
4135 set (${RESULT_VARIABLE} ON PARENT_SCOPE)
4236 add_compile_definitions (${RESULT_VARIABLE} )
4337
44- # Append to the shader extensions definitions file
45- file (APPEND ${CMAKE_CURRENT_BINARY_DIR} /vulkan-shader-extension-defs.cmake
46- " set(${RESULT_VARIABLE} ON) \n add_compile_definitions( ${RESULT_VARIABLE} ) \n " )
38+ # Ensure the extension support is forwarded to vulkan-shaders-gen
39+ list (APPEND VULKAN_SHADER_GEN_CMAKE_ARGS -D ${RESULT_VARIABLE} = ON )
40+ set (VULKAN_SHADER_GEN_CMAKE_ARGS " ${VULKAN_SHADER_GEN_CMAKE_ARGS} " PARENT_SCOPE )
4741 endif ()
4842endfunction ()
4943
@@ -55,9 +49,10 @@ if (Vulkan_FOUND)
5549 ../../include /ggml-vulkan.h
5650 )
5751
58- # Create the shader extensions definitions file
59- file (WRITE ${CMAKE_CURRENT_BINARY_DIR} /vulkan-shader-extension-defs.cmake
60- "# Auto-generated file with Vulkan shader extension support definitions\n\n " )
52+ set (VULKAN_SHADER_GEN_CMAKE_ARGS
53+ -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}
54+ -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
55+ )
6156
6257 # Test all shader extensions
6358 test_shader_extension_support(
@@ -143,13 +138,6 @@ if (Vulkan_FOUND)
143138 # Always use ExternalProject_Add approach
144139 include (ExternalProject)
145140
146- # Construct CMake arguments
147- set (VULKAN_SHADER_GEN_CMAKE_ARGS
148- -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}
149- -DVULKAN_SHADER_EXTENSIONS_FILE=${CMAKE_CURRENT_BINARY_DIR} /vulkan-shader-extension-defs.cmake
150- -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
151- )
152-
153141 # Add toolchain file if cross-compiling
154142 if (CMAKE_CROSSCOMPILING )
155143 list (APPEND VULKAN_SHADER_GEN_CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${HOST_CMAKE_TOOLCHAIN_FILE} )
0 commit comments