Skip to content

[Task] vk: Rewrite our resource binding model #17277

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
5 tasks
kd-11 opened this issue Jun 1, 2025 · 0 comments
Open
5 tasks

[Task] vk: Rewrite our resource binding model #17277

kd-11 opened this issue Jun 1, 2025 · 0 comments
Assignees
Labels
In Progress This issue is actively being investigated at the moment. Render: Vulkan

Comments

@kd-11
Copy link
Contributor

kd-11 commented Jun 1, 2025

We don't need to switch descriptors so often if we have some kind of draw state caching. Most of the time we're not really changing anything except a bunch of pointers.
The aim here is to eventually move most work to the GPU including preflight vertex input processing.

  • Change descriptor scopes from per-draw to per-state-hash. We calculate hashes anyway for shader live states, might as well make use of that.
  • Extend the new descriptor model with EXT_descriptor_buffer to offload processing descriptors to the GPU.
  • When DMA passthrough is available, map host mem to the GPU using TTs. Non-trivial since we need to account for boundaries but UTs can help make this watertight.
  • When DMA passthrough is available, bypass the vertex input stage using texel buffers by allowing GPU to read data directly from host.
  • Offload index processing completely using DGC or DrawIndirect. This approach is so different that it may be a separate VK_1.4+ renderer option. Potential wins are massive here since most users have powerful GPUs but weak CPUs.
@kd-11 kd-11 self-assigned this Jun 1, 2025
@kd-11 kd-11 changed the title [Task] vk: Switch descriptor scope from per-draw to state cache [Task] vk: Rewrite our resource binding model Jun 2, 2025
@kd-11 kd-11 added the In Progress This issue is actively being investigated at the moment. label Jun 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
In Progress This issue is actively being investigated at the moment. Render: Vulkan
Projects
None yet
Development

No branches or pull requests

2 participants