VkPipeline: Use vk::warn for spirv-opt warnings / errors

vk::trace is pretty much a no-op, and hides warnings and errors.
If we do get an error, spirv-opt tends to eat the SPIR-V, leading to a cryptic 'ASSERT(code.size() > 0)' crash.

Bug: b/139424793
Change-Id: Ie6f3819265ad0e32e85d4c6b1824d263d9fde02f
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/35209
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
diff --git a/src/Vulkan/VkPipeline.cpp b/src/Vulkan/VkPipeline.cpp
index e6bb5be..cdfc887 100644
--- a/src/Vulkan/VkPipeline.cpp
+++ b/src/Vulkan/VkPipeline.cpp
@@ -163,17 +163,16 @@
 	spvtools::Optimizer opt{SPV_ENV_VULKAN_1_1};
 
 	opt.SetMessageConsumer([](spv_message_level_t level, const char*, const spv_position_t& p, const char* m) {
-		const char* category = "";
 		switch (level)
 		{
-		case SPV_MSG_FATAL:          category = "FATAL";          break;
-		case SPV_MSG_INTERNAL_ERROR: category = "INTERNAL_ERROR"; break;
-		case SPV_MSG_ERROR:          category = "ERROR";          break;
-		case SPV_MSG_WARNING:        category = "WARNING";        break;
-		case SPV_MSG_INFO:           category = "INFO";           break;
-		case SPV_MSG_DEBUG:          category = "DEBUG";          break;
+		case SPV_MSG_FATAL:          vk::warn("SPIR-V FATAL: %d:%d %s", int(p.line), int(p.column), m);
+		case SPV_MSG_INTERNAL_ERROR: vk::warn("SPIR-V INTERNAL_ERROR: %d:%d %s", int(p.line), int(p.column), m);
+		case SPV_MSG_ERROR:          vk::warn("SPIR-V ERROR: %d:%d %s", int(p.line), int(p.column), m);
+		case SPV_MSG_WARNING:        vk::warn("SPIR-V WARNING: %d:%d %s", int(p.line), int(p.column), m);
+		case SPV_MSG_INFO:           vk::trace("SPIR-V INFO: %d:%d %s", int(p.line), int(p.column), m);
+		case SPV_MSG_DEBUG:          vk::trace("SPIR-V DEBUG: %d:%d %s", int(p.line), int(p.column), m);
+		default:                     vk::trace("SPIR-V MESSAGE: %d:%d %s", int(p.line), int(p.column), m);
 		}
-		vk::trace("%s: %d:%d %s", category, int(p.line), int(p.column), m);
 	});
 
 	// If the pipeline uses specialization, apply the specializations before freezing