KhronosGroup / KhronosGroup/Vulkan-Docs
Device buffer address operations (rather than ray tracing)
- Dominant language
- JavaScript
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 2
Description
I would like to offer the ability to use device address for rasterization operations. I suggest something similar to DirectX 12.
```cpp
//
void vkCmdBindVertexBuffers3EXT(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkDeviceAddress* pAddresses);
// with VK_EXT_extended_dynamic_state extension
void vkCmdBindVertexBuffers4EXT(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkDeviceAddress* pAddresses, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
//
void vkCmdDrawIndexedIndirect2EXT(VkCommandBuffer commandBuffer, VkDeviceAddress deviceAddress, uint32_t drawCount, uint32_t stride);
//
void vkCmdDrawIndirect2EXT(VkCommandBuffer commandBuffer, VkDeviceAddress deviceAddress, uint32_t drawCount, uint32_t stride);
//
void vkCmdDrawIndexedIndirectCount2EXT(VkCommandBuffer commandBuffer, VkDeviceAddress deviceAddress, VkDeviceAddress countDeviceAddress, uint32_t maxDrawCount, uint32_t stride);
//
void vkCmdBindIndexBuffer2EXT(VkCommandBuffer commandBuffer, VkDeviceAddress deviceAddress, VkIndexType indexType);
```
Contributor guide
Research direction
Start by reviewing the proposed command signatures and the DirectX 12 behavior referenced in the issue. Identify the Vulkan specification entry points and feature interactions that would need definition. Done means reaching an agreed design for device-address rasterization operations, not merely adding the declarations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- api, computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 20/100