4 ms·
Descriptor layouts are the equivalent of SRT in Vulkan. It is unclear to me what exactly DispatchDraw is for, because back-face and offscreen culling are standa
by Overv 10y ago
Descriptor layouts are the equivalent of SRT in Vulkan. It is unclear to me what exactly DispatchDraw is for, because back-face and offscreen culling are standard features of any graphics pipeline.
- pandaman 10y ago>Descriptor layouts are the equivalent of SRT in Vulkan. I am not sure how. I do not use Vulkan, I use GNM. I asked this because implementing SRT does not seem possible in a platform independent API. So I checked the docs again and the descriptor layout is the same thing I remember - a set of bindings you manage through a bunch of API calls. On the other hand SRT is a plain c-structure. You pass a pointer to structure to a shader as a parameter. Exactly as same as you pass a structure to a function in C/C++. You don't need APIs to create sturctures, you can store them in a file, you can write them from another shader etc. etc. > It is unclear to me what exactly DispatchDraw is for, because back-face and offscreen culling are standard features of any graphics pipeline. It's pretty clear what is it for if you actually wrote real-time graphics. JFYI - it's "index shader" essentially. Having control over indices you can implement much faster culling.
- pcwalton 10y ago> It's pretty clear what is it for if you actually wrote real-time graphics. JFYI - it's "index shader" essentially. Having control over indices you can implement much faster culling. This sounds like indirect draw, which has been standard for years and is supported by Vulkan.
- pandaman 10y agoIndirect draw is a draw, which instead of direct arguments (number of indices, number of instances, offsets) takes an address of a structure with these parameters. It does not create indices. You could use it for culling but only on the level of a whole draw. DispatchDraw generates indices in a shader and can do a triangle level culling among other things.
- pcwalton 10y ago> It does not create indices You combine it with a Compute Shader to create the indices. Indirect draw is how you make those indices available to the drawing functionality.
- pandaman 10y agoSure, it's possible, but it would be much slower(just for going off chip, not taking synchronization into account) than just letting all triangles through so it has no practical application. Again, even if this had been practical, it does not make DD same as ID. You can draw anything with OpenGl 1.0 but it does not make it the same API as Vulcan, does it?