anv: Add helper macros for address binding report extension

These macros provide support for reporting device address binding
info for VK_EXT_device_address_binding_report.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37422>
This commit is contained in:
Aditya Swarup 2026-02-16 23:12:41 -08:00 committed by Marge Bot
parent 2253afbc94
commit fe46a2ae9b

View file

@ -7155,6 +7155,29 @@ anv_emit_device_memory_report(struct vk_device* device,
#define ANV_DMR_SP_FREE(_obj, _pool, _state) \
ANV_DMR_SP_REPORT(_obj, _pool, _state, VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT)
/* Address binding report macro helpers for VK_EXT_device_address_binding_report.
*
* Macros with _ADDR variants for usage with struct anv_address
*/
#define ANV_ADDR_BINDING_REPORT_ADDR(_device, _vk_obj_base, _addr, _size, _type) \
do { \
struct anv_address __addr = (_addr); \
uint64_t __va = anv_address_physical(__addr); \
if (__va != 0) { \
vk_address_binding_report(&(_device)->physical->instance->vk, \
(_vk_obj_base), __va, (_size), (_type)); \
} \
} while (0)
#define ANV_ADDR_BINDING_REPORT_ADDR_BIND(_device, _vk_obj_base, _addr, _size) \
ANV_ADDR_BINDING_REPORT_ADDR((_device), (_vk_obj_base), (_addr), (_size), \
VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT)
#define ANV_ADDR_BINDING_REPORT_ADDR_UNBIND(_device, _vk_obj_base, _addr, _size) \
ANV_ADDR_BINDING_REPORT_ADDR((_device), (_vk_obj_base), (_addr), (_size), \
VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT)
#ifdef __cplusplus
}
#endif