mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-01 23:44:47 +00:00
winevulkan: Add support for VK_KHR_map_memory2.
This commit is contained in:
parent
389fbcf961
commit
0a56a4ada2
|
@ -5228,6 +5228,18 @@ VkResult WINAPI vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize
|
|||
return params.result;
|
||||
}
|
||||
|
||||
VkResult WINAPI vkMapMemory2KHR(VkDevice device, const VkMemoryMapInfoKHR *pMemoryMapInfo, void **ppData)
|
||||
{
|
||||
struct vkMapMemory2KHR_params params;
|
||||
NTSTATUS status;
|
||||
params.device = device;
|
||||
params.pMemoryMapInfo = pMemoryMapInfo;
|
||||
params.ppData = ppData;
|
||||
status = UNIX_CALL(vkMapMemory2KHR, ¶ms);
|
||||
assert(!status);
|
||||
return params.result;
|
||||
}
|
||||
|
||||
VkResult WINAPI vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache *pSrcCaches)
|
||||
{
|
||||
struct vkMergePipelineCaches_params params;
|
||||
|
@ -5639,6 +5651,17 @@ void WINAPI vkUnmapMemory(VkDevice device, VkDeviceMemory memory)
|
|||
assert(!status);
|
||||
}
|
||||
|
||||
VkResult WINAPI vkUnmapMemory2KHR(VkDevice device, const VkMemoryUnmapInfoKHR *pMemoryUnmapInfo)
|
||||
{
|
||||
struct vkUnmapMemory2KHR_params params;
|
||||
NTSTATUS status;
|
||||
params.device = device;
|
||||
params.pMemoryUnmapInfo = pMemoryUnmapInfo;
|
||||
status = UNIX_CALL(vkUnmapMemory2KHR, ¶ms);
|
||||
assert(!status);
|
||||
return params.result;
|
||||
}
|
||||
|
||||
void WINAPI vkUpdateDescriptorSetWithTemplate(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void *pData)
|
||||
{
|
||||
struct vkUpdateDescriptorSetWithTemplate_params params;
|
||||
|
@ -6188,6 +6211,7 @@ static const struct vulkan_func vk_device_dispatch_table[] =
|
|||
{"vkInitializePerformanceApiINTEL", vkInitializePerformanceApiINTEL},
|
||||
{"vkInvalidateMappedMemoryRanges", vkInvalidateMappedMemoryRanges},
|
||||
{"vkMapMemory", vkMapMemory},
|
||||
{"vkMapMemory2KHR", vkMapMemory2KHR},
|
||||
{"vkMergePipelineCaches", vkMergePipelineCaches},
|
||||
{"vkMergeValidationCachesEXT", vkMergeValidationCachesEXT},
|
||||
{"vkQueueBeginDebugUtilsLabelEXT", vkQueueBeginDebugUtilsLabelEXT},
|
||||
|
@ -6223,6 +6247,7 @@ static const struct vulkan_func vk_device_dispatch_table[] =
|
|||
{"vkTrimCommandPoolKHR", vkTrimCommandPoolKHR},
|
||||
{"vkUninitializePerformanceApiINTEL", vkUninitializePerformanceApiINTEL},
|
||||
{"vkUnmapMemory", vkUnmapMemory},
|
||||
{"vkUnmapMemory2KHR", vkUnmapMemory2KHR},
|
||||
{"vkUpdateDescriptorSetWithTemplate", vkUpdateDescriptorSetWithTemplate},
|
||||
{"vkUpdateDescriptorSetWithTemplateKHR", vkUpdateDescriptorSetWithTemplateKHR},
|
||||
{"vkUpdateDescriptorSets", vkUpdateDescriptorSets},
|
||||
|
|
|
@ -509,6 +509,7 @@ enum unix_call
|
|||
unix_vkInitializePerformanceApiINTEL,
|
||||
unix_vkInvalidateMappedMemoryRanges,
|
||||
unix_vkMapMemory,
|
||||
unix_vkMapMemory2KHR,
|
||||
unix_vkMergePipelineCaches,
|
||||
unix_vkMergeValidationCachesEXT,
|
||||
unix_vkQueueBeginDebugUtilsLabelEXT,
|
||||
|
@ -545,6 +546,7 @@ enum unix_call
|
|||
unix_vkTrimCommandPoolKHR,
|
||||
unix_vkUninitializePerformanceApiINTEL,
|
||||
unix_vkUnmapMemory,
|
||||
unix_vkUnmapMemory2KHR,
|
||||
unix_vkUpdateDescriptorSetWithTemplate,
|
||||
unix_vkUpdateDescriptorSetWithTemplateKHR,
|
||||
unix_vkUpdateDescriptorSets,
|
||||
|
@ -4398,6 +4400,14 @@ struct vkMapMemory_params
|
|||
VkResult result;
|
||||
};
|
||||
|
||||
struct vkMapMemory2KHR_params
|
||||
{
|
||||
VkDevice device;
|
||||
const VkMemoryMapInfoKHR *pMemoryMapInfo;
|
||||
void **ppData;
|
||||
VkResult result;
|
||||
};
|
||||
|
||||
struct vkMergePipelineCaches_params
|
||||
{
|
||||
VkDevice device;
|
||||
|
@ -4665,6 +4675,13 @@ struct vkUnmapMemory_params
|
|||
VkDeviceMemory DECLSPEC_ALIGN(8) memory;
|
||||
};
|
||||
|
||||
struct vkUnmapMemory2KHR_params
|
||||
{
|
||||
VkDevice device;
|
||||
const VkMemoryUnmapInfoKHR *pMemoryUnmapInfo;
|
||||
VkResult result;
|
||||
};
|
||||
|
||||
struct vkUpdateDescriptorSetWithTemplate_params
|
||||
{
|
||||
VkDevice device;
|
||||
|
|
|
@ -100,7 +100,6 @@ UNSUPPORTED_EXTENSIONS = [
|
|||
"VK_GOOGLE_display_timing",
|
||||
"VK_KHR_external_fence_win32",
|
||||
"VK_KHR_external_semaphore_win32",
|
||||
"VK_KHR_map_memory2", # Needs wow64 handling and is useless for now.
|
||||
# Relates to external_semaphore and needs type conversions in bitflags.
|
||||
"VK_KHR_shared_presentable_image", # Needs WSI work.
|
||||
"VK_KHR_video_queue", # TODO Video extensions use separate headers + xml
|
||||
|
@ -215,7 +214,9 @@ FUNCTION_OVERRIDES = {
|
|||
"vkAllocateMemory" : {"dispatch" : True, "driver" : False, "thunk" : ThunkType.PRIVATE},
|
||||
"vkFreeMemory" : {"dispatch" : True, "driver" : False, "thunk" : ThunkType.PRIVATE},
|
||||
"vkMapMemory" : {"dispatch" : True, "driver" : False, "thunk" : ThunkType.PRIVATE},
|
||||
"vkMapMemory2KHR" : {"dispatch" : True, "driver" : False, "thunk" : ThunkType.PRIVATE},
|
||||
"vkUnmapMemory" : {"dispatch" : True, "driver" : False, "thunk" : ThunkType.PRIVATE},
|
||||
"vkUnmapMemory2KHR" : {"dispatch" : True, "driver" : False, "thunk" : ThunkType.PRIVATE},
|
||||
"vkCreateBuffer" : {"dispatch" : True, "driver" : False, "thunk" : ThunkType.PRIVATE},
|
||||
"vkCreateImage" : {"dispatch" : True, "driver" : False, "thunk" : ThunkType.PRIVATE},
|
||||
|
||||
|
|
|
@ -1605,21 +1605,46 @@ void wine_vkFreeMemory(VkDevice handle, VkDeviceMemory memory_handle, const VkAl
|
|||
free(memory);
|
||||
}
|
||||
|
||||
VkResult wine_vkMapMemory(VkDevice handle, VkDeviceMemory memory_handle, VkDeviceSize offset,
|
||||
VkResult wine_vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset,
|
||||
VkDeviceSize size, VkMemoryMapFlags flags, void **data)
|
||||
{
|
||||
const VkMemoryMapInfoKHR info =
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR,
|
||||
.flags = flags,
|
||||
.memory = memory,
|
||||
.offset = offset,
|
||||
.size = size,
|
||||
};
|
||||
|
||||
return wine_vkMapMemory2KHR(device, &info, data);
|
||||
}
|
||||
|
||||
VkResult wine_vkMapMemory2KHR(VkDevice handle, const VkMemoryMapInfoKHR *map_info, void **data)
|
||||
{
|
||||
struct wine_device *device = wine_device_from_handle(handle);
|
||||
struct wine_device_memory *memory = wine_device_memory_from_handle(memory_handle);
|
||||
struct wine_device_memory *memory = wine_device_memory_from_handle(map_info->memory);
|
||||
VkMemoryMapInfoKHR info = *map_info;
|
||||
VkResult result;
|
||||
|
||||
info.memory = memory->memory;
|
||||
if (memory->mapping)
|
||||
{
|
||||
*data = (char *)memory->mapping + offset;
|
||||
*data = (char *)memory->mapping + info.offset;
|
||||
TRACE("returning %p\n", *data);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
result = device->funcs.p_vkMapMemory(device->device, memory->memory, offset, size, flags, data);
|
||||
if (device->funcs.p_vkMapMemory2KHR)
|
||||
{
|
||||
result = device->funcs.p_vkMapMemory2KHR(device->device, &info, data);
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(!info.pNext);
|
||||
result = device->funcs.p_vkMapMemory(device->device, info.memory, info.offset,
|
||||
info.size, info.flags, data);
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
if (NtCurrentTeb()->WowTebOffset && result == VK_SUCCESS && (UINT_PTR)*data >> 32)
|
||||
|
@ -1634,13 +1659,36 @@ VkResult wine_vkMapMemory(VkDevice handle, VkDeviceMemory memory_handle, VkDevic
|
|||
return result;
|
||||
}
|
||||
|
||||
void wine_vkUnmapMemory(VkDevice handle, VkDeviceMemory memory_handle)
|
||||
void wine_vkUnmapMemory(VkDevice device, VkDeviceMemory memory)
|
||||
{
|
||||
const VkMemoryUnmapInfoKHR info =
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR,
|
||||
.memory = memory,
|
||||
};
|
||||
|
||||
wine_vkUnmapMemory2KHR(device, &info);
|
||||
}
|
||||
|
||||
VkResult wine_vkUnmapMemory2KHR(VkDevice handle, const VkMemoryUnmapInfoKHR *unmap_info)
|
||||
{
|
||||
struct wine_device *device = wine_device_from_handle(handle);
|
||||
struct wine_device_memory *memory = wine_device_memory_from_handle(memory_handle);
|
||||
struct wine_device_memory *memory = wine_device_memory_from_handle(unmap_info->memory);
|
||||
VkMemoryUnmapInfoKHR info;
|
||||
|
||||
if (!memory->mapping)
|
||||
if (memory->mapping)
|
||||
return VK_SUCCESS;
|
||||
|
||||
if (!device->funcs.p_vkUnmapMemory2KHR)
|
||||
{
|
||||
assert(!unmap_info->pNext);
|
||||
device->funcs.p_vkUnmapMemory(device->device, memory->memory);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
info = *unmap_info;
|
||||
info.memory = memory->memory;
|
||||
return device->funcs.p_vkUnmapMemory2KHR(device->device, &info);
|
||||
}
|
||||
|
||||
VkResult wine_vkCreateBuffer(VkDevice handle, const VkBufferCreateInfo *create_info,
|
||||
|
|
|
@ -5927,6 +5927,16 @@ typedef struct VkInitializePerformanceApiInfoINTEL32
|
|||
PTR32 pUserData;
|
||||
} VkInitializePerformanceApiInfoINTEL32;
|
||||
|
||||
typedef struct VkMemoryMapInfoKHR32
|
||||
{
|
||||
VkStructureType sType;
|
||||
PTR32 pNext;
|
||||
VkMemoryMapFlags flags;
|
||||
VkDeviceMemory DECLSPEC_ALIGN(8) memory;
|
||||
VkDeviceSize DECLSPEC_ALIGN(8) offset;
|
||||
VkDeviceSize DECLSPEC_ALIGN(8) size;
|
||||
} VkMemoryMapInfoKHR32;
|
||||
|
||||
typedef struct VkSparseMemoryBind32
|
||||
{
|
||||
VkDeviceSize DECLSPEC_ALIGN(8) resourceOffset;
|
||||
|
@ -6205,6 +6215,14 @@ typedef struct VkDebugUtilsMessengerCallbackDataEXT32
|
|||
PTR32 pObjects;
|
||||
} VkDebugUtilsMessengerCallbackDataEXT32;
|
||||
|
||||
typedef struct VkMemoryUnmapInfoKHR32
|
||||
{
|
||||
VkStructureType sType;
|
||||
PTR32 pNext;
|
||||
VkMemoryUnmapFlagsKHR flags;
|
||||
VkDeviceMemory DECLSPEC_ALIGN(8) memory;
|
||||
} VkMemoryUnmapInfoKHR32;
|
||||
|
||||
typedef struct VkCopyDescriptorSet32
|
||||
{
|
||||
VkStructureType sType;
|
||||
|
@ -24915,6 +24933,20 @@ static inline void convert_VkInitializePerformanceApiInfoINTEL_win32_to_host(con
|
|||
FIXME("Unexpected pNext\n");
|
||||
}
|
||||
|
||||
static inline void convert_VkMemoryMapInfoKHR_win32_to_unwrapped_host(const VkMemoryMapInfoKHR32 *in, VkMemoryMapInfoKHR *out)
|
||||
{
|
||||
if (!in) return;
|
||||
|
||||
out->sType = in->sType;
|
||||
out->pNext = NULL;
|
||||
out->flags = in->flags;
|
||||
out->memory = in->memory;
|
||||
out->offset = in->offset;
|
||||
out->size = in->size;
|
||||
if (in->pNext)
|
||||
FIXME("Unexpected pNext\n");
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
static inline void convert_VkSparseMemoryBind_win64_to_host(const VkSparseMemoryBind *in, VkSparseMemoryBind *out)
|
||||
{
|
||||
|
@ -25957,6 +25989,18 @@ static inline void convert_VkDebugUtilsMessengerCallbackDataEXT_win32_to_host(st
|
|||
}
|
||||
}
|
||||
|
||||
static inline void convert_VkMemoryUnmapInfoKHR_win32_to_unwrapped_host(const VkMemoryUnmapInfoKHR32 *in, VkMemoryUnmapInfoKHR *out)
|
||||
{
|
||||
if (!in) return;
|
||||
|
||||
out->sType = in->sType;
|
||||
out->pNext = NULL;
|
||||
out->flags = in->flags;
|
||||
out->memory = in->memory;
|
||||
if (in->pNext)
|
||||
FIXME("Unexpected pNext\n");
|
||||
}
|
||||
|
||||
static inline void convert_VkCopyDescriptorSet_win32_to_host(const VkCopyDescriptorSet32 *in, VkCopyDescriptorSet *out)
|
||||
{
|
||||
if (!in) return;
|
||||
|
@ -39518,6 +39562,36 @@ static NTSTATUS thunk32_vkMapMemory(void *args)
|
|||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
static NTSTATUS thunk64_vkMapMemory2KHR(void *args)
|
||||
{
|
||||
struct vkMapMemory2KHR_params *params = args;
|
||||
|
||||
TRACE("%p, %p, %p\n", params->device, params->pMemoryMapInfo, params->ppData);
|
||||
|
||||
params->result = wine_vkMapMemory2KHR(params->device, params->pMemoryMapInfo, params->ppData);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
#endif /* _WIN64 */
|
||||
|
||||
static NTSTATUS thunk32_vkMapMemory2KHR(void *args)
|
||||
{
|
||||
struct
|
||||
{
|
||||
PTR32 device;
|
||||
PTR32 pMemoryMapInfo;
|
||||
PTR32 ppData;
|
||||
VkResult result;
|
||||
} *params = args;
|
||||
VkMemoryMapInfoKHR pMemoryMapInfo_host;
|
||||
|
||||
TRACE("%#x, %#x, %#x\n", params->device, params->pMemoryMapInfo, params->ppData);
|
||||
|
||||
convert_VkMemoryMapInfoKHR_win32_to_unwrapped_host((const VkMemoryMapInfoKHR32 *)UlongToPtr(params->pMemoryMapInfo), &pMemoryMapInfo_host);
|
||||
params->result = wine_vkMapMemory2KHR((VkDevice)UlongToPtr(params->device), &pMemoryMapInfo_host, (void **)UlongToPtr(params->ppData));
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
static NTSTATUS thunk64_vkMergePipelineCaches(void *args)
|
||||
{
|
||||
|
@ -40583,6 +40657,35 @@ static NTSTATUS thunk32_vkUnmapMemory(void *args)
|
|||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
static NTSTATUS thunk64_vkUnmapMemory2KHR(void *args)
|
||||
{
|
||||
struct vkUnmapMemory2KHR_params *params = args;
|
||||
|
||||
TRACE("%p, %p\n", params->device, params->pMemoryUnmapInfo);
|
||||
|
||||
params->result = wine_vkUnmapMemory2KHR(params->device, params->pMemoryUnmapInfo);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
#endif /* _WIN64 */
|
||||
|
||||
static NTSTATUS thunk32_vkUnmapMemory2KHR(void *args)
|
||||
{
|
||||
struct
|
||||
{
|
||||
PTR32 device;
|
||||
PTR32 pMemoryUnmapInfo;
|
||||
VkResult result;
|
||||
} *params = args;
|
||||
VkMemoryUnmapInfoKHR pMemoryUnmapInfo_host;
|
||||
|
||||
TRACE("%#x, %#x\n", params->device, params->pMemoryUnmapInfo);
|
||||
|
||||
convert_VkMemoryUnmapInfoKHR_win32_to_unwrapped_host((const VkMemoryUnmapInfoKHR32 *)UlongToPtr(params->pMemoryUnmapInfo), &pMemoryUnmapInfo_host);
|
||||
params->result = wine_vkUnmapMemory2KHR((VkDevice)UlongToPtr(params->device), &pMemoryUnmapInfo_host);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
static void thunk64_vkUpdateDescriptorSetWithTemplate(void *args)
|
||||
{
|
||||
|
@ -41009,6 +41112,7 @@ static const char * const vk_device_extensions[] =
|
|||
"VK_KHR_maintenance2",
|
||||
"VK_KHR_maintenance3",
|
||||
"VK_KHR_maintenance4",
|
||||
"VK_KHR_map_memory2",
|
||||
"VK_KHR_multiview",
|
||||
"VK_KHR_performance_query",
|
||||
"VK_KHR_pipeline_executable_properties",
|
||||
|
@ -41651,6 +41755,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
|
|||
thunk64_vkInitializePerformanceApiINTEL,
|
||||
thunk64_vkInvalidateMappedMemoryRanges,
|
||||
thunk64_vkMapMemory,
|
||||
thunk64_vkMapMemory2KHR,
|
||||
thunk64_vkMergePipelineCaches,
|
||||
thunk64_vkMergeValidationCachesEXT,
|
||||
thunk64_vkQueueBeginDebugUtilsLabelEXT,
|
||||
|
@ -41687,6 +41792,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
|
|||
thunk64_vkTrimCommandPoolKHR,
|
||||
thunk64_vkUninitializePerformanceApiINTEL,
|
||||
thunk64_vkUnmapMemory,
|
||||
thunk64_vkUnmapMemory2KHR,
|
||||
(void *)thunk64_vkUpdateDescriptorSetWithTemplate,
|
||||
thunk64_vkUpdateDescriptorSetWithTemplateKHR,
|
||||
(void *)thunk64_vkUpdateDescriptorSets,
|
||||
|
@ -42202,6 +42308,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
|
|||
thunk32_vkInitializePerformanceApiINTEL,
|
||||
thunk32_vkInvalidateMappedMemoryRanges,
|
||||
thunk32_vkMapMemory,
|
||||
thunk32_vkMapMemory2KHR,
|
||||
thunk32_vkMergePipelineCaches,
|
||||
thunk32_vkMergeValidationCachesEXT,
|
||||
thunk32_vkQueueBeginDebugUtilsLabelEXT,
|
||||
|
@ -42238,6 +42345,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
|
|||
thunk32_vkTrimCommandPoolKHR,
|
||||
thunk32_vkUninitializePerformanceApiINTEL,
|
||||
thunk32_vkUnmapMemory,
|
||||
thunk32_vkUnmapMemory2KHR,
|
||||
(void *)thunk32_vkUpdateDescriptorSetWithTemplate,
|
||||
thunk32_vkUpdateDescriptorSetWithTemplateKHR,
|
||||
(void *)thunk32_vkUpdateDescriptorSets,
|
||||
|
|
|
@ -55,7 +55,9 @@ VkResult wine_vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice phys
|
|||
VkResult wine_vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, VkSurfaceCapabilities2KHR *pSurfaceCapabilities) DECLSPEC_HIDDEN;
|
||||
VkResult wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR *pSurfaceCapabilities) DECLSPEC_HIDDEN;
|
||||
VkResult wine_vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void **ppData) DECLSPEC_HIDDEN;
|
||||
VkResult wine_vkMapMemory2KHR(VkDevice device, const VkMemoryMapInfoKHR *pMemoryMapInfo, void **ppData) DECLSPEC_HIDDEN;
|
||||
void wine_vkUnmapMemory(VkDevice device, VkDeviceMemory memory) DECLSPEC_HIDDEN;
|
||||
VkResult wine_vkUnmapMemory2KHR(VkDevice device, const VkMemoryUnmapInfoKHR *pMemoryUnmapInfo) DECLSPEC_HIDDEN;
|
||||
|
||||
/* For use by vkDevice and children */
|
||||
struct vulkan_device_funcs
|
||||
|
@ -490,6 +492,7 @@ struct vulkan_device_funcs
|
|||
VkResult (*p_vkInitializePerformanceApiINTEL)(VkDevice, const VkInitializePerformanceApiInfoINTEL *);
|
||||
VkResult (*p_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *);
|
||||
VkResult (*p_vkMapMemory)(VkDevice, VkDeviceMemory, VkDeviceSize, VkDeviceSize, VkMemoryMapFlags, void **);
|
||||
VkResult (*p_vkMapMemory2KHR)(VkDevice, const VkMemoryMapInfoKHR *, void **);
|
||||
VkResult (*p_vkMergePipelineCaches)(VkDevice, VkPipelineCache, uint32_t, const VkPipelineCache *);
|
||||
VkResult (*p_vkMergeValidationCachesEXT)(VkDevice, VkValidationCacheEXT, uint32_t, const VkValidationCacheEXT *);
|
||||
void (*p_vkQueueBeginDebugUtilsLabelEXT)(VkQueue, const VkDebugUtilsLabelEXT *);
|
||||
|
@ -525,6 +528,7 @@ struct vulkan_device_funcs
|
|||
void (*p_vkTrimCommandPoolKHR)(VkDevice, VkCommandPool, VkCommandPoolTrimFlags);
|
||||
void (*p_vkUninitializePerformanceApiINTEL)(VkDevice);
|
||||
void (*p_vkUnmapMemory)(VkDevice, VkDeviceMemory);
|
||||
VkResult (*p_vkUnmapMemory2KHR)(VkDevice, const VkMemoryUnmapInfoKHR *);
|
||||
void (*p_vkUpdateDescriptorSetWithTemplate)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *);
|
||||
void (*p_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *);
|
||||
void (*p_vkUpdateDescriptorSets)(VkDevice, uint32_t, const VkWriteDescriptorSet *, uint32_t, const VkCopyDescriptorSet *);
|
||||
|
@ -1025,6 +1029,7 @@ struct vulkan_instance_funcs
|
|||
USE_VK_FUNC(vkInitializePerformanceApiINTEL) \
|
||||
USE_VK_FUNC(vkInvalidateMappedMemoryRanges) \
|
||||
USE_VK_FUNC(vkMapMemory) \
|
||||
USE_VK_FUNC(vkMapMemory2KHR) \
|
||||
USE_VK_FUNC(vkMergePipelineCaches) \
|
||||
USE_VK_FUNC(vkMergeValidationCachesEXT) \
|
||||
USE_VK_FUNC(vkQueueBeginDebugUtilsLabelEXT) \
|
||||
|
@ -1060,6 +1065,7 @@ struct vulkan_instance_funcs
|
|||
USE_VK_FUNC(vkTrimCommandPoolKHR) \
|
||||
USE_VK_FUNC(vkUninitializePerformanceApiINTEL) \
|
||||
USE_VK_FUNC(vkUnmapMemory) \
|
||||
USE_VK_FUNC(vkUnmapMemory2KHR) \
|
||||
USE_VK_FUNC(vkUpdateDescriptorSetWithTemplate) \
|
||||
USE_VK_FUNC(vkUpdateDescriptorSetWithTemplateKHR) \
|
||||
USE_VK_FUNC(vkUpdateDescriptorSets) \
|
||||
|
|
|
@ -403,6 +403,8 @@
|
|||
#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
|
||||
#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
|
||||
#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
|
||||
#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1
|
||||
#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
|
||||
#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
|
||||
#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
|
||||
#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
|
||||
|
@ -4154,6 +4156,8 @@ typedef enum VkStructureType
|
|||
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
|
||||
VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = 1000271000,
|
||||
VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = 1000271001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
|
||||
VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
|
||||
VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
|
||||
|
@ -6519,6 +6523,16 @@ typedef struct VkMemoryHostPointerPropertiesEXT
|
|||
uint32_t memoryTypeBits;
|
||||
} VkMemoryHostPointerPropertiesEXT;
|
||||
|
||||
typedef struct VkMemoryMapInfoKHR
|
||||
{
|
||||
VkStructureType sType;
|
||||
const void *pNext;
|
||||
VkMemoryMapFlags flags;
|
||||
VkDeviceMemory WINE_VK_ALIGN(8) memory;
|
||||
VkDeviceSize WINE_VK_ALIGN(8) offset;
|
||||
VkDeviceSize WINE_VK_ALIGN(8) size;
|
||||
} VkMemoryMapInfoKHR;
|
||||
|
||||
typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo
|
||||
{
|
||||
VkStructureType sType;
|
||||
|
@ -6556,6 +6570,14 @@ typedef struct VkMemoryType
|
|||
uint32_t heapIndex;
|
||||
} VkMemoryType;
|
||||
|
||||
typedef struct VkMemoryUnmapInfoKHR
|
||||
{
|
||||
VkStructureType sType;
|
||||
const void *pNext;
|
||||
VkMemoryUnmapFlagsKHR flags;
|
||||
VkDeviceMemory WINE_VK_ALIGN(8) memory;
|
||||
} VkMemoryUnmapInfoKHR;
|
||||
|
||||
typedef struct VkMemoryWin32HandlePropertiesKHR
|
||||
{
|
||||
VkStructureType sType;
|
||||
|
@ -12282,6 +12304,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice, VkValida
|
|||
typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice, const VkInitializePerformanceApiInfoINTEL *);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice, VkDeviceMemory, VkDeviceSize, VkDeviceSize, VkMemoryMapFlags, void **);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice, const VkMemoryMapInfoKHR *, void **);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice, VkPipelineCache, uint32_t, const VkPipelineCache *);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice, VkValidationCacheEXT, uint32_t, const VkValidationCacheEXT *);
|
||||
typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue, const VkDebugUtilsLabelEXT *);
|
||||
|
@ -12318,6 +12341,7 @@ typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice, VkCommandPool, VkComma
|
|||
typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice, VkCommandPool, VkCommandPoolTrimFlags);
|
||||
typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice);
|
||||
typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice, VkDeviceMemory);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice, const VkMemoryUnmapInfoKHR *);
|
||||
typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *);
|
||||
typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *);
|
||||
typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice, uint32_t, const VkWriteDescriptorSet *, uint32_t, const VkCopyDescriptorSet *);
|
||||
|
@ -12826,6 +12850,7 @@ VkResult VKAPI_CALL vkGetValidationCacheDataEXT(VkDevice device, VkValidationCac
|
|||
VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(VkDevice device, const VkInitializePerformanceApiInfoINTEL *pInitializeInfo);
|
||||
VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange *pMemoryRanges);
|
||||
VkResult VKAPI_CALL vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void **ppData);
|
||||
VkResult VKAPI_CALL vkMapMemory2KHR(VkDevice device, const VkMemoryMapInfoKHR *pMemoryMapInfo, void **ppData);
|
||||
VkResult VKAPI_CALL vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache *pSrcCaches);
|
||||
VkResult VKAPI_CALL vkMergeValidationCachesEXT(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT *pSrcCaches);
|
||||
void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(VkQueue queue, const VkDebugUtilsLabelEXT *pLabelInfo);
|
||||
|
@ -12862,6 +12887,7 @@ void VKAPI_CALL vkTrimCommandPool(VkDevice device, VkCommandPool commandPool, Vk
|
|||
void VKAPI_CALL vkTrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
|
||||
void VKAPI_CALL vkUninitializePerformanceApiINTEL(VkDevice device);
|
||||
void VKAPI_CALL vkUnmapMemory(VkDevice device, VkDeviceMemory memory);
|
||||
VkResult VKAPI_CALL vkUnmapMemory2KHR(VkDevice device, const VkMemoryUnmapInfoKHR *pMemoryUnmapInfo);
|
||||
void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void *pData);
|
||||
void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void *pData);
|
||||
void VKAPI_CALL vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet *pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet *pDescriptorCopies);
|
||||
|
|
Loading…
Reference in a new issue