Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for debugging aliasing problems in GPU hangs #1150

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from

Commits on Sep 29, 2022

  1. vkd3d: Require VK_KHR_buffer_device_address.

    The old path is completely untested at this point, and I found a bug
    with root descriptors since we don't do the proper deref to obtain
    proper VA anymore, so that would have crashed GPUs hard ...
    
    Removes a lot of old jank code.
    
    Signed-off-by: Hans-Kristian Arntzen <[email protected]>
    HansKristian-Work committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    7c0d39c View commit details
    Browse the repository at this point in the history
  2. vkd3d: Add scratch pool for upload data.

    To be used for inline UBO replacement.
    
    Signed-off-by: Hans-Kristian Arntzen <[email protected]>
    HansKristian-Work committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    3cd4c47 View commit details
    Browse the repository at this point in the history
  3. vkd3d: Rewrite push descriptor and inline UBO handling for root sigs.

    Make push descriptors a required feature. It's widely supported now that
    amdvlk enabled it.
    
    The min spec of push descriptors is 32 descriptors which means we never
    have to fall back. The D3D12 spec supports 32 root descriptors.
    When we have that many root descriptors, we never risk running out of
    push constant space, so there won't be a need for fallback UBO.
    
    Tweak the hoisting logic a little bit to make sure we never overflow the 32 push
    desc min-spec.
    
    Replace inline UBO (not compatible with push descriptors) with push UBO
    for fallback data. This path should basically never be hit anyways.
    
    Signed-off-by: Hans-Kristian Arntzen <[email protected]>
    HansKristian-Work committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    76653f1 View commit details
    Browse the repository at this point in the history
  4. vkd3d: Add a crude form of alias debugging.

    Report any placed aliases which could cause issues.
    
    Signed-off-by: Hans-Kristian Arntzen <[email protected]>
    HansKristian-Work committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    ea6dad2 View commit details
    Browse the repository at this point in the history
  5. vkd3d: Add more breadcrumb tracing around RTV/DSV/Indirect usage.

    Report resource cookies so that it's easier to track down aliasing
    issues.
    
    Signed-off-by: Hans-Kristian Arntzen <[email protected]>
    HansKristian-Work committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    f4601bb View commit details
    Browse the repository at this point in the history
  6. vkd3d: Add breadcrumb for discard barriers.

    Signed-off-by: Hans-Kristian Arntzen <[email protected]>
    HansKristian-Work committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    5928a90 View commit details
    Browse the repository at this point in the history
  7. vkd3d: Add full tracing of every submitted command list.

    Replays relevant commands in submission order.
    
    Signed-off-by: Hans-Kristian Arntzen <[email protected]>
    HansKristian-Work committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    0d81c1e View commit details
    Browse the repository at this point in the history
  8. vkd3d: Add breadcrumb for partial discard.

    Useful mostly for debug so we acknowledge there was a discard command
    (except we cannot transition).
    
    Signed-off-by: Hans-Kristian Arntzen <[email protected]>
    HansKristian-Work committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    137e9aa View commit details
    Browse the repository at this point in the history