Add dynamicrenderinglocalread to iOS subproject#1268
Conversation
|
FYI, another way to handle this could be to move the attachment resize logic out of Given that it looks like a stylistic thing vs. functional, I decided to leave things alone and just use the |
|
Limited PR to adding dynamicrenderinglocalread example to iOS subproject and iOS Simulator. Resize logic now handled by changes within master branch. |
|
Updated PR to include validation error fixes for dynamicrenderinglocalread. |
| .sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO, | ||
| .imageView = imageViewList[i], | ||
| .imageLayout = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR, | ||
| .imageLayout = (i == 0) ? VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL : VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR, |
There was a problem hiding this comment.
I don't think this needs fixing. IMO this is a false positive and I've raised an issue in the VVL repo about this.
There was a problem hiding this comment.
Interesting. Referring to your issue KhronosGroup/Vulkan-ValidationLayers#12039 where you discuss VK_ATTACHMENT_UNUSED, do you think this requires the VK_EXT_dynamic_rendering_unused_attachments extension to make this work for dynamic rendering?
MoltenVK does not support this extension so I can't test there. However, I will try on my Windows 11 and linux machines to see if my AMD card supports it, and report back later.
There was a problem hiding this comment.
Scratch that idea re the VK_EXT_dynamic_rendering_unused_attachments extension. Looks like that is for adapting to multiple pipelines where you can have an unused attachment in one, but not the other.
I will leave my original change in place for now and resolve once your VVL issue is looked at.
Fixes
#1267#1271.This change fixes startup resize for dynamicrenderinglocalread to support non-default device screen sizes.This also updates the iOS subproject to include this new sample and make it work on iOS devices
and the Simulator.UPDATED: Now fixes some validation layer errors in the example (all platforms):
3. Failure to destroy buffer and memory on exit.