Skip to content

fix: use the current build config for vulkan-shaders-gen #13595

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 17, 2025

Conversation

giladgd
Copy link
Contributor

@giladgd giladgd commented May 17, 2025

This solves an issue where when building on Windows on Arm with a Release config, vulkan-shaders-gen is built with Debug config (since no config is set), so the built binary is placed on an output folder that cmake doesn't expect, which then fails to run the built vulkan-shaders-gen.

@github-actions github-actions bot added Vulkan Issues specific to the Vulkan backend ggml changes relating to the ggml tensor library for machine learning labels May 17, 2025
@0cc4m 0cc4m requested a review from bandoti May 17, 2025 13:42
@@ -149,7 +154,7 @@ if (Vulkan_FOUND)
vulkan-shaders-gen
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders
CMAKE_ARGS ${VULKAN_SHADER_GEN_CMAKE_ARGS}
BUILD_COMMAND ${CMAKE_COMMAND} --build .
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${VULKAN_SHADER_GEN_CMAKE_BUILD_ARGS}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of passing these arguments as a build switch, I am wondering if we should instead add more flags to CMAKE_ARGS to control these things at generation time. For example:

# Pass additional important variables
if(CMAKE_CONFIGURATION_TYPES)
    # Multi-configuration generator case (Visual Studio, Xcode)
    list(APPEND VULKAN_SHADER_GEN_CMAKE_ARGS
        -DCMAKE_CONFIGURATION_TYPES="${CMAKE_CONFIGURATION_TYPES}")
else()
    # Single-configuration generator case (Makefile, Ninja)
    if(CMAKE_BUILD_TYPE)
        list(APPEND VULKAN_SHADER_GEN_CMAKE_ARGS
            -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
    endif()
endif()

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doing that way my first try, but it didn't seem to affect the output folder.
With the current build type being Release and a -DCMAKE_BUILD_TYPE=Release flag in VULKAN_SHADER_GEN_CMAKE_ARGS, the output was still being put in a Debug directory.

BTW do we use the vulkan-shaders-gen binary after using it once here?
If we don't need it afterwards, it may be a good idea to remove it later from the output directory.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah okay, well if you tried it already and the current change is working then I'm happy to approve the change as-is.

We want to keep that binary in there in case one wants to run it afterward manually I think. If it's not impeding anything to keep it around it should be fine.

@bandoti bandoti merged commit e3a7cf6 into ggml-org:master May 17, 2025
46 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ggml changes relating to the ggml tensor library for machine learning Vulkan Issues specific to the Vulkan backend
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants