mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	Improve Vulkan shader build system (#9239)
* 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
This commit is contained in:
		| @@ -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() | ||||||
|   | |||||||
| @@ -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); | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Markus Tavenrath
					Markus Tavenrath