mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 19:58:09 +02: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> (cherry picked from commit746da376e4)
This commit is contained in:
parent
ae0873c0f8
commit
9fdc28451d
2 changed files with 29 additions and 9 deletions
|
|
@ -1534,7 +1534,7 @@
|
|||
"description": "venus: implement vkGet[Device]ImageSparseMemoryRequirements",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "a55d26b566f1ba67f770f689e4de9b0f70c0d47b",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -514,13 +514,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
|
||||
|
|
@ -856,11 +866,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