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
0a2bffa7
Commit
0a2bffa7
authored
Nov 10, 2022
by
Georg Lehmann
Committed by
Alexandre Julliard
Nov 11, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winevulkan: Fix handling bitmasks in needs_alignment.
parent
e05a8697
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
514 additions
and
51 deletions
+514
-51
loader_thunks.h
dlls/winevulkan/loader_thunks.h
+5
-5
make_vulkan
dlls/winevulkan/make_vulkan
+5
-0
vulkan_thunks.c
dlls/winevulkan/vulkan_thunks.c
+484
-26
vulkan.h
include/wine/vulkan.h
+20
-20
No files found.
dlls/winevulkan/loader_thunks.h
View file @
0a2bffa7
...
@@ -1557,14 +1557,14 @@ struct vkCmdResetEvent2_params
...
@@ -1557,14 +1557,14 @@ struct vkCmdResetEvent2_params
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkEvent
DECLSPEC_ALIGN
(
8
)
event
;
VkEvent
DECLSPEC_ALIGN
(
8
)
event
;
VkPipelineStageFlags2
stageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stageMask
;
};
};
struct
vkCmdResetEvent2KHR_params
struct
vkCmdResetEvent2KHR_params
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkEvent
DECLSPEC_ALIGN
(
8
)
event
;
VkEvent
DECLSPEC_ALIGN
(
8
)
event
;
VkPipelineStageFlags2
stageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stageMask
;
};
};
struct
vkCmdResetQueryPool_params
struct
vkCmdResetQueryPool_params
...
@@ -2316,7 +2316,7 @@ struct vkCmdWriteAccelerationStructuresPropertiesNV_params
...
@@ -2316,7 +2316,7 @@ struct vkCmdWriteAccelerationStructuresPropertiesNV_params
struct
vkCmdWriteBufferMarker2AMD_params
struct
vkCmdWriteBufferMarker2AMD_params
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkPipelineStageFlags2
stage
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stage
;
VkBuffer
DECLSPEC_ALIGN
(
8
)
dstBuffer
;
VkBuffer
DECLSPEC_ALIGN
(
8
)
dstBuffer
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
dstOffset
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
dstOffset
;
uint32_t
marker
;
uint32_t
marker
;
...
@@ -2352,7 +2352,7 @@ struct vkCmdWriteTimestamp_params
...
@@ -2352,7 +2352,7 @@ struct vkCmdWriteTimestamp_params
struct
vkCmdWriteTimestamp2_params
struct
vkCmdWriteTimestamp2_params
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkPipelineStageFlags2
stage
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stage
;
VkQueryPool
DECLSPEC_ALIGN
(
8
)
queryPool
;
VkQueryPool
DECLSPEC_ALIGN
(
8
)
queryPool
;
uint32_t
query
;
uint32_t
query
;
};
};
...
@@ -2360,7 +2360,7 @@ struct vkCmdWriteTimestamp2_params
...
@@ -2360,7 +2360,7 @@ struct vkCmdWriteTimestamp2_params
struct
vkCmdWriteTimestamp2KHR_params
struct
vkCmdWriteTimestamp2KHR_params
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkPipelineStageFlags2
stage
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stage
;
VkQueryPool
DECLSPEC_ALIGN
(
8
)
queryPool
;
VkQueryPool
DECLSPEC_ALIGN
(
8
)
queryPool
;
uint32_t
query
;
uint32_t
query
;
};
};
...
...
dlls/winevulkan/make_vulkan
View file @
0a2bffa7
...
@@ -1165,6 +1165,9 @@ class VkVariable(object):
...
@@ -1165,6 +1165,9 @@ class VkVariable(object):
def
is_union
(
self
):
def
is_union
(
self
):
return
self
.
type_info
[
"category"
]
==
"union"
return
self
.
type_info
[
"category"
]
==
"union"
def
is_bitmask
(
self
):
return
self
.
type_info
[
"category"
]
==
"bitmask"
def
is_dynamic_array
(
self
):
def
is_dynamic_array
(
self
):
""" Returns if the member is an array element.
""" Returns if the member is an array element.
Vulkan uses this for dynamically sized arrays for which
Vulkan uses this for dynamically sized arrays for which
...
@@ -1197,6 +1200,8 @@ class VkVariable(object):
...
@@ -1197,6 +1200,8 @@ class VkVariable(object):
return
False
return
False
elif
self
.
type
in
[
"uint64_t"
,
"VkDeviceAddress"
,
"VkDeviceSize"
]:
elif
self
.
type
in
[
"uint64_t"
,
"VkDeviceAddress"
,
"VkDeviceSize"
]:
return
True
return
True
elif
self
.
is_bitmask
():
return
self
.
type_info
[
"data"
]
.
type
==
"VkFlags64"
elif
self
.
is_struct
()
or
self
.
is_union
():
elif
self
.
is_struct
()
or
self
.
is_union
():
return
self
.
type_info
[
"data"
]
.
needs_alignment
()
return
self
.
type_info
[
"data"
]
.
needs_alignment
()
elif
self
.
is_handle
():
elif
self
.
is_handle
():
...
...
dlls/winevulkan/vulkan_thunks.c
View file @
0a2bffa7
...
@@ -493,7 +493,7 @@ typedef struct VkDecompressMemoryRegionNV32
...
@@ -493,7 +493,7 @@ typedef struct VkDecompressMemoryRegionNV32
VkDeviceAddress
DECLSPEC_ALIGN
(
8
)
dstAddress
;
VkDeviceAddress
DECLSPEC_ALIGN
(
8
)
dstAddress
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
compressedSize
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
compressedSize
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
decompressedSize
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
decompressedSize
;
VkMemoryDecompressionMethodFlagsNV
decompressionMethod
;
VkMemoryDecompressionMethodFlagsNV
DECLSPEC_ALIGN
(
8
)
decompressionMethod
;
}
VkDecompressMemoryRegionNV32
;
}
VkDecompressMemoryRegionNV32
;
typedef
struct
VkIndirectCommandsStreamNV32
typedef
struct
VkIndirectCommandsStreamNV32
...
@@ -548,14 +548,25 @@ typedef struct VkImageMemoryBarrier32
...
@@ -548,14 +548,25 @@ typedef struct VkImageMemoryBarrier32
VkImageSubresourceRange
subresourceRange
;
VkImageSubresourceRange
subresourceRange
;
}
VkImageMemoryBarrier32
;
}
VkImageMemoryBarrier32
;
typedef
struct
VkMemoryBarrier232
{
VkStructureType
sType
;
const
void
*
pNext
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
srcStageMask
;
VkAccessFlags2
DECLSPEC_ALIGN
(
8
)
srcAccessMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
dstStageMask
;
VkAccessFlags2
DECLSPEC_ALIGN
(
8
)
dstAccessMask
;
}
VkMemoryBarrier232
;
typedef
VkMemoryBarrier232
VkMemoryBarrier2KHR32
;
typedef
struct
VkBufferMemoryBarrier232
typedef
struct
VkBufferMemoryBarrier232
{
{
VkStructureType
sType
;
VkStructureType
sType
;
const
void
*
pNext
;
const
void
*
pNext
;
VkPipelineStageFlags2
srcStageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
srcStageMask
;
VkAccessFlags2
srcAccessMask
;
VkAccessFlags2
DECLSPEC_ALIGN
(
8
)
srcAccessMask
;
VkPipelineStageFlags2
dstStageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
dstStageMask
;
VkAccessFlags2
dstAccessMask
;
VkAccessFlags2
DECLSPEC_ALIGN
(
8
)
dstAccessMask
;
uint32_t
srcQueueFamilyIndex
;
uint32_t
srcQueueFamilyIndex
;
uint32_t
dstQueueFamilyIndex
;
uint32_t
dstQueueFamilyIndex
;
VkBuffer
DECLSPEC_ALIGN
(
8
)
buffer
;
VkBuffer
DECLSPEC_ALIGN
(
8
)
buffer
;
...
@@ -568,10 +579,10 @@ typedef struct VkImageMemoryBarrier232
...
@@ -568,10 +579,10 @@ typedef struct VkImageMemoryBarrier232
{
{
VkStructureType
sType
;
VkStructureType
sType
;
const
void
*
pNext
;
const
void
*
pNext
;
VkPipelineStageFlags2
srcStageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
srcStageMask
;
VkAccessFlags2
srcAccessMask
;
VkAccessFlags2
DECLSPEC_ALIGN
(
8
)
srcAccessMask
;
VkPipelineStageFlags2
dstStageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
dstStageMask
;
VkAccessFlags2
dstAccessMask
;
VkAccessFlags2
DECLSPEC_ALIGN
(
8
)
dstAccessMask
;
VkImageLayout
oldLayout
;
VkImageLayout
oldLayout
;
VkImageLayout
newLayout
;
VkImageLayout
newLayout
;
uint32_t
srcQueueFamilyIndex
;
uint32_t
srcQueueFamilyIndex
;
...
@@ -587,7 +598,7 @@ typedef struct VkDependencyInfo32
...
@@ -587,7 +598,7 @@ typedef struct VkDependencyInfo32
const
void
*
pNext
;
const
void
*
pNext
;
VkDependencyFlags
dependencyFlags
;
VkDependencyFlags
dependencyFlags
;
uint32_t
memoryBarrierCount
;
uint32_t
memoryBarrierCount
;
const
VkMemoryBarrier2
*
pMemoryBarriers
;
const
VkMemoryBarrier2
32
*
pMemoryBarriers
;
uint32_t
bufferMemoryBarrierCount
;
uint32_t
bufferMemoryBarrierCount
;
const
VkBufferMemoryBarrier232
*
pBufferMemoryBarriers
;
const
VkBufferMemoryBarrier232
*
pBufferMemoryBarriers
;
uint32_t
imageMemoryBarrierCount
;
uint32_t
imageMemoryBarrierCount
;
...
@@ -1227,6 +1238,16 @@ typedef struct VkPerformanceValueINTEL32
...
@@ -1227,6 +1238,16 @@ typedef struct VkPerformanceValueINTEL32
VkPerformanceValueDataINTEL
DECLSPEC_ALIGN
(
8
)
data
;
VkPerformanceValueDataINTEL
DECLSPEC_ALIGN
(
8
)
data
;
}
VkPerformanceValueINTEL32
;
}
VkPerformanceValueINTEL32
;
typedef
struct
VkFormatProperties332
{
VkStructureType
sType
;
void
*
pNext
;
VkFormatFeatureFlags2
DECLSPEC_ALIGN
(
8
)
linearTilingFeatures
;
VkFormatFeatureFlags2
DECLSPEC_ALIGN
(
8
)
optimalTilingFeatures
;
VkFormatFeatureFlags2
DECLSPEC_ALIGN
(
8
)
bufferFeatures
;
}
VkFormatProperties332
;
typedef
VkFormatProperties332
VkFormatProperties3KHR32
;
typedef
struct
VkImageFormatProperties32
typedef
struct
VkImageFormatProperties32
{
{
VkExtent3D
maxExtent
;
VkExtent3D
maxExtent
;
...
@@ -1449,7 +1470,7 @@ typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV32
...
@@ -1449,7 +1470,7 @@ typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV32
{
{
VkStructureType
sType
;
VkStructureType
sType
;
void
*
pNext
;
void
*
pNext
;
VkMemoryDecompressionMethodFlagsNV
decompressionMethods
;
VkMemoryDecompressionMethodFlagsNV
DECLSPEC_ALIGN
(
8
)
decompressionMethods
;
uint64_t
DECLSPEC_ALIGN
(
8
)
maxDecompressionIndirectCount
;
uint64_t
DECLSPEC_ALIGN
(
8
)
maxDecompressionIndirectCount
;
}
VkPhysicalDeviceMemoryDecompressionPropertiesNV32
;
}
VkPhysicalDeviceMemoryDecompressionPropertiesNV32
;
...
@@ -1647,6 +1668,13 @@ typedef struct VkPhysicalDeviceProperties232
...
@@ -1647,6 +1668,13 @@ typedef struct VkPhysicalDeviceProperties232
}
VkPhysicalDeviceProperties232
;
}
VkPhysicalDeviceProperties232
;
typedef
VkPhysicalDeviceProperties232
VkPhysicalDeviceProperties2KHR32
;
typedef
VkPhysicalDeviceProperties232
VkPhysicalDeviceProperties2KHR32
;
typedef
struct
VkQueueFamilyCheckpointProperties2NV32
{
VkStructureType
sType
;
void
*
pNext
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
checkpointExecutionStageMask
;
}
VkQueueFamilyCheckpointProperties2NV32
;
typedef
struct
VkPhysicalDeviceSurfaceInfo2KHR32
typedef
struct
VkPhysicalDeviceSurfaceInfo2KHR32
{
{
VkStructureType
sType
;
VkStructureType
sType
;
...
@@ -1681,6 +1709,14 @@ typedef struct VkPipelineExecutableStatisticKHR32
...
@@ -1681,6 +1709,14 @@ typedef struct VkPipelineExecutableStatisticKHR32
}
VkPipelineExecutableStatisticKHR32
;
}
VkPipelineExecutableStatisticKHR32
;
typedef
struct
VkCheckpointData2NV32
{
VkStructureType
sType
;
void
*
pNext
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stage
;
void
*
pCheckpointMarker
;
}
VkCheckpointData2NV32
;
typedef
struct
VkSparseMemoryBind32
typedef
struct
VkSparseMemoryBind32
{
{
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
resourceOffset
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
resourceOffset
;
...
@@ -1743,7 +1779,7 @@ typedef struct VkSemaphoreSubmitInfo32
...
@@ -1743,7 +1779,7 @@ typedef struct VkSemaphoreSubmitInfo32
const
void
*
pNext
;
const
void
*
pNext
;
VkSemaphore
DECLSPEC_ALIGN
(
8
)
semaphore
;
VkSemaphore
DECLSPEC_ALIGN
(
8
)
semaphore
;
uint64_t
DECLSPEC_ALIGN
(
8
)
value
;
uint64_t
DECLSPEC_ALIGN
(
8
)
value
;
VkPipelineStageFlags2
stageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stageMask
;
uint32_t
deviceIndex
;
uint32_t
deviceIndex
;
}
VkSemaphoreSubmitInfo32
;
}
VkSemaphoreSubmitInfo32
;
typedef
VkSemaphoreSubmitInfo32
VkSemaphoreSubmitInfoKHR32
;
typedef
VkSemaphoreSubmitInfo32
VkSemaphoreSubmitInfoKHR32
;
...
@@ -3098,6 +3134,38 @@ static inline const VkImageMemoryBarrier *convert_VkImageMemoryBarrier_array_win
...
@@ -3098,6 +3134,38 @@ static inline const VkImageMemoryBarrier *convert_VkImageMemoryBarrier_array_win
#endif
/* USE_STRUCT_CONVERSION */
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkMemoryBarrier2_win32_to_host
(
const
VkMemoryBarrier232
*
in
,
VkMemoryBarrier2
*
out
)
{
if
(
!
in
)
return
;
out
->
sType
=
in
->
sType
;
out
->
pNext
=
in
->
pNext
;
out
->
srcStageMask
=
in
->
srcStageMask
;
out
->
srcAccessMask
=
in
->
srcAccessMask
;
out
->
dstStageMask
=
in
->
dstStageMask
;
out
->
dstAccessMask
=
in
->
dstAccessMask
;
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
const
VkMemoryBarrier2
*
convert_VkMemoryBarrier2_array_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkMemoryBarrier232
*
in
,
uint32_t
count
)
{
VkMemoryBarrier2
*
out
;
unsigned
int
i
;
if
(
!
in
||
!
count
)
return
NULL
;
out
=
conversion_context_alloc
(
ctx
,
count
*
sizeof
(
*
out
));
for
(
i
=
0
;
i
<
count
;
i
++
)
{
convert_VkMemoryBarrier2_win32_to_host
(
&
in
[
i
],
&
out
[
i
]);
}
return
out
;
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkBufferMemoryBarrier2_win32_to_host
(
const
VkBufferMemoryBarrier232
*
in
,
VkBufferMemoryBarrier2
*
out
)
static
inline
void
convert_VkBufferMemoryBarrier2_win32_to_host
(
const
VkBufferMemoryBarrier232
*
in
,
VkBufferMemoryBarrier2
*
out
)
{
{
if
(
!
in
)
return
;
if
(
!
in
)
return
;
...
@@ -3181,7 +3249,7 @@ static inline void convert_VkDependencyInfo_win32_to_host(struct conversion_cont
...
@@ -3181,7 +3249,7 @@ static inline void convert_VkDependencyInfo_win32_to_host(struct conversion_cont
out
->
pNext
=
in
->
pNext
;
out
->
pNext
=
in
->
pNext
;
out
->
dependencyFlags
=
in
->
dependencyFlags
;
out
->
dependencyFlags
=
in
->
dependencyFlags
;
out
->
memoryBarrierCount
=
in
->
memoryBarrierCount
;
out
->
memoryBarrierCount
=
in
->
memoryBarrierCount
;
out
->
pMemoryBarriers
=
in
->
pMemoryBarriers
;
out
->
pMemoryBarriers
=
convert_VkMemoryBarrier2_array_win32_to_host
(
ctx
,
in
->
pMemoryBarriers
,
in
->
memoryBarrierCount
)
;
out
->
bufferMemoryBarrierCount
=
in
->
bufferMemoryBarrierCount
;
out
->
bufferMemoryBarrierCount
=
in
->
bufferMemoryBarrierCount
;
out
->
pBufferMemoryBarriers
=
convert_VkBufferMemoryBarrier2_array_win32_to_host
(
ctx
,
in
->
pBufferMemoryBarriers
,
in
->
bufferMemoryBarrierCount
);
out
->
pBufferMemoryBarriers
=
convert_VkBufferMemoryBarrier2_array_win32_to_host
(
ctx
,
in
->
pBufferMemoryBarriers
,
in
->
bufferMemoryBarrierCount
);
out
->
imageMemoryBarrierCount
=
in
->
imageMemoryBarrierCount
;
out
->
imageMemoryBarrierCount
=
in
->
imageMemoryBarrierCount
;
...
@@ -8938,6 +9006,88 @@ static inline void convert_VkRayTracingPipelineCreateInfoNV_array_host_to_win32(
...
@@ -8938,6 +9006,88 @@ static inline void convert_VkRayTracingPipelineCreateInfoNV_array_host_to_win32(
#endif
/* USE_STRUCT_CONVERSION */
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkSubpassDependency2_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkSubpassDependency2
*
in
,
VkSubpassDependency2
*
out
)
{
const
VkBaseInStructure
*
in_header
;
VkBaseOutStructure
*
out_header
=
(
void
*
)
out
;
if
(
!
in
)
return
;
out
->
sType
=
in
->
sType
;
out
->
pNext
=
NULL
;
out
->
srcSubpass
=
in
->
srcSubpass
;
out
->
dstSubpass
=
in
->
dstSubpass
;
out
->
srcStageMask
=
in
->
srcStageMask
;
out
->
dstStageMask
=
in
->
dstStageMask
;
out
->
srcAccessMask
=
in
->
srcAccessMask
;
out
->
dstAccessMask
=
in
->
dstAccessMask
;
out
->
dependencyFlags
=
in
->
dependencyFlags
;
out
->
viewOffset
=
in
->
viewOffset
;
for
(
in_header
=
in
->
pNext
;
in_header
;
in_header
=
in_header
->
pNext
)
{
switch
(
in_header
->
sType
)
{
case
VK_STRUCTURE_TYPE_MEMORY_BARRIER_2
:
{
VkMemoryBarrier2
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
const
VkMemoryBarrier232
*
in_ext
=
(
const
VkMemoryBarrier232
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_MEMORY_BARRIER_2
;
out_ext
->
pNext
=
NULL
;
out_ext
->
srcStageMask
=
in_ext
->
srcStageMask
;
out_ext
->
srcAccessMask
=
in_ext
->
srcAccessMask
;
out_ext
->
dstStageMask
=
in_ext
->
dstStageMask
;
out_ext
->
dstAccessMask
=
in_ext
->
dstAccessMask
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
default:
FIXME
(
"Unhandled sType %u."
,
in_header
->
sType
);
break
;
}
}
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
const
VkSubpassDependency2
*
convert_VkSubpassDependency2_array_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkSubpassDependency2
*
in
,
uint32_t
count
)
{
VkSubpassDependency2
*
out
;
unsigned
int
i
;
if
(
!
in
||
!
count
)
return
NULL
;
out
=
conversion_context_alloc
(
ctx
,
count
*
sizeof
(
*
out
));
for
(
i
=
0
;
i
<
count
;
i
++
)
{
convert_VkSubpassDependency2_win32_to_host
(
ctx
,
&
in
[
i
],
&
out
[
i
]);
}
return
out
;
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkRenderPassCreateInfo2_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkRenderPassCreateInfo2
*
in
,
VkRenderPassCreateInfo2
*
out
)
{
if
(
!
in
)
return
;
out
->
sType
=
in
->
sType
;
out
->
pNext
=
in
->
pNext
;
out
->
flags
=
in
->
flags
;
out
->
attachmentCount
=
in
->
attachmentCount
;
out
->
pAttachments
=
in
->
pAttachments
;
out
->
subpassCount
=
in
->
subpassCount
;
out
->
pSubpasses
=
in
->
pSubpasses
;
out
->
dependencyCount
=
in
->
dependencyCount
;
out
->
pDependencies
=
convert_VkSubpassDependency2_array_win32_to_host
(
ctx
,
in
->
pDependencies
,
in
->
dependencyCount
);
out
->
correlatedViewMaskCount
=
in
->
correlatedViewMaskCount
;
out
->
pCorrelatedViewMasks
=
in
->
pCorrelatedViewMasks
;
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkSamplerCreateInfo_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkSamplerCreateInfo
*
in
,
VkSamplerCreateInfo
*
out
)
static
inline
void
convert_VkSamplerCreateInfo_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkSamplerCreateInfo
*
in
,
VkSamplerCreateInfo
*
out
)
{
{
const
VkBaseInStructure
*
in_header
;
const
VkBaseInStructure
*
in_header
;
...
@@ -9863,6 +10013,88 @@ static inline void convert_VkPhysicalDeviceExternalSemaphoreInfo_win32_to_host(s
...
@@ -9863,6 +10013,88 @@ static inline void convert_VkPhysicalDeviceExternalSemaphoreInfo_win32_to_host(s
#endif
/* USE_STRUCT_CONVERSION */
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkFormatProperties2_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkFormatProperties2
*
in
,
VkFormatProperties2
*
out
)
{
const
VkBaseInStructure
*
in_header
;
VkBaseOutStructure
*
out_header
=
(
void
*
)
out
;
if
(
!
in
)
return
;
out
->
sType
=
in
->
sType
;
out
->
pNext
=
NULL
;
for
(
in_header
=
in
->
pNext
;
in_header
;
in_header
=
in_header
->
pNext
)
{
switch
(
in_header
->
sType
)
{
case
VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
:
{
VkSubpassResolvePerformanceQueryEXT
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
out_ext
->
sType
=
VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
;
out_ext
->
pNext
=
NULL
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
:
{
VkFormatProperties3
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
out_ext
->
sType
=
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
;
out_ext
->
pNext
=
NULL
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
default:
FIXME
(
"Unhandled sType %u."
,
in_header
->
sType
);
break
;
}
}
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkFormatProperties2_host_to_win32
(
const
VkFormatProperties2
*
in
,
VkFormatProperties2
*
out
)
{
const
VkBaseInStructure
*
in_header
;
VkBaseOutStructure
*
out_header
=
(
void
*
)
out
;
if
(
!
in
)
return
;
out
->
formatProperties
=
in
->
formatProperties
;
for
(
in_header
=
in
->
pNext
;
in_header
;
in_header
=
in_header
->
pNext
)
{
switch
(
in_header
->
sType
)
{
case
VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
:
{
VkSubpassResolvePerformanceQueryEXT
*
out_ext
=
find_next_struct
(
out_header
,
VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
);
const
VkSubpassResolvePerformanceQueryEXT
*
in_ext
=
(
const
VkSubpassResolvePerformanceQueryEXT
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
;
out_ext
->
optimal
=
in_ext
->
optimal
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
:
{
VkFormatProperties332
*
out_ext
=
find_next_struct
(
out_header
,
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
);
const
VkFormatProperties3
*
in_ext
=
(
const
VkFormatProperties3
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
;
out_ext
->
linearTilingFeatures
=
in_ext
->
linearTilingFeatures
;
out_ext
->
optimalTilingFeatures
=
in_ext
->
optimalTilingFeatures
;
out_ext
->
bufferFeatures
=
in_ext
->
bufferFeatures
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
default:
break
;
}
}
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkImageFormatProperties_host_to_win32
(
const
VkImageFormatProperties
*
in
,
VkImageFormatProperties32
*
out
)
static
inline
void
convert_VkImageFormatProperties_host_to_win32
(
const
VkImageFormatProperties
*
in
,
VkImageFormatProperties32
*
out
)
{
{
if
(
!
in
)
return
;
if
(
!
in
)
return
;
...
@@ -11688,6 +11920,140 @@ static inline void convert_VkPhysicalDeviceProperties2_host_to_win32(const VkPhy
...
@@ -11688,6 +11920,140 @@ static inline void convert_VkPhysicalDeviceProperties2_host_to_win32(const VkPhy
#endif
/* USE_STRUCT_CONVERSION */
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkQueueFamilyProperties2_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkQueueFamilyProperties2
*
in
,
VkQueueFamilyProperties2
*
out
)
{
const
VkBaseInStructure
*
in_header
;
VkBaseOutStructure
*
out_header
=
(
void
*
)
out
;
if
(
!
in
)
return
;
out
->
sType
=
in
->
sType
;
out
->
pNext
=
NULL
;
for
(
in_header
=
in
->
pNext
;
in_header
;
in_header
=
in_header
->
pNext
)
{
switch
(
in_header
->
sType
)
{
case
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
:
{
VkQueueFamilyGlobalPriorityPropertiesKHR
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
const
VkQueueFamilyGlobalPriorityPropertiesKHR
*
in_ext
=
(
const
VkQueueFamilyGlobalPriorityPropertiesKHR
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
;
out_ext
->
pNext
=
NULL
;
out_ext
->
priorityCount
=
in_ext
->
priorityCount
;
memcpy
(
out_ext
->
priorities
,
in_ext
->
priorities
,
VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
*
sizeof
(
VkQueueGlobalPriorityKHR
));
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
:
{
VkQueueFamilyCheckpointPropertiesNV
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
out_ext
->
sType
=
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
;
out_ext
->
pNext
=
NULL
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
:
{
VkQueueFamilyCheckpointProperties2NV
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
out_ext
->
sType
=
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
;
out_ext
->
pNext
=
NULL
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
default:
FIXME
(
"Unhandled sType %u."
,
in_header
->
sType
);
break
;
}
}
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkQueueFamilyProperties2_host_to_win32
(
const
VkQueueFamilyProperties2
*
in
,
VkQueueFamilyProperties2
*
out
)
{
const
VkBaseInStructure
*
in_header
;
VkBaseOutStructure
*
out_header
=
(
void
*
)
out
;
if
(
!
in
)
return
;
out
->
queueFamilyProperties
=
in
->
queueFamilyProperties
;
for
(
in_header
=
in
->
pNext
;
in_header
;
in_header
=
in_header
->
pNext
)
{
switch
(
in_header
->
sType
)
{
case
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
:
{
VkQueueFamilyGlobalPriorityPropertiesKHR
*
out_ext
=
find_next_struct
(
out_header
,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
);
const
VkQueueFamilyGlobalPriorityPropertiesKHR
*
in_ext
=
(
const
VkQueueFamilyGlobalPriorityPropertiesKHR
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
;
out_ext
->
priorityCount
=
in_ext
->
priorityCount
;
memcpy
(
out_ext
->
priorities
,
in_ext
->
priorities
,
VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
*
sizeof
(
VkQueueGlobalPriorityKHR
));
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
:
{
VkQueueFamilyCheckpointPropertiesNV
*
out_ext
=
find_next_struct
(
out_header
,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
);
const
VkQueueFamilyCheckpointPropertiesNV
*
in_ext
=
(
const
VkQueueFamilyCheckpointPropertiesNV
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
;
out_ext
->
checkpointExecutionStageMask
=
in_ext
->
checkpointExecutionStageMask
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
:
{
VkQueueFamilyCheckpointProperties2NV32
*
out_ext
=
find_next_struct
(
out_header
,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
);
const
VkQueueFamilyCheckpointProperties2NV
*
in_ext
=
(
const
VkQueueFamilyCheckpointProperties2NV
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
;
out_ext
->
checkpointExecutionStageMask
=
in_ext
->
checkpointExecutionStageMask
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
default:
break
;
}
}
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
VkQueueFamilyProperties2
*
convert_VkQueueFamilyProperties2_array_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkQueueFamilyProperties2
*
in
,
uint32_t
count
)
{
VkQueueFamilyProperties2
*
out
;
unsigned
int
i
;
if
(
!
in
||
!
count
)
return
NULL
;
out
=
conversion_context_alloc
(
ctx
,
count
*
sizeof
(
*
out
));
for
(
i
=
0
;
i
<
count
;
i
++
)
{
convert_VkQueueFamilyProperties2_win32_to_host
(
ctx
,
&
in
[
i
],
&
out
[
i
]);
}
return
out
;
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkQueueFamilyProperties2_array_host_to_win32
(
const
VkQueueFamilyProperties2
*
in
,
VkQueueFamilyProperties2
*
out
,
uint32_t
count
)
{
unsigned
int
i
;
if
(
!
in
)
return
;
for
(
i
=
0
;
i
<
count
;
i
++
)
{
convert_VkQueueFamilyProperties2_host_to_win32
(
&
in
[
i
],
&
out
[
i
]);
}
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkPhysicalDeviceSurfaceInfo2KHR_win32_to_unwrapped_host
(
const
VkPhysicalDeviceSurfaceInfo2KHR32
*
in
,
VkPhysicalDeviceSurfaceInfo2KHR
*
out
)
static
inline
void
convert_VkPhysicalDeviceSurfaceInfo2KHR_win32_to_unwrapped_host
(
const
VkPhysicalDeviceSurfaceInfo2KHR32
*
in
,
VkPhysicalDeviceSurfaceInfo2KHR
*
out
)
{
{
if
(
!
in
)
return
;
if
(
!
in
)
return
;
...
@@ -11809,6 +12175,58 @@ static inline void convert_VkPipelineInfoEXT_win32_to_host(const VkPipelineInfoE
...
@@ -11809,6 +12175,58 @@ static inline void convert_VkPipelineInfoEXT_win32_to_host(const VkPipelineInfoE
#endif
/* USE_STRUCT_CONVERSION */
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkCheckpointData2NV_win32_to_host
(
const
VkCheckpointData2NV32
*
in
,
VkCheckpointData2NV
*
out
)
{
if
(
!
in
)
return
;
out
->
sType
=
in
->
sType
;
out
->
pNext
=
in
->
pNext
;
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkCheckpointData2NV_host_to_win32
(
const
VkCheckpointData2NV
*
in
,
VkCheckpointData2NV32
*
out
)
{
if
(
!
in
)
return
;
out
->
stage
=
in
->
stage
;
out
->
pCheckpointMarker
=
in
->
pCheckpointMarker
;
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
VkCheckpointData2NV
*
convert_VkCheckpointData2NV_array_win32_to_host
(
struct
conversion_context
*
ctx
,
const
VkCheckpointData2NV32
*
in
,
uint32_t
count
)
{
VkCheckpointData2NV
*
out
;
unsigned
int
i
;
if
(
!
in
||
!
count
)
return
NULL
;
out
=
conversion_context_alloc
(
ctx
,
count
*
sizeof
(
*
out
));
for
(
i
=
0
;
i
<
count
;
i
++
)
{
convert_VkCheckpointData2NV_win32_to_host
(
&
in
[
i
],
&
out
[
i
]);
}
return
out
;
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkCheckpointData2NV_array_host_to_win32
(
const
VkCheckpointData2NV
*
in
,
VkCheckpointData2NV32
*
out
,
uint32_t
count
)
{
unsigned
int
i
;
if
(
!
in
)
return
;
for
(
i
=
0
;
i
<
count
;
i
++
)
{
convert_VkCheckpointData2NV_host_to_win32
(
&
in
[
i
],
&
out
[
i
]);
}
}
#endif
/* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkSparseMemoryBind_win32_to_host
(
const
VkSparseMemoryBind32
*
in
,
VkSparseMemoryBind
*
out
)
static
inline
void
convert_VkSparseMemoryBind_win32_to_host
(
const
VkSparseMemoryBind32
*
in
,
VkSparseMemoryBind
*
out
)
{
{
if
(
!
in
)
return
;
if
(
!
in
)
return
;
...
@@ -16677,7 +17095,7 @@ static NTSTATUS thunk32_vkCmdResetEvent2(void *args)
...
@@ -16677,7 +17095,7 @@ static NTSTATUS thunk32_vkCmdResetEvent2(void *args)
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkEvent
DECLSPEC_ALIGN
(
8
)
event
;
VkEvent
DECLSPEC_ALIGN
(
8
)
event
;
VkPipelineStageFlags2
stageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stageMask
;
}
*
params
=
args
;
}
*
params
=
args
;
TRACE
(
"%p, 0x%s, 0x%s
\n
"
,
params
->
commandBuffer
,
wine_dbgstr_longlong
(
params
->
event
),
wine_dbgstr_longlong
(
params
->
stageMask
));
TRACE
(
"%p, 0x%s, 0x%s
\n
"
,
params
->
commandBuffer
,
wine_dbgstr_longlong
(
params
->
event
),
wine_dbgstr_longlong
(
params
->
stageMask
));
...
@@ -16708,7 +17126,7 @@ static NTSTATUS thunk32_vkCmdResetEvent2KHR(void *args)
...
@@ -16708,7 +17126,7 @@ static NTSTATUS thunk32_vkCmdResetEvent2KHR(void *args)
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkEvent
DECLSPEC_ALIGN
(
8
)
event
;
VkEvent
DECLSPEC_ALIGN
(
8
)
event
;
VkPipelineStageFlags2
stageMask
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stageMask
;
}
*
params
=
args
;
}
*
params
=
args
;
TRACE
(
"%p, 0x%s, 0x%s
\n
"
,
params
->
commandBuffer
,
wine_dbgstr_longlong
(
params
->
event
),
wine_dbgstr_longlong
(
params
->
stageMask
));
TRACE
(
"%p, 0x%s, 0x%s
\n
"
,
params
->
commandBuffer
,
wine_dbgstr_longlong
(
params
->
event
),
wine_dbgstr_longlong
(
params
->
stageMask
));
...
@@ -20079,7 +20497,7 @@ static NTSTATUS thunk32_vkCmdWriteBufferMarker2AMD(void *args)
...
@@ -20079,7 +20497,7 @@ static NTSTATUS thunk32_vkCmdWriteBufferMarker2AMD(void *args)
struct
struct
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkPipelineStageFlags2
stage
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stage
;
VkBuffer
DECLSPEC_ALIGN
(
8
)
dstBuffer
;
VkBuffer
DECLSPEC_ALIGN
(
8
)
dstBuffer
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
dstOffset
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
dstOffset
;
uint32_t
marker
;
uint32_t
marker
;
...
@@ -20211,7 +20629,7 @@ static NTSTATUS thunk32_vkCmdWriteTimestamp2(void *args)
...
@@ -20211,7 +20629,7 @@ static NTSTATUS thunk32_vkCmdWriteTimestamp2(void *args)
struct
struct
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkPipelineStageFlags2
stage
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stage
;
VkQueryPool
DECLSPEC_ALIGN
(
8
)
queryPool
;
VkQueryPool
DECLSPEC_ALIGN
(
8
)
queryPool
;
uint32_t
query
;
uint32_t
query
;
}
*
params
=
args
;
}
*
params
=
args
;
...
@@ -20243,7 +20661,7 @@ static NTSTATUS thunk32_vkCmdWriteTimestamp2KHR(void *args)
...
@@ -20243,7 +20661,7 @@ static NTSTATUS thunk32_vkCmdWriteTimestamp2KHR(void *args)
struct
struct
{
{
VkCommandBuffer
commandBuffer
;
VkCommandBuffer
commandBuffer
;
VkPipelineStageFlags2
stage
;
VkPipelineStageFlags2
DECLSPEC_ALIGN
(
8
)
stage
;
VkQueryPool
DECLSPEC_ALIGN
(
8
)
queryPool
;
VkQueryPool
DECLSPEC_ALIGN
(
8
)
queryPool
;
uint32_t
query
;
uint32_t
query
;
}
*
params
=
args
;
}
*
params
=
args
;
...
@@ -21751,10 +22169,15 @@ static NTSTATUS thunk32_vkCreateRenderPass2(void *args)
...
@@ -21751,10 +22169,15 @@ static NTSTATUS thunk32_vkCreateRenderPass2(void *args)
VkRenderPass
*
pRenderPass
;
VkRenderPass
*
pRenderPass
;
VkResult
result
;
VkResult
result
;
}
*
params
=
args
;
}
*
params
=
args
;
VkRenderPassCreateInfo2
pCreateInfo_host
;
struct
conversion_context
ctx
;
TRACE
(
"%p, %p, %p, %p
\n
"
,
params
->
device
,
params
->
pCreateInfo
,
params
->
pAllocator
,
params
->
pRenderPass
);
TRACE
(
"%p, %p, %p, %p
\n
"
,
params
->
device
,
params
->
pCreateInfo
,
params
->
pAllocator
,
params
->
pRenderPass
);
params
->
result
=
wine_device_from_handle
(
params
->
device
)
->
funcs
.
p_vkCreateRenderPass2
(
wine_device_from_handle
(
params
->
device
)
->
device
,
params
->
pCreateInfo
,
NULL
,
params
->
pRenderPass
);
init_conversion_context
(
&
ctx
);
convert_VkRenderPassCreateInfo2_win32_to_host
(
&
ctx
,
params
->
pCreateInfo
,
&
pCreateInfo_host
);
params
->
result
=
wine_device_from_handle
(
params
->
device
)
->
funcs
.
p_vkCreateRenderPass2
(
wine_device_from_handle
(
params
->
device
)
->
device
,
&
pCreateInfo_host
,
NULL
,
params
->
pRenderPass
);
free_conversion_context
(
&
ctx
);
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
...
@@ -21784,10 +22207,15 @@ static NTSTATUS thunk32_vkCreateRenderPass2KHR(void *args)
...
@@ -21784,10 +22207,15 @@ static NTSTATUS thunk32_vkCreateRenderPass2KHR(void *args)
VkRenderPass
*
pRenderPass
;
VkRenderPass
*
pRenderPass
;
VkResult
result
;
VkResult
result
;
}
*
params
=
args
;
}
*
params
=
args
;
VkRenderPassCreateInfo2
pCreateInfo_host
;
struct
conversion_context
ctx
;
TRACE
(
"%p, %p, %p, %p
\n
"
,
params
->
device
,
params
->
pCreateInfo
,
params
->
pAllocator
,
params
->
pRenderPass
);
TRACE
(
"%p, %p, %p, %p
\n
"
,
params
->
device
,
params
->
pCreateInfo
,
params
->
pAllocator
,
params
->
pRenderPass
);
params
->
result
=
wine_device_from_handle
(
params
->
device
)
->
funcs
.
p_vkCreateRenderPass2KHR
(
wine_device_from_handle
(
params
->
device
)
->
device
,
params
->
pCreateInfo
,
NULL
,
params
->
pRenderPass
);
init_conversion_context
(
&
ctx
);
convert_VkRenderPassCreateInfo2_win32_to_host
(
&
ctx
,
params
->
pCreateInfo
,
&
pCreateInfo_host
);
params
->
result
=
wine_device_from_handle
(
params
->
device
)
->
funcs
.
p_vkCreateRenderPass2KHR
(
wine_device_from_handle
(
params
->
device
)
->
device
,
&
pCreateInfo_host
,
NULL
,
params
->
pRenderPass
);
free_conversion_context
(
&
ctx
);
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
...
@@ -26217,10 +26645,16 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFormatProperties2(void *args)
...
@@ -26217,10 +26645,16 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFormatProperties2(void *args)
VkFormat
format
;
VkFormat
format
;
VkFormatProperties2
*
pFormatProperties
;
VkFormatProperties2
*
pFormatProperties
;
}
*
params
=
args
;
}
*
params
=
args
;
VkFormatProperties2
pFormatProperties_host
;
struct
conversion_context
ctx
;
TRACE
(
"%p, %#x, %p
\n
"
,
params
->
physicalDevice
,
params
->
format
,
params
->
pFormatProperties
);
TRACE
(
"%p, %#x, %p
\n
"
,
params
->
physicalDevice
,
params
->
format
,
params
->
pFormatProperties
);
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
instance
->
funcs
.
p_vkGetPhysicalDeviceFormatProperties2
(
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
phys_dev
,
params
->
format
,
params
->
pFormatProperties
);
init_conversion_context
(
&
ctx
);
convert_VkFormatProperties2_win32_to_host
(
&
ctx
,
params
->
pFormatProperties
,
&
pFormatProperties_host
);
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
instance
->
funcs
.
p_vkGetPhysicalDeviceFormatProperties2
(
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
phys_dev
,
params
->
format
,
&
pFormatProperties_host
);
convert_VkFormatProperties2_host_to_win32
(
&
pFormatProperties_host
,
params
->
pFormatProperties
);
free_conversion_context
(
&
ctx
);
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
...
@@ -26248,10 +26682,16 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFormatProperties2KHR(void *args)
...
@@ -26248,10 +26682,16 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFormatProperties2KHR(void *args)
VkFormat
format
;
VkFormat
format
;
VkFormatProperties2
*
pFormatProperties
;
VkFormatProperties2
*
pFormatProperties
;
}
*
params
=
args
;
}
*
params
=
args
;
VkFormatProperties2
pFormatProperties_host
;
struct
conversion_context
ctx
;
TRACE
(
"%p, %#x, %p
\n
"
,
params
->
physicalDevice
,
params
->
format
,
params
->
pFormatProperties
);
TRACE
(
"%p, %#x, %p
\n
"
,
params
->
physicalDevice
,
params
->
format
,
params
->
pFormatProperties
);
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
instance
->
funcs
.
p_vkGetPhysicalDeviceFormatProperties2KHR
(
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
phys_dev
,
params
->
format
,
params
->
pFormatProperties
);
init_conversion_context
(
&
ctx
);
convert_VkFormatProperties2_win32_to_host
(
&
ctx
,
params
->
pFormatProperties
,
&
pFormatProperties_host
);
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
instance
->
funcs
.
p_vkGetPhysicalDeviceFormatProperties2KHR
(
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
phys_dev
,
params
->
format
,
&
pFormatProperties_host
);
convert_VkFormatProperties2_host_to_win32
(
&
pFormatProperties_host
,
params
->
pFormatProperties
);
free_conversion_context
(
&
ctx
);
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
...
@@ -26786,10 +27226,16 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceQueueFamilyProperties2(void *args)
...
@@ -26786,10 +27226,16 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceQueueFamilyProperties2(void *args)
uint32_t
*
pQueueFamilyPropertyCount
;
uint32_t
*
pQueueFamilyPropertyCount
;
VkQueueFamilyProperties2
*
pQueueFamilyProperties
;
VkQueueFamilyProperties2
*
pQueueFamilyProperties
;
}
*
params
=
args
;
}
*
params
=
args
;
VkQueueFamilyProperties2
*
pQueueFamilyProperties_host
;
struct
conversion_context
ctx
;
TRACE
(
"%p, %p, %p
\n
"
,
params
->
physicalDevice
,
params
->
pQueueFamilyPropertyCount
,
params
->
pQueueFamilyProperties
);
TRACE
(
"%p, %p, %p
\n
"
,
params
->
physicalDevice
,
params
->
pQueueFamilyPropertyCount
,
params
->
pQueueFamilyProperties
);
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
instance
->
funcs
.
p_vkGetPhysicalDeviceQueueFamilyProperties2
(
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
phys_dev
,
params
->
pQueueFamilyPropertyCount
,
params
->
pQueueFamilyProperties
);
init_conversion_context
(
&
ctx
);
pQueueFamilyProperties_host
=
convert_VkQueueFamilyProperties2_array_win32_to_host
(
&
ctx
,
params
->
pQueueFamilyProperties
,
*
params
->
pQueueFamilyPropertyCount
);
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
instance
->
funcs
.
p_vkGetPhysicalDeviceQueueFamilyProperties2
(
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
phys_dev
,
params
->
pQueueFamilyPropertyCount
,
pQueueFamilyProperties_host
);
convert_VkQueueFamilyProperties2_array_host_to_win32
(
pQueueFamilyProperties_host
,
params
->
pQueueFamilyProperties
,
*
params
->
pQueueFamilyPropertyCount
);
free_conversion_context
(
&
ctx
);
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
...
@@ -26817,10 +27263,16 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceQueueFamilyProperties2KHR(void *args)
...
@@ -26817,10 +27263,16 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceQueueFamilyProperties2KHR(void *args)
uint32_t
*
pQueueFamilyPropertyCount
;
uint32_t
*
pQueueFamilyPropertyCount
;
VkQueueFamilyProperties2
*
pQueueFamilyProperties
;
VkQueueFamilyProperties2
*
pQueueFamilyProperties
;
}
*
params
=
args
;
}
*
params
=
args
;
VkQueueFamilyProperties2
*
pQueueFamilyProperties_host
;
struct
conversion_context
ctx
;
TRACE
(
"%p, %p, %p
\n
"
,
params
->
physicalDevice
,
params
->
pQueueFamilyPropertyCount
,
params
->
pQueueFamilyProperties
);
TRACE
(
"%p, %p, %p
\n
"
,
params
->
physicalDevice
,
params
->
pQueueFamilyPropertyCount
,
params
->
pQueueFamilyProperties
);
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
instance
->
funcs
.
p_vkGetPhysicalDeviceQueueFamilyProperties2KHR
(
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
phys_dev
,
params
->
pQueueFamilyPropertyCount
,
params
->
pQueueFamilyProperties
);
init_conversion_context
(
&
ctx
);
pQueueFamilyProperties_host
=
convert_VkQueueFamilyProperties2_array_win32_to_host
(
&
ctx
,
params
->
pQueueFamilyProperties
,
*
params
->
pQueueFamilyPropertyCount
);
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
instance
->
funcs
.
p_vkGetPhysicalDeviceQueueFamilyProperties2KHR
(
wine_phys_dev_from_handle
(
params
->
physicalDevice
)
->
phys_dev
,
params
->
pQueueFamilyPropertyCount
,
pQueueFamilyProperties_host
);
convert_VkQueueFamilyProperties2_array_host_to_win32
(
pQueueFamilyProperties_host
,
params
->
pQueueFamilyProperties
,
*
params
->
pQueueFamilyPropertyCount
);
free_conversion_context
(
&
ctx
);
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
...
@@ -27556,12 +28008,18 @@ static NTSTATUS thunk32_vkGetQueueCheckpointData2NV(void *args)
...
@@ -27556,12 +28008,18 @@ static NTSTATUS thunk32_vkGetQueueCheckpointData2NV(void *args)
{
{
VkQueue
queue
;
VkQueue
queue
;
uint32_t
*
pCheckpointDataCount
;
uint32_t
*
pCheckpointDataCount
;
VkCheckpointData2NV
*
pCheckpointData
;
VkCheckpointData2NV
32
*
pCheckpointData
;
}
*
params
=
args
;
}
*
params
=
args
;
VkCheckpointData2NV
*
pCheckpointData_host
;
struct
conversion_context
ctx
;
TRACE
(
"%p, %p, %p
\n
"
,
params
->
queue
,
params
->
pCheckpointDataCount
,
params
->
pCheckpointData
);
TRACE
(
"%p, %p, %p
\n
"
,
params
->
queue
,
params
->
pCheckpointDataCount
,
params
->
pCheckpointData
);
wine_queue_from_handle
(
params
->
queue
)
->
device
->
funcs
.
p_vkGetQueueCheckpointData2NV
(
wine_queue_from_handle
(
params
->
queue
)
->
queue
,
params
->
pCheckpointDataCount
,
params
->
pCheckpointData
);
init_conversion_context
(
&
ctx
);
pCheckpointData_host
=
convert_VkCheckpointData2NV_array_win32_to_host
(
&
ctx
,
params
->
pCheckpointData
,
*
params
->
pCheckpointDataCount
);
wine_queue_from_handle
(
params
->
queue
)
->
device
->
funcs
.
p_vkGetQueueCheckpointData2NV
(
wine_queue_from_handle
(
params
->
queue
)
->
queue
,
params
->
pCheckpointDataCount
,
pCheckpointData_host
);
convert_VkCheckpointData2NV_array_host_to_win32
(
pCheckpointData_host
,
params
->
pCheckpointData
,
*
params
->
pCheckpointDataCount
);
free_conversion_context
(
&
ctx
);
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
include/wine/vulkan.h
View file @
0a2bffa7
...
@@ -4989,10 +4989,10 @@ typedef struct VkBufferMemoryBarrier2
...
@@ -4989,10 +4989,10 @@ typedef struct VkBufferMemoryBarrier2
{
{
VkStructureType
sType
;
VkStructureType
sType
;
const
void
*
pNext
;
const
void
*
pNext
;
VkPipelineStageFlags2
srcStageMask
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
srcStageMask
;
VkAccessFlags2
srcAccessMask
;
VkAccessFlags2
WINE_VK_ALIGN
(
8
)
srcAccessMask
;
VkPipelineStageFlags2
dstStageMask
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
dstStageMask
;
VkAccessFlags2
dstAccessMask
;
VkAccessFlags2
WINE_VK_ALIGN
(
8
)
dstAccessMask
;
uint32_t
srcQueueFamilyIndex
;
uint32_t
srcQueueFamilyIndex
;
uint32_t
dstQueueFamilyIndex
;
uint32_t
dstQueueFamilyIndex
;
VkBuffer
WINE_VK_ALIGN
(
8
)
buffer
;
VkBuffer
WINE_VK_ALIGN
(
8
)
buffer
;
...
@@ -5039,7 +5039,7 @@ typedef struct VkCheckpointData2NV
...
@@ -5039,7 +5039,7 @@ typedef struct VkCheckpointData2NV
{
{
VkStructureType
sType
;
VkStructureType
sType
;
void
*
pNext
;
void
*
pNext
;
VkPipelineStageFlags2
stage
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
stage
;
void
*
pCheckpointMarker
;
void
*
pCheckpointMarker
;
}
VkCheckpointData2NV
;
}
VkCheckpointData2NV
;
...
@@ -5375,7 +5375,7 @@ typedef struct VkDecompressMemoryRegionNV
...
@@ -5375,7 +5375,7 @@ typedef struct VkDecompressMemoryRegionNV
VkDeviceAddress
WINE_VK_ALIGN
(
8
)
dstAddress
;
VkDeviceAddress
WINE_VK_ALIGN
(
8
)
dstAddress
;
VkDeviceSize
WINE_VK_ALIGN
(
8
)
compressedSize
;
VkDeviceSize
WINE_VK_ALIGN
(
8
)
compressedSize
;
VkDeviceSize
WINE_VK_ALIGN
(
8
)
decompressedSize
;
VkDeviceSize
WINE_VK_ALIGN
(
8
)
decompressedSize
;
VkMemoryDecompressionMethodFlagsNV
decompressionMethod
;
VkMemoryDecompressionMethodFlagsNV
WINE_VK_ALIGN
(
8
)
decompressionMethod
;
}
VkDecompressMemoryRegionNV
;
}
VkDecompressMemoryRegionNV
;
typedef
struct
VkDedicatedAllocationBufferCreateInfoNV
typedef
struct
VkDedicatedAllocationBufferCreateInfoNV
...
@@ -5876,9 +5876,9 @@ typedef struct VkFormatProperties3
...
@@ -5876,9 +5876,9 @@ typedef struct VkFormatProperties3
{
{
VkStructureType
sType
;
VkStructureType
sType
;
void
*
pNext
;
void
*
pNext
;
VkFormatFeatureFlags2
linearTilingFeatures
;
VkFormatFeatureFlags2
WINE_VK_ALIGN
(
8
)
linearTilingFeatures
;
VkFormatFeatureFlags2
optimalTilingFeatures
;
VkFormatFeatureFlags2
WINE_VK_ALIGN
(
8
)
optimalTilingFeatures
;
VkFormatFeatureFlags2
bufferFeatures
;
VkFormatFeatureFlags2
WINE_VK_ALIGN
(
8
)
bufferFeatures
;
}
VkFormatProperties3
;
}
VkFormatProperties3
;
typedef
VkFormatProperties3
VkFormatProperties3KHR
;
typedef
VkFormatProperties3
VkFormatProperties3KHR
;
...
@@ -6278,10 +6278,10 @@ typedef struct VkMemoryBarrier2
...
@@ -6278,10 +6278,10 @@ typedef struct VkMemoryBarrier2
{
{
VkStructureType
sType
;
VkStructureType
sType
;
const
void
*
pNext
;
const
void
*
pNext
;
VkPipelineStageFlags2
srcStageMask
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
srcStageMask
;
VkAccessFlags2
srcAccessMask
;
VkAccessFlags2
WINE_VK_ALIGN
(
8
)
srcAccessMask
;
VkPipelineStageFlags2
dstStageMask
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
dstStageMask
;
VkAccessFlags2
dstAccessMask
;
VkAccessFlags2
WINE_VK_ALIGN
(
8
)
dstAccessMask
;
}
VkMemoryBarrier2
;
}
VkMemoryBarrier2
;
typedef
VkMemoryBarrier2
VkMemoryBarrier2KHR
;
typedef
VkMemoryBarrier2
VkMemoryBarrier2KHR
;
...
@@ -7670,7 +7670,7 @@ typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV
...
@@ -7670,7 +7670,7 @@ typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV
{
{
VkStructureType
sType
;
VkStructureType
sType
;
void
*
pNext
;
void
*
pNext
;
VkMemoryDecompressionMethodFlagsNV
decompressionMethods
;
VkMemoryDecompressionMethodFlagsNV
WINE_VK_ALIGN
(
8
)
decompressionMethods
;
uint64_t
WINE_VK_ALIGN
(
8
)
maxDecompressionIndirectCount
;
uint64_t
WINE_VK_ALIGN
(
8
)
maxDecompressionIndirectCount
;
}
VkPhysicalDeviceMemoryDecompressionPropertiesNV
;
}
VkPhysicalDeviceMemoryDecompressionPropertiesNV
;
...
@@ -9376,7 +9376,7 @@ typedef struct VkQueueFamilyCheckpointProperties2NV
...
@@ -9376,7 +9376,7 @@ typedef struct VkQueueFamilyCheckpointProperties2NV
{
{
VkStructureType
sType
;
VkStructureType
sType
;
void
*
pNext
;
void
*
pNext
;
VkPipelineStageFlags2
checkpointExecutionStageMask
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
checkpointExecutionStageMask
;
}
VkQueueFamilyCheckpointProperties2NV
;
}
VkQueueFamilyCheckpointProperties2NV
;
typedef
struct
VkQueueFamilyCheckpointPropertiesNV
typedef
struct
VkQueueFamilyCheckpointPropertiesNV
...
@@ -9712,7 +9712,7 @@ typedef struct VkSemaphoreSubmitInfo
...
@@ -9712,7 +9712,7 @@ typedef struct VkSemaphoreSubmitInfo
const
void
*
pNext
;
const
void
*
pNext
;
VkSemaphore
WINE_VK_ALIGN
(
8
)
semaphore
;
VkSemaphore
WINE_VK_ALIGN
(
8
)
semaphore
;
uint64_t
WINE_VK_ALIGN
(
8
)
value
;
uint64_t
WINE_VK_ALIGN
(
8
)
value
;
VkPipelineStageFlags2
stageMask
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
stageMask
;
uint32_t
deviceIndex
;
uint32_t
deviceIndex
;
}
VkSemaphoreSubmitInfo
;
}
VkSemaphoreSubmitInfo
;
typedef
VkSemaphoreSubmitInfo
VkSemaphoreSubmitInfoKHR
;
typedef
VkSemaphoreSubmitInfo
VkSemaphoreSubmitInfoKHR
;
...
@@ -10708,10 +10708,10 @@ typedef struct VkImageMemoryBarrier2
...
@@ -10708,10 +10708,10 @@ typedef struct VkImageMemoryBarrier2
{
{
VkStructureType
sType
;
VkStructureType
sType
;
const
void
*
pNext
;
const
void
*
pNext
;
VkPipelineStageFlags2
srcStageMask
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
srcStageMask
;
VkAccessFlags2
srcAccessMask
;
VkAccessFlags2
WINE_VK_ALIGN
(
8
)
srcAccessMask
;
VkPipelineStageFlags2
dstStageMask
;
VkPipelineStageFlags2
WINE_VK_ALIGN
(
8
)
dstStageMask
;
VkAccessFlags2
dstAccessMask
;
VkAccessFlags2
WINE_VK_ALIGN
(
8
)
dstAccessMask
;
VkImageLayout
oldLayout
;
VkImageLayout
oldLayout
;
VkImageLayout
newLayout
;
VkImageLayout
newLayout
;
uint32_t
srcQueueFamilyIndex
;
uint32_t
srcQueueFamilyIndex
;
...
...
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