mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
vulkan: Extend vkGet/SetPrivateDataEXT handling to VkSurface
VkSurface is handled by WSI and it doesn't extend `vk_object_base` so it needs special handling. Fixes:3c87618d35("vulkan: Handle vkGet/SetPrivateDataEXT on Android swapchains") Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24752> (cherry picked from commit5fe289d741)
This commit is contained in:
parent
ec4c6f87a4
commit
94af1fc561
2 changed files with 9 additions and 4 deletions
|
|
@ -580,7 +580,7 @@
|
|||
"description": "vulkan: Extend vkGet/SetPrivateDataEXT handling to VkSurface",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "3c87618d357a4f75a4f47b2638c8f89939fd6c61"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -175,8 +175,8 @@ get_swapchain_private_data_locked(struct vk_device *device,
|
|||
uint64_t **private_data)
|
||||
{
|
||||
if (unlikely(device->swapchain_private == NULL)) {
|
||||
/* Even though VkSwapchain is a non-dispatchable object, we know a
|
||||
* priori that it is actually a pointer so we can use
|
||||
/* Even though VkSwapchain/Surface are non-dispatchable objects, we know
|
||||
* a priori that these are actually pointers so we can use
|
||||
* the pointer hash table for them.
|
||||
*/
|
||||
device->swapchain_private = _mesa_pointer_hash_table_create(NULL);
|
||||
|
|
@ -222,7 +222,12 @@ vk_object_base_private_data(struct vk_device *device,
|
|||
* vkGet/SetPrivateDataEXT call on a swapchain because the loader will
|
||||
* handle it.
|
||||
*/
|
||||
if (objectType == VK_OBJECT_TYPE_SWAPCHAIN_KHR) {
|
||||
#ifdef ANDROID
|
||||
if (objectType == VK_OBJECT_TYPE_SWAPCHAIN_KHR ||
|
||||
objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
|
||||
#else
|
||||
if (objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
|
||||
#endif
|
||||
mtx_lock(&device->swapchain_private_mtx);
|
||||
VkResult result = get_swapchain_private_data_locked(device, objectHandle,
|
||||
slot, private_data);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue