Add PrintValue specialization for Vector4i

Also change the VSCode settings to assume debug flags are enabled.

Change-Id: I3656567c8441a3f7232fe104a9284a85070d8a4e
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71468
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
index a0faf9e..32bda13 100644
--- a/.vscode/c_cpp_properties.json
+++ b/.vscode/c_cpp_properties.json
@@ -5,6 +5,7 @@
             "defines": [
                 "ENABLE_VK_DEBUGGER=1",
                 "ENABLE_RR_DEBUG_INFO=1",
+                "ENABLE_RR_PRINT=1",
                 "VERIFY_LLVM_IR=1"
             ],
             "includePath": [
@@ -28,6 +29,7 @@
             "defines": [
                 "ENABLE_VK_DEBUGGER=1",
                 "ENABLE_RR_DEBUG_INFO=1",
+                "ENABLE_RR_PRINT=1",
                 "VERIFY_LLVM_IR=1"
             ],
             "includePath": [
@@ -51,6 +53,7 @@
             "defines": [
                 "ENABLE_VK_DEBUGGER=1",
                 "ENABLE_RR_DEBUG_INFO=1",
+                "ENABLE_RR_PRINT=1",
                 "VERIFY_LLVM_IR=1"
             ],
             "includePath": [
@@ -70,4 +73,4 @@
         }
     ],
     "version": 4
-}
\ No newline at end of file
+}
diff --git a/src/Pipeline/ShaderCore.hpp b/src/Pipeline/ShaderCore.hpp
index 894291a..2449573 100644
--- a/src/Pipeline/ShaderCore.hpp
+++ b/src/Pipeline/ShaderCore.hpp
@@ -318,6 +318,22 @@
 		return PrintValue::vals(v.x, v.y, v.z, v.w);
 	}
 };
+template<>
+struct PrintValue::Ty<sw::Vector4i>
+{
+	static std::string fmt(const sw::Vector4i &v)
+	{
+		return "[x: " + PrintValue::fmt(v.x) +
+		       ", y: " + PrintValue::fmt(v.y) +
+		       ", z: " + PrintValue::fmt(v.z) +
+		       ", w: " + PrintValue::fmt(v.w) + "]";
+	}
+
+	static std::vector<rr::Value *> val(const sw::Vector4i &v)
+	{
+		return PrintValue::vals(v.x, v.y, v.z, v.w);
+	}
+};
 }  // namespace rr
 #endif  // ENABLE_RR_PRINT
 
diff --git a/src/Pipeline/SpirvShaderDebug.hpp b/src/Pipeline/SpirvShaderDebug.hpp
index 66a7ca3..7dc4c58 100644
--- a/src/Pipeline/SpirvShaderDebug.hpp
+++ b/src/Pipeline/SpirvShaderDebug.hpp
@@ -17,7 +17,7 @@
 
 #include "SpirvShader.hpp"
 
-// Enable this to print verbose debug messages as each SPIR-V instructon is
+// Enable this to print verbose debug messages as each SPIR-V instruction is
 // executed. Very handy for performing text diffs when the thread count is
 // reduced to 1 and execution is deterministic.
 #define SPIRV_SHADER_ENABLE_DBG 0