On Wed, Sep 12, 2018 at 11:30 AM, Danylo Piliaiev <[email protected]> wrote: > Hi, > > Thank you for the directions! > > On 9/12/18 6:13 PM, Jason Ekstrand wrote: > > Danylo, > > You're free to implement anything not already implemented. Here are some > other (probably simpler) extensions that I think can be reasonably > implemented on Intel HW: > > > - VK_EXT_conservative_rasterization > - VK_EXT_conditional_render > > Didn't see them, will take closer look later. > > > As far as VK_KHR_draw_indirect_count go, I haven't implemented it yet > because the "proper" implementation is actually kind-of painful though not > impossible. In general, there are two ways it can be done: > > ## 1. The cheap and easy way > > The spec explicitly allows for the cheap and easy way by requiring the > caller to pass in a maxDrawCount. The idea here would be to emit > maxDrawCount draw calls only have each one of them predicated on draw_id < > draw_count_from_buffer. This one probably wouldn't take much to wire up but > it does mean doing maxDrawCount 3DPRIMITIVE commands no matter how many of > them are actually needed. > > I saw such implementation for i965, looked straightforward and I thought it > will easily translate into Vulkan implementation. Didn't know that it's > possible to do it other way on Intel.
Not that it has to drive how you implement on Intel, but I believe that this is the only way that the implementation can work on NVIDIA GPUs (i.e. call a function which processes N draws' worth of data, but might ignore some of them). Cheers, -ilia _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
