radv: hide the sparse queue on older kernels

On older kernels without timeline syncobjs, the timeline and the submit
modes are VK_DEVICE_TIMELINE_MODE_EMULATED and
VK_QUEUE_SUBMIT_MODE_DEFERRED respectively.  They are incompatible with
the sparse queue which requires VK_QUEUE_SUBMIT_MODE_THREADED.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27838>
This commit is contained in:
Chia-I Wu 2024-02-27 13:50:09 -08:00 committed by Marge Bot
parent dd84a575c0
commit f9907733e3

View file

@ -745,7 +745,9 @@ struct radv_meta_state {
static inline bool
radv_sparse_queue_enabled(const struct radv_physical_device *pdevice)
{
return !pdevice->instance->drirc.legacy_sparse_binding;
/* Dedicated sparse queue requires VK_QUEUE_SUBMIT_MODE_THREADED, which is incompatible with
* VK_DEVICE_TIMELINE_MODE_EMULATED. */
return pdevice->rad_info.has_timeline_syncobj && !pdevice->instance->drirc.legacy_sparse_binding;
}
static inline enum radv_queue_family