This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

VK_EXT_extended_dynamic_state bindVertexBuffers2EXT doesn't work correctly

Hi,

I was pleased to find that upon updating to the Android 14 preview, VK_EXT_dynamic_state + VK 1.3 were both supported. However when updating my application to take advantage of the new vertex binding call - 'bindVertexBuffers2EXT' - making use of both the dynamic stride and limit capabilities, I found that causes severe graphical corruption. Almost as if the GPU just skips some draws entirely and lets others through just fine. I can send an RDC capture or a demo app if necessary.

HW Info:

Mali-G78

Pixel 6 Pro

Driver 38.1.0

Parents
  • Hi again ,

    We weren't able to reproduce this in a directed test so far; I wonder if there might be some more complicated interaction of things which cause the issue.

    Is it possible to share a reproducer (APK / RenderDoc capture / vktrace/GFXReconstruct trace), or an API dump, of a case where you see the wrong state is used? I'm hoping this might help us spot where things are going wrong here.

    For reference, as there is a chance the Pixel driver there is modified in some way compared to a stock driver, one of the things we tested was the very basic case of a PSO with RD = true, and RD as the only dynamic state, and this set to false. We also tried some combinations of using a different PSO with a different static state earlier, as we've seen bugs related to this in the past, but it didn't seem to apply in this case. Have you seen even a basic case like this is not working correctly on this driver? (To be clear we've not tested on the Pixel specifically.)

    In short, we tried a few 'possibly problematic' cases but struggled to get a repro so far, so hoping you might have some additional info which may give some hints. For sharing repros or similar please feel free to send us an email at developer at arm.com and we can take it from there. :)

    Cheers,
    Christian

Reply
  • Hi again ,

    We weren't able to reproduce this in a directed test so far; I wonder if there might be some more complicated interaction of things which cause the issue.

    Is it possible to share a reproducer (APK / RenderDoc capture / vktrace/GFXReconstruct trace), or an API dump, of a case where you see the wrong state is used? I'm hoping this might help us spot where things are going wrong here.

    For reference, as there is a chance the Pixel driver there is modified in some way compared to a stock driver, one of the things we tested was the very basic case of a PSO with RD = true, and RD as the only dynamic state, and this set to false. We also tried some combinations of using a different PSO with a different static state earlier, as we've seen bugs related to this in the past, but it didn't seem to apply in this case. Have you seen even a basic case like this is not working correctly on this driver? (To be clear we've not tested on the Pixel specifically.)

    In short, we tried a few 'possibly problematic' cases but struggled to get a repro so far, so hoping you might have some additional info which may give some hints. For sharing repros or similar please feel free to send us an email at developer at arm.com and we can take it from there. :)

    Cheers,
    Christian

Children