mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-16 02:10:25 +01:00
venus: implement vkGet[Device]ImageSparseMemoryRequirements
These were left unimplemented despite sparse support being added back to venus ina55d26b5("venus: add back sparse binding support") Same as vn_GetPhysicalDeviceSparseImageFormatProperties2, venus sparse support requires queues that also support transfer so any sparse-only queues are filtered out. If a device only supports sparse with sparse-only queues, sparse features are disabled and these functions return count of 0. Fixes:a55d26b566("venus: add back sparse binding support") Signed-off-by: Juston Li <justonli@google.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26297>
This commit is contained in:
parent
a0355dfcfb
commit
746da376e4
1 changed files with 28 additions and 8 deletions
|
|
@ -505,13 +505,23 @@ vn_GetImageMemoryRequirements2(VkDevice device,
|
|||
|
||||
void
|
||||
vn_GetImageSparseMemoryRequirements2(
|
||||
UNUSED VkDevice device,
|
||||
UNUSED const VkImageSparseMemoryRequirementsInfo2 *pInfo,
|
||||
VkDevice device,
|
||||
const VkImageSparseMemoryRequirementsInfo2 *pInfo,
|
||||
uint32_t *pSparseMemoryRequirementCount,
|
||||
UNUSED VkSparseImageMemoryRequirements2 *pSparseMemoryRequirements)
|
||||
VkSparseImageMemoryRequirements2 *pSparseMemoryRequirements)
|
||||
{
|
||||
struct vn_device *dev = vn_device_from_handle(device);
|
||||
|
||||
/* see vn_GetPhysicalDeviceSparseImageFormatProperties2 */
|
||||
*pSparseMemoryRequirementCount = 0;
|
||||
if (dev->physical_device->sparse_binding_disabled) {
|
||||
*pSparseMemoryRequirementCount = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* TODO local or per-device cache */
|
||||
vn_call_vkGetImageSparseMemoryRequirements2(dev->instance, device, pInfo,
|
||||
pSparseMemoryRequirementCount,
|
||||
pSparseMemoryRequirements);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -847,11 +857,21 @@ vn_GetDeviceImageMemoryRequirements(
|
|||
|
||||
void
|
||||
vn_GetDeviceImageSparseMemoryRequirements(
|
||||
UNUSED VkDevice device,
|
||||
UNUSED const VkDeviceImageMemoryRequirements *pInfo,
|
||||
VkDevice device,
|
||||
const VkDeviceImageMemoryRequirements *pInfo,
|
||||
uint32_t *pSparseMemoryRequirementCount,
|
||||
UNUSED VkSparseImageMemoryRequirements2 *pSparseMemoryRequirements)
|
||||
VkSparseImageMemoryRequirements2 *pSparseMemoryRequirements)
|
||||
{
|
||||
struct vn_device *dev = vn_device_from_handle(device);
|
||||
|
||||
/* see vn_GetPhysicalDeviceSparseImageFormatProperties2 */
|
||||
*pSparseMemoryRequirementCount = 0;
|
||||
if (dev->physical_device->sparse_binding_disabled) {
|
||||
*pSparseMemoryRequirementCount = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* TODO per-device cache */
|
||||
vn_call_vkGetDeviceImageSparseMemoryRequirements(
|
||||
dev->instance, device, pInfo, pSparseMemoryRequirementCount,
|
||||
pSparseMemoryRequirements);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue