Improve Vulkan shader builds system
- Add dependency to vulkan-shaders-gen to rebuild shaders when changing the shader compilation utility. - Add option to generate debug info for Vulkan shaders to provide shader source to Vulkan shader profiling tools
This commit is contained in:
parent
1d1ccce676
commit
cbf67e6b3d
3 changed files with 11 additions and 1 deletions
|
@ -135,6 +135,7 @@ option(GGML_VULKAN "ggml: use Vulkan"
|
||||||
option(GGML_VULKAN_CHECK_RESULTS "ggml: run Vulkan op checks" OFF)
|
option(GGML_VULKAN_CHECK_RESULTS "ggml: run Vulkan op checks" OFF)
|
||||||
option(GGML_VULKAN_DEBUG "ggml: enable Vulkan debug output" OFF)
|
option(GGML_VULKAN_DEBUG "ggml: enable Vulkan debug output" OFF)
|
||||||
option(GGML_VULKAN_MEMORY_DEBUG "ggml: enable Vulkan memory debug output" OFF)
|
option(GGML_VULKAN_MEMORY_DEBUG "ggml: enable Vulkan memory debug output" OFF)
|
||||||
|
option(GGML_VULKAN_SHADER_DEBUG_INFO "ggml: enable Vulkan shader debug info" OFF)
|
||||||
option(GGML_VULKAN_PERF "ggml: enable Vulkan perf output" OFF)
|
option(GGML_VULKAN_PERF "ggml: enable Vulkan perf output" OFF)
|
||||||
option(GGML_VULKAN_VALIDATE "ggml: enable Vulkan validation" OFF)
|
option(GGML_VULKAN_VALIDATE "ggml: enable Vulkan validation" OFF)
|
||||||
option(GGML_VULKAN_RUN_TESTS "ggml: run Vulkan tests" OFF)
|
option(GGML_VULKAN_RUN_TESTS "ggml: run Vulkan tests" OFF)
|
||||||
|
|
|
@ -612,6 +612,10 @@ if (GGML_VULKAN)
|
||||||
add_compile_definitions(GGML_VULKAN_MEMORY_DEBUG)
|
add_compile_definitions(GGML_VULKAN_MEMORY_DEBUG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (GGML_VULKAN_SHADER_DEBUG_INFO)
|
||||||
|
add_compile_definitions(GGML_VULKAN_SHADER_DEBUG_INFO)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (GGML_VULKAN_PERF)
|
if (GGML_VULKAN_PERF)
|
||||||
add_compile_definitions(GGML_VULKAN_PERF)
|
add_compile_definitions(GGML_VULKAN_PERF)
|
||||||
endif()
|
endif()
|
||||||
|
@ -646,7 +650,7 @@ if (GGML_VULKAN)
|
||||||
--target-cpp ${_ggml_vk_source}
|
--target-cpp ${_ggml_vk_source}
|
||||||
--no-clean
|
--no-clean
|
||||||
|
|
||||||
DEPENDS ${_ggml_vk_shader_deps}
|
DEPENDS vulkan-shaders-gen ${_ggml_vk_shader_deps}
|
||||||
COMMENT "Generate vulkan shaders"
|
COMMENT "Generate vulkan shaders"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -200,6 +200,11 @@ void string_to_spv(const std::string& _name, const std::string& in_fname, const
|
||||||
#else
|
#else
|
||||||
std::vector<std::string> cmd = {GLSLC, "-fshader-stage=compute", "--target-env=vulkan1.2", "-O", in_path, "-o", out_fname};
|
std::vector<std::string> cmd = {GLSLC, "-fshader-stage=compute", "--target-env=vulkan1.2", "-O", in_path, "-o", out_fname};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GGML_VULKAN_SHADER_DEBUG_INFO
|
||||||
|
cmd.push_back("-g");
|
||||||
|
#endif
|
||||||
|
|
||||||
for (const auto& define : defines) {
|
for (const auto& define : defines) {
|
||||||
cmd.push_back("-D" + define.first + "=" + define.second);
|
cmd.push_back("-D" + define.first + "=" + define.second);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue