Markus Tavenrath commited on
Commit
9746f77
·
1 Parent(s): d1c244a

Improve Vulkan shader build system (llama/9239)

Browse files

* 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

* remove not required self dependency

ggml/CMakeLists.txt CHANGED
@@ -135,6 +135,7 @@ option(GGML_VULKAN "ggml: use Vulkan"
135
  option(GGML_VULKAN_CHECK_RESULTS "ggml: run Vulkan op checks" OFF)
136
  option(GGML_VULKAN_DEBUG "ggml: enable Vulkan debug output" OFF)
137
  option(GGML_VULKAN_MEMORY_DEBUG "ggml: enable Vulkan memory debug output" OFF)
 
138
  option(GGML_VULKAN_PERF "ggml: enable Vulkan perf output" OFF)
139
  option(GGML_VULKAN_VALIDATE "ggml: enable Vulkan validation" OFF)
140
  option(GGML_VULKAN_RUN_TESTS "ggml: run Vulkan tests" OFF)
 
135
  option(GGML_VULKAN_CHECK_RESULTS "ggml: run Vulkan op checks" OFF)
136
  option(GGML_VULKAN_DEBUG "ggml: enable Vulkan debug output" OFF)
137
  option(GGML_VULKAN_MEMORY_DEBUG "ggml: enable Vulkan memory debug output" OFF)
138
+ option(GGML_VULKAN_SHADER_DEBUG_INFO "ggml: enable Vulkan shader debug info" OFF)
139
  option(GGML_VULKAN_PERF "ggml: enable Vulkan perf output" OFF)
140
  option(GGML_VULKAN_VALIDATE "ggml: enable Vulkan validation" OFF)
141
  option(GGML_VULKAN_RUN_TESTS "ggml: run Vulkan tests" OFF)
ggml/src/CMakeLists.txt CHANGED
@@ -612,6 +612,10 @@ if (GGML_VULKAN)
612
  add_compile_definitions(GGML_VULKAN_MEMORY_DEBUG)
613
  endif()
614
 
 
 
 
 
615
  if (GGML_VULKAN_PERF)
616
  add_compile_definitions(GGML_VULKAN_PERF)
617
  endif()
 
612
  add_compile_definitions(GGML_VULKAN_MEMORY_DEBUG)
613
  endif()
614
 
615
+ if (GGML_VULKAN_SHADER_DEBUG_INFO)
616
+ add_compile_definitions(GGML_VULKAN_SHADER_DEBUG_INFO)
617
+ endif()
618
+
619
  if (GGML_VULKAN_PERF)
620
  add_compile_definitions(GGML_VULKAN_PERF)
621
  endif()
ggml/src/vulkan-shaders/vulkan-shaders-gen.cpp CHANGED
@@ -200,6 +200,11 @@ void string_to_spv(const std::string& _name, const std::string& in_fname, const
200
  #else
201
  std::vector<std::string> cmd = {GLSLC, "-fshader-stage=compute", "--target-env=vulkan1.2", "-O", in_path, "-o", out_fname};
202
  #endif
 
 
 
 
 
203
  for (const auto& define : defines) {
204
  cmd.push_back("-D" + define.first + "=" + define.second);
205
  }
 
200
  #else
201
  std::vector<std::string> cmd = {GLSLC, "-fshader-stage=compute", "--target-env=vulkan1.2", "-O", in_path, "-o", out_fname};
202
  #endif
203
+
204
+ #ifdef GGML_VULKAN_SHADER_DEBUG_INFO
205
+ cmd.push_back("-g");
206
+ #endif
207
+
208
  for (const auto& define : defines) {
209
  cmd.push_back("-D" + define.first + "=" + define.second);
210
  }