Nabla icon indicating copy to clipboard operation
Nabla copied to clipboard

Change the Renderpass API to require and only function with VK_KHR_imageless_framebuffer

Open devshgraphicsprogramming opened this issue 3 years ago • 3 comments

Description

Not having to pair a vkImage with a framebuffer is very nice.

Description of the related problem

Need to check if WebGPU supports this sort of API, as we might want to provide this backend soon.

Additional context

This Vulkan extension seems fairly ubiquitous.

In WebGPU you provide the image attachments in the command buffer's begin render pass function: https://gpuweb.github.io/gpuweb/#dictdef-gpurenderpassdescriptor

So it should be the same as VK_KHR_imageless_framebuffer

deprilula28 avatar Jul 14 '22 12:07 deprilula28

In WebGPU you provide the image attachments in the command buffer's begin render pass function: https://gpuweb.github.io/gpuweb/#dictdef-gpurenderpassdescriptor

So it should be the same as VK_KHR_imageless_framebuffer

yeah but then it means you maintain a engine/backend managed cache when you have a Vulkan impl that does not support KHR_imageless_framebuffer

Its a bit like timeline semaphores, its a feature you can emulate.

At the end of the day I only care about Android 12 and MoltenVK supporting this extension.

This extension is braindead, now instead of specifying an ImageView for an attachment I need to now specify the the Creation Parameters of the Image and it they don't match exactly with what ImageView I want to use at runtime during CommandBuffer recording I get a runtime error.

In the end what this would end up being is me grabbing imageView->getCreationParameters().image->getCreationParameters() every time I want to declare an attachment in a framebuffer, which is just ending up right back where we started.