Post

Replies

Boosts

Views

Activity

Reply to DrawIndexedIndirectCount functionality under Metal
Hello, According to FB8254449, yes, there is a function to draw indirect primitives, but that command is only executing single draw command. Vulkan and other API (OpenGL, D3D12, D3D11 (via extensions)) are proving more advanced functions to draw multiple commands with CPU and GPU-generated count: This command is rendering multiple indirect commands, and the number of draw commands is inside GPU-buffer. Unfortunately, there is no such functionality in Metal API: void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32t maxDrawCount, uint32t stride); There is another request inside FB8254449: is to add an indirect buffer Offset based on GPU-buffer: void vkCmdDrawIndexedIndirectCountOffset( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer offsetBuffer, VkDeviceSize offsetBufferOffset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32t maxDrawCount, uint32t stride); FB8638856: Everything is fine with UHD 630 under Big Sur. The problems are 20 seconds start time with eGPU and inability to use textures with indirect command buffer (except M1). Thank you!
Dec ’20
Reply to DrawIndexedIndirectCount functionality under Metal
We are not using Xcode for development. Moreover, I will take time to isolate source code for issue replication. Usually, such binaries are more than enough for driver developers. Because they can track all API calls internally, and they have much better tools for that. Xcode project will not help if nobody cares about software the quality on the Apple side. I'm trying to find answers to those questions during the last months. This forum is the last hope :) And it's not possible to talk about missing functionality in Metal because nobody is listening.
Dec ’20