anv/xe: Bind queue per anv_queue
What does this MR do and why?
Properly use bind queues in Xe to decouple sparse binds from immediate binds.
anv/xe: Bind queue per anv_queue
The Xe uAPI is designed to use bind queues such that binds without input
dependencies (sync objects) do not block on binds with input
dependencies.
For example:
- Bind A (sparse) is submitted with a list of input dependencies.
- Bind B (immediate) is subsequently submitted without a list of input
dependencies.
If Bind A and Bind B share a single bind queue, Bind B will not be
scheduled until Bind A completes. Using individual bind queues decouples
Bind A and Bind B, allowing Bind B to make immediate progress.
This change creates a separate bind queue for each ANV queue, enabling
support for sparse bindings that may have input dependencies.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>