[Vulkan] Fix several bugs about `RenderPassCreateInfo2`

This patch fixes several bugs about `RenderPassCreateInfo2`.
1. Set missing `VkAttachmentReference2.aspectMask` for
  `inputAttachmentRefs`
  (VUID-VkRenderPassCreateInfo2-attachment-02525)
2. Fix incorrect assignment on `subpassDependencies`. `dependency`
  should be a pointer instead of a reference to point to different
  items in `passInfo.subpassDependencies`.

With this patch below test failure on current Windows Intel UHD770 bots
will pass when Vulkan validation layer is enabled:
DawnLoadResolveTextureTest.DrawThenLoadNonZeroIndexedAttachment

Bug: 463893793
Change-Id: I0d5b90032a3f4e524e6c04b5e1c3cdf0141dbd98
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/285715
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shao, Jiawei <jiawei.shao@intel.com>
Reviewed-by: Loko Kung <lokokung@google.com>
diff --git a/src/dawn/native/vulkan/RenderPassCache.cpp b/src/dawn/native/vulkan/RenderPassCache.cpp
index 6a948ef..e2d83a5 100644
--- a/src/dawn/native/vulkan/RenderPassCache.cpp
+++ b/src/dawn/native/vulkan/RenderPassCache.cpp
@@ -27,6 +27,7 @@
 
 #include "dawn/native/vulkan/RenderPassCache.h"
 
+#include <concepts>
 #include <vector>
 
 #include "absl/container/inlined_vector.h"
@@ -210,6 +211,9 @@
 
             passInfo.inputAttachmentRefs[i].attachment = resolveAttachmentRef.attachment;
             passInfo.inputAttachmentRefs[i].layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+            if constexpr (std::same_as<InfoType, RenderPassCreateInfo2>) {
+                passInfo.inputAttachmentRefs[i].aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
+            }
 
             highestInputAttachmentIndex = i;
         } else {
@@ -240,26 +244,26 @@
         subpassCount++;
 
         // Dependency for resolve texture's read -> resolve texture's write.
-        auto& dependency = passInfo.subpassDependencies[dependencyCount];
-        dependency.srcSubpass = 0;
-        dependency.dstSubpass = 1;
-        dependency.srcStageMask = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
-        dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
-        dependency.srcAccessMask = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT;
-        dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
-        dependency.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
+        auto* dependency = &passInfo.subpassDependencies[dependencyCount];
+        dependency->srcSubpass = 0;
+        dependency->dstSubpass = 1;
+        dependency->srcStageMask = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+        dependency->dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
+        dependency->srcAccessMask = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT;
+        dependency->dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
+        dependency->dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
         dependencyCount++;
 
         // Dependency for color write in subpass 0 -> color write in subpass 1
-        dependency = passInfo.subpassDependencies[dependencyCount];
-        dependency.srcSubpass = 0;
-        dependency.dstSubpass = 1;
-        dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
-        dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
-        dependency.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
-        dependency.dstAccessMask =
+        dependency = &passInfo.subpassDependencies[dependencyCount];
+        dependency->srcSubpass = 0;
+        dependency->dstSubpass = 1;
+        dependency->srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
+        dependency->dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
+        dependency->srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
+        dependency->dstAccessMask =
             VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
-        dependency.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
+        dependency->dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
         dependencyCount++;
     }