spirv-val: Label VUID 04780 (#4334)

diff --git a/source/val/validate_image.cpp b/source/val/validate_image.cpp
index 2ece572..e5968d0 100644
--- a/source/val/validate_image.cpp
+++ b/source/val/validate_image.cpp
@@ -1510,8 +1510,8 @@
   if (spvIsVulkanEnv(target_env)) {
     if (_.GetDimension(actual_result_type) != 4) {
       return _.diag(SPV_ERROR_INVALID_DATA, inst)
-             << "Expected " << GetActualResultTypeStr(opcode)
-             << " to have 4 components";
+             << _.VkErrorID(4780) << "Expected "
+             << GetActualResultTypeStr(opcode) << " to have 4 components";
     }
   }  // Check OpenCL below, after we get the image info.
 
diff --git a/source/val/validation_state.cpp b/source/val/validation_state.cpp
index ba7e8fe..5282163 100644
--- a/source/val/validation_state.cpp
+++ b/source/val/validation_state.cpp
@@ -1825,6 +1825,8 @@
       return VUID_WRAP(VUID-StandaloneSpirv-OpMemoryBarrier-04732);
     case 4733:
       return VUID_WRAP(VUID-StandaloneSpirv-OpMemoryBarrier-04733);
+    case 4780:
+      return VUID_WRAP(VUID-StandaloneSpirv-Result-04780);
     default:
       return "";  // unknown id
   }
diff --git a/test/val/val_image_test.cpp b/test/val/val_image_test.cpp
index 4d57b26..701e35e 100644
--- a/test/val/val_image_test.cpp
+++ b/test/val/val_image_test.cpp
@@ -3389,6 +3389,8 @@
           .c_str());
   ASSERT_EQ(SPV_ERROR_INVALID_DATA, ValidateInstructions(SPV_ENV_VULKAN_1_0));
   EXPECT_THAT(getDiagnosticString(),
+              AnyVUID("VUID-StandaloneSpirv-Result-04780"));
+  EXPECT_THAT(getDiagnosticString(),
               HasSubstr("Expected Result Type to have 4 components"));
 }