@@ -40,8 +40,8 @@ bool Device::manual_PreCallValidateCreateImage(VkDevice device, const VkImageCre
4040 return skip;
4141 }
4242 const Location create_info_loc = error_obj.location .dot (Field::pCreateInfo);
43- const Location create_flags_loc = GetImageCreateInfoFlagsLocation ( pCreateInfo-> pNext , create_info_loc);
44- const Location usage_loc = GetImageCreateInfoUsageLocation ( pCreateInfo-> pNext , create_info_loc);
43+ const Location create_flags_loc = GetFlagsLocation (* pCreateInfo, create_info_loc);
44+ const Location usage_loc = GetUsageLocation (* pCreateInfo, create_info_loc);
4545 const VkImageCreateFlags create_flags = GetImageCreateFlags (*pCreateInfo);
4646 const VkImageUsageFlags usage = GetImageUsageFlags (*pCreateInfo);
4747
@@ -90,20 +90,20 @@ bool Device::manual_PreCallValidateCreateImage(VkDevice device, const VkImageCre
9090
9191 if (create_flags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT) {
9292 if (pCreateInfo->imageType != VK_IMAGE_TYPE_2D) {
93- skip |= LogError (" VUID-VkImageCreateInfo-flags-00949" , device, create_info_loc. dot (Field::flags) ,
93+ skip |= LogError (" VUID-VkImageCreateInfo-flags-00949" , device, create_flags_loc ,
9494 " includes VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT but imageType (%s) is not VK_IMAGE_TYPE_2D." ,
9595 string_VkImageType (pCreateInfo->imageType ));
9696 }
9797
9898 if (pCreateInfo->extent .width != pCreateInfo->extent .height ) {
99- skip |= LogError (" VUID-VkImageCreateInfo-flags-08865" , device, create_info_loc. dot (Field::flags) ,
99+ skip |= LogError (" VUID-VkImageCreateInfo-flags-08865" , device, create_flags_loc ,
100100 " includes VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT but extent.width (%" PRIu32
101101 " ) is not equal to extent.height (%" PRIu32 " )." ,
102102 pCreateInfo->extent .width , pCreateInfo->extent .height );
103103 }
104104
105105 if (pCreateInfo->arrayLayers < 6 ) {
106- skip |= LogError (" VUID-VkImageCreateInfo-flags-08866" , device, create_info_loc. dot (Field::flags) ,
106+ skip |= LogError (" VUID-VkImageCreateInfo-flags-08866" , device, create_flags_loc ,
107107 " includes VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT but arrayLayers (%" PRIu32 " ) is less than 6." ,
108108 pCreateInfo->arrayLayers );
109109 }
@@ -151,14 +151,14 @@ bool Device::manual_PreCallValidateCreateImage(VkDevice device, const VkImageCre
151151 }
152152
153153 if ((create_flags & VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT) && (pCreateInfo->imageType != VK_IMAGE_TYPE_3D)) {
154- skip |= LogError (" VUID-VkImageCreateInfo-flags-00950" , device, create_info_loc. dot (Field::flags) ,
154+ skip |= LogError (" VUID-VkImageCreateInfo-flags-00950" , device, create_flags_loc ,
155155 " includes VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT but "
156156 " imageType is %s." ,
157157 string_VkImageType (pCreateInfo->imageType ));
158158 }
159159
160160 if ((create_flags & VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT) && (pCreateInfo->imageType != VK_IMAGE_TYPE_3D)) {
161- skip |= LogError (" VUID-VkImageCreateInfo-flags-07755" , device, create_info_loc. dot (Field::flags) ,
161+ skip |= LogError (" VUID-VkImageCreateInfo-flags-07755" , device, create_flags_loc ,
162162 " includes VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT but "
163163 " imageType is %s." ,
164164 string_VkImageType (pCreateInfo->imageType ));
@@ -538,6 +538,7 @@ bool Device::ValidateCreateImageStencilUsage(const VkImageCreateInfo& create_inf
538538 if (!stencil_usage_opt.has_value ()) {
539539 return skip;
540540 }
541+ Location stencil_usage_loc = create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage);
541542 const VkImageUsageFlags stencil_usage = stencil_usage_opt.value ();
542543
543544 if ((stencil_usage & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) != 0 ) {
@@ -546,25 +547,22 @@ bool Device::ValidateCreateImageStencilUsage(const VkImageCreateInfo& create_inf
546547 if ((stencil_usage & ~legal_flags) != 0 ) {
547548 // Todo, update when VkImageStencilUsage2CreateInfoKHR VUID gets a number
548549 const char * vuid = " VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539" ;
549- skip |= LogError (vuid, device, create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage),
550- " is %s." , string_VkImageUsageFlags (stencil_usage).c_str ());
550+ skip |= LogError (vuid, device, stencil_usage_loc, " is %s." , string_VkImageUsageFlags (stencil_usage).c_str ());
551551 }
552552 }
553553
554554 if (vkuFormatIsDepthOrStencil (create_info.format )) {
555555 if ((stencil_usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT) != 0 ) {
556556 if (create_info.extent .width > phys_dev_props.limits .maxFramebufferWidth ) {
557- skip |= LogError (" VUID-VkImageCreateInfo-Format-02536" , device,
558- create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage),
557+ skip |= LogError (" VUID-VkImageCreateInfo-Format-02536" , device, stencil_usage_loc,
559558 " includes VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT and image width (%" PRIu32
560559 " ) exceeds device "
561560 " maxFramebufferWidth (%" PRIu32 " )" ,
562561 create_info.extent .width , phys_dev_props.limits .maxFramebufferWidth );
563562 }
564563
565564 if (create_info.extent .height > phys_dev_props.limits .maxFramebufferHeight ) {
566- skip |= LogError (" VUID-VkImageCreateInfo-format-02537" , device,
567- create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage),
565+ skip |= LogError (" VUID-VkImageCreateInfo-format-02537" , device, stencil_usage_loc,
568566 " includes VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT and image height (%" PRIu32
569567 " ) exceeds device "
570568 " maxFramebufferHeight (%" PRIu32 " )" ,
@@ -574,8 +572,7 @@ bool Device::ValidateCreateImageStencilUsage(const VkImageCreateInfo& create_inf
574572
575573 if (!enabled_features.shaderStorageImageMultisample && ((stencil_usage & VK_IMAGE_USAGE_STORAGE_BIT) != 0 ) &&
576574 (create_info.samples != VK_SAMPLE_COUNT_1_BIT)) {
577- skip |= LogError (" VUID-VkImageCreateInfo-format-02538" , device,
578- create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage),
575+ skip |= LogError (" VUID-VkImageCreateInfo-format-02538" , device, stencil_usage_loc,
579576 " includes VK_IMAGE_USAGE_STORAGE_BIT and format is %s and samples is %s, but "
580577 " shaderStorageImageMultisample feature was not enabled." ,
581578 string_VkFormat (create_info.format ), string_VkSampleCountFlagBits (create_info.samples ));
@@ -585,28 +582,24 @@ bool Device::ValidateCreateImageStencilUsage(const VkImageCreateInfo& create_inf
585582 ((stencil_usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) == 0 )) {
586583 skip |= LogError (" VUID-VkImageCreateInfo-format-02795" , device, usage_loc, " is (%s), format is %s, and %s is %s" ,
587584 string_VkImageUsageFlags (usage).c_str (), string_VkFormat (create_info.format ),
588- create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage).Fields ().c_str (),
589- string_VkImageUsageFlags (stencil_usage).c_str ());
585+ stencil_usage_loc.Fields ().c_str (), string_VkImageUsageFlags (stencil_usage).c_str ());
590586 } else if (((usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) == 0 ) &&
591587 ((stencil_usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) != 0 )) {
592588 skip |= LogError (" VUID-VkImageCreateInfo-format-02796" , device, usage_loc, " is (%s), format is %s, and %s is %s" ,
593589 string_VkImageUsageFlags (usage).c_str (), string_VkFormat (create_info.format ),
594- create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage).Fields ().c_str (),
595- string_VkImageUsageFlags (stencil_usage).c_str ());
590+ stencil_usage_loc.Fields ().c_str (), string_VkImageUsageFlags (stencil_usage).c_str ());
596591 }
597592
598593 if (((usage & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) != 0 ) &&
599594 ((stencil_usage & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) == 0 )) {
600595 skip |= LogError (" VUID-VkImageCreateInfo-format-02797" , device, usage_loc, " is (%s), format is %s, and %s is %s" ,
601596 string_VkImageUsageFlags (usage).c_str (), string_VkFormat (create_info.format ),
602- create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage).Fields ().c_str (),
603- string_VkImageUsageFlags (stencil_usage).c_str ());
597+ stencil_usage_loc.Fields ().c_str (), string_VkImageUsageFlags (stencil_usage).c_str ());
604598 } else if (((usage & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) == 0 ) &&
605599 ((stencil_usage & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) != 0 )) {
606600 skip |= LogError (" VUID-VkImageCreateInfo-format-02798" , device, usage_loc, " is (%s), format is %s, and %s is %s" ,
607601 string_VkImageUsageFlags (usage).c_str (), string_VkFormat (create_info.format ),
608- create_info_loc.pNext (Struct::VkImageStencilUsageCreateInfo, Field::stencilUsage).Fields ().c_str (),
609- string_VkImageUsageFlags (stencil_usage).c_str ());
602+ stencil_usage_loc.Fields ().c_str (), string_VkImageUsageFlags (stencil_usage).c_str ());
610603 }
611604 }
612605
0 commit comments