Update SPIR-V version to VK_1_1_SPV_1_4

SPIR-V 1.4 is coupled with Vulkan 1.2 to introduce a core extension
that exposes float controls and new OpExecutionMode arguments for
controlling floating point behavior. Those Execution Modes are only
legal if the implementation says it supports them in the
FloatControlsProperties struct. SPIR-V 1.4 also adds some operands
and a few new opcodes.

This version update tells SPIR-V tools to allow behavior created to
support version 1.4, like uniform buffer standard packing. It also
exposes the Vulkan extension for SPIR-V 1.4.

Bug: b/173046235
Tests: dEQP-VK.*
Change-Id: I4bb387fd7ba4695babff3edbcaabca583c4fdde1
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/50228
Tested-by: Sean Risser <srisser@google.com>
Commit-Queue: Sean Risser <srisser@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Vulkan/VkConfig.hpp b/src/Vulkan/VkConfig.hpp
index 644c3de..5838736 100644
--- a/src/Vulkan/VkConfig.hpp
+++ b/src/Vulkan/VkConfig.hpp
@@ -27,7 +27,7 @@
 #define SWIFTSHADER_DEVICE_NAME "SwiftShader Device"  // Max length: VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
 #define SWIFTSHADER_UUID "SwiftShaderUUID"            // Max length: VK_UUID_SIZE (16)
 
-const spv_target_env SPIRV_VERSION = SPV_ENV_VULKAN_1_1;
+const spv_target_env SPIRV_VERSION = SPV_ENV_VULKAN_1_1_SPIRV_1_4;
 
 enum
 {
diff --git a/src/Vulkan/libVulkan.cpp b/src/Vulkan/libVulkan.cpp
index ce8dad1..7abeb3f 100644
--- a/src/Vulkan/libVulkan.cpp
+++ b/src/Vulkan/libVulkan.cpp
@@ -399,7 +399,8 @@
 	{ VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME, VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION },
 	{ VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION },
 	{ VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION },
-	{ VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION }
+	{ VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION },
+	{ VK_KHR_SPIRV_1_4_EXTENSION_NAME, VK_KHR_SPIRV_1_4_SPEC_VERSION },
 };
 
 static bool hasExtension(const char *extensionName, const VkExtensionProperties *extensionProperties, uint32_t extensionPropertiesCount)