Implement VK_EXT_load_store_op_none

We currently don't discard any content between subpasses, so this is
a no-op aside from allowing the new VK_ATTACHMENT_LOAD_OP_NONE_EXT enum.

Note we write directly into the attachment, so we don't do anything for
any of the VkAttachmentStoreOp enums, including the new
VK_ATTACHMENT_STORE_OP_NONE_EXT.

Bug: b/192088265
Change-Id: Id4ae69082e19c4590a9b17a0951b8e7ae6a123ac
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/56630
Tested-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Vulkan/VkFramebuffer.cpp b/src/Vulkan/VkFramebuffer.cpp
index 4235fc1..2f75d7c 100644
--- a/src/Vulkan/VkFramebuffer.cpp
+++ b/src/Vulkan/VkFramebuffer.cpp
@@ -90,6 +90,7 @@
 			break;
 		case VK_ATTACHMENT_LOAD_OP_LOAD:
 		case VK_ATTACHMENT_LOAD_OP_DONT_CARE:
+		case VK_ATTACHMENT_LOAD_OP_NONE_EXT:
 			// Don't clear the attachment's color or depth aspect.
 			break;
 		default:
@@ -103,6 +104,7 @@
 			break;
 		case VK_ATTACHMENT_LOAD_OP_LOAD:
 		case VK_ATTACHMENT_LOAD_OP_DONT_CARE:
+		case VK_ATTACHMENT_LOAD_OP_NONE_EXT:
 			// Don't clear the attachment's stencil aspect.
 			break;
 		default:
diff --git a/src/Vulkan/libVulkan.cpp b/src/Vulkan/libVulkan.cpp
index 110e344..c42ca2d4 100644
--- a/src/Vulkan/libVulkan.cpp
+++ b/src/Vulkan/libVulkan.cpp
@@ -353,6 +353,7 @@
 	{ { VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION } },
 	{ { VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION } },
 	{ { VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION } },
+	{ { VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME, VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION } },
 	// Only 1.1 core version of this is supported. The extension has additional requirements
 	//{{ VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION }},
 	{ { VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME, VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION } },