mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	cmake: fix paths for vulkan shaders compilation on Windows (#8573)
* Vulkan-shaders: attempt fix compilation on windows * fix miss-matched parenthesis
This commit is contained in:
		| @@ -179,11 +179,7 @@ bool string_ends_with(const std::string& str, const std::string& suffix) { | |||||||
|     return std::equal(suffix.rbegin(), suffix.rend(), str.rbegin()); |     return std::equal(suffix.rbegin(), suffix.rend(), str.rbegin()); | ||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef _WIN32 | static const char path_separator = '/'; | ||||||
|     static const char path_separator = '\\'; |  | ||||||
| #else |  | ||||||
|     static const char path_separator = '/'; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| std::string join_paths(const std::string& path1, const std::string& path2) { | std::string join_paths(const std::string& path1, const std::string& path2) { | ||||||
|     return path1 + path_separator + path2; |     return path1 + path_separator + path2; | ||||||
| @@ -198,7 +194,11 @@ void string_to_spv(const std::string& _name, const std::string& in_fname, const | |||||||
|     std::string out_fname = join_paths(output_dir, name + ".spv"); |     std::string out_fname = join_paths(output_dir, name + ".spv"); | ||||||
|     std::string in_path = join_paths(input_dir, in_fname); |     std::string in_path = join_paths(input_dir, in_fname); | ||||||
|  |  | ||||||
|  |     #ifdef _WIN32 | ||||||
|  |         std::vector<std::string> cmd = {GLSLC, "-fshader-stage=compute", "--target-env=vulkan1.2", "-O", "\"" + in_path + "\"", "-o", "\"" + out_fname + "\""}; | ||||||
|  |     #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 | ||||||
|     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); | ||||||
|     } |     } | ||||||
| @@ -482,10 +482,16 @@ void write_output_files() { | |||||||
|  |  | ||||||
|     for (const auto& pair : shader_fnames) { |     for (const auto& pair : shader_fnames) { | ||||||
|         const std::string& name = pair.first; |         const std::string& name = pair.first; | ||||||
|  |         #ifdef _WIN32 | ||||||
|  |             std::string path = pair.second; | ||||||
|  |             std::replace(path.begin(), path.end(), '/', '\\' ); | ||||||
|  |         #else | ||||||
|             const std::string& path = pair.second; |             const std::string& path = pair.second; | ||||||
|  |         #endif | ||||||
|  |  | ||||||
|         FILE* spv = fopen(path.c_str(), "rb"); |         FILE* spv = fopen(path.c_str(), "rb"); | ||||||
|         if (!spv) { |         if (!spv) { | ||||||
|             std::cerr << "Error opening SPIR-V file: " << path << "\n"; |             std::cerr << "Error opening SPIR-V file: " << path << " (" << strerror(errno) << ")\n"; | ||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -497,7 +503,7 @@ void write_output_files() { | |||||||
|         size_t read_size = fread(data.data(), 1, size, spv); |         size_t read_size = fread(data.data(), 1, size, spv); | ||||||
|         fclose(spv); |         fclose(spv); | ||||||
|         if (read_size != size) { |         if (read_size != size) { | ||||||
|             std::cerr << "Error reading SPIR-V file: " << path << "\n"; |             std::cerr << "Error reading SPIR-V file: " << path << " (" << strerror(errno) << ")\n"; | ||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 stduhpf
					stduhpf