KhronosGroup / Vulkan-Docs

The Vulkan API Specification and related tools
Other
2.75k stars 462 forks source link

Request for compute shader tile memory support #2093

Open DethRaid opened 1 year ago

DethRaid commented 1 year ago

Today saw the release of VK_EXT_shader_tile_image. This provides a new way for fragment shaders to access tile memory without all the formality of subpasses. It's a great step forward, but there's something missing

Compute shaders form the basis of many modern rendering techniques, including deferred lighting. However, mobile developers are forced to use fragment shaders to implement these techniques because there's no way for compute shaders to access tile memory

As an example of a more complex technique, consider the light propagation volume implementation from my personal renderer. I use a fragment shader to examine the RSM images and generate the virtual point light list in order to keep the RSM images in tile memory. This is very fast, but I'm forced to use a fragment shader with no color writes on a fullscreen triangle. CPU code here, GPU code here

I'd like to request that Vulkan expose a way for compute shaders to read from and write to tile memory

janharaldfredriksen-arm commented 1 year ago

Hi, thanks for your request and the details on your use-case.

We've seen some interest in this kind of feature, but there's nothing concrete I can share right now. I'll label this as a Feature Request for now so that we have it tracked.