KhronosGroup / KhronosGroup/Vulkan-Docs

[Roadmap Feedback] Better BDA and Descriptor Buffer tooling

Open
#2,308 7 comments 0 reactions 1 assignee Claimed by @TomOlson View on GitHub
Feature Request Roadmap Feedback
Dominant language
JavaScript
Stars
3.3k
Forks
549
Avg merge
5d 5h
Merged PRs (30d)
2

Description

## Problem statement:

BDA is not fun to debug.

The implicitness of the resource being accesssed and explicit synchronization open a new can of worms / bugs.

## Use Case Example(s):

Consider updating a buffer of Descriptors or BDA addresses, if you mess up the sync, subsequent shaders will access stale/invalid pointers.

These stale pointers might point at completely invalid page ranges and trigger fault handling in the GPU (in our case, zeroing out of an entire buffer due to an _invalid **BDA LOAD**_ - something quite unintuitive).

Unless using an IHV specific tool like Nsight, or equivalent AMD tools, you won't see any error or even a VK_DEVICE_LOST on such accesses.

## (Optional) Suggested Solution(s) (via opening an MR on vulkan-docs repo and creating a Proposal Document) :

A lightweight invalid-page callback which would provide a cross-IHV way to catch load/store to invalid address.

A full blown GPU Assisted Validation layer (at least something to enable in renderdoc) which tracks every BDA or Descriptor Buffer Access and does some very coarse validation of the accesses.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.