Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
0a56a4ad
Commit
0a56a4ad
authored
Apr 07, 2023
by
Jacek Caban
Committed by
Alexandre Julliard
Apr 07, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winevulkan: Add support for VK_KHR_map_memory2.
parent
389fbcf9
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
239 additions
and
8 deletions
+239
-8
loader_thunks.c
dlls/winevulkan/loader_thunks.c
+25
-0
loader_thunks.h
dlls/winevulkan/loader_thunks.h
+17
-0
make_vulkan
dlls/winevulkan/make_vulkan
+2
-1
vulkan.c
dlls/winevulkan/vulkan.c
+55
-7
vulkan_thunks.c
dlls/winevulkan/vulkan_thunks.c
+108
-0
vulkan_thunks.h
dlls/winevulkan/vulkan_thunks.h
+6
-0
vulkan.h
include/wine/vulkan.h
+26
-0
No files found.
dlls/winevulkan/loader_thunks.c
View file @
0a56a4ad
...
...
@@ -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
,
&
params
);
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
,
&
params
);
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
},
...
...
dlls/winevulkan/loader_thunks.h
View file @
0a56a4ad
...
...
@@ -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
;
...
...
dlls/winevulkan/make_vulkan
View file @
0a56a4ad
...
...
@@ -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
},
...
...
dlls/winevulkan/vulkan.c
View file @
0a56a4ad
...
...
@@ -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
,
...
...
dlls/winevulkan/vulkan_thunks.c
View file @
0a56a4ad
...
...
@@ -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
;
...
...
@@ -39519,6 +39563,36 @@ static NTSTATUS thunk32_vkMapMemory(void *args)
}
#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
)
{
struct
vkMergePipelineCaches_params
*
params
=
args
;
...
...
@@ -40584,6 +40658,35 @@ static NTSTATUS thunk32_vkUnmapMemory(void *args)
}
#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
)
{
struct
vkUpdateDescriptorSetWithTemplate_params
*
params
=
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
,
dlls/winevulkan/vulkan_thunks.h
View file @
0a56a4ad
...
...
@@ -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) \
...
...
include/wine/vulkan.h
View file @
0a56a4ad
...
...
@@ -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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment