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
fae21831
Commit
fae21831
authored
Jul 13, 2018
by
Józef Kucia
Committed by
Alexandre Julliard
Jul 13, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winevulkan: Implement VK_KHR_device_group.
Signed-off-by:
Józef Kucia
<
jkucia@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
960e52e1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
140 additions
and
11 deletions
+140
-11
vulkan-1.spec
dlls/vulkan-1/vulkan-1.spec
+5
-5
make_vulkan
dlls/winevulkan/make_vulkan
+0
-1
vulkan_thunks.c
dlls/winevulkan/vulkan_thunks.c
+81
-0
vulkan_thunks.h
dlls/winevulkan/vulkan_thunks.h
+31
-0
winevulkan.spec
dlls/winevulkan/winevulkan.spec
+5
-5
vulkan.h
include/wine/vulkan.h
+18
-0
No files found.
dlls/vulkan-1/vulkan-1.spec
View file @
fae21831
...
...
@@ -34,7 +34,7 @@
# but only in their entirety and only with respect to the Combined Software.
#
@ st
ub
vkAcquireNextImage2KHR
@ st
dcall vkAcquireNextImage2KHR(ptr ptr ptr) winevulkan.wine_
vkAcquireNextImage2KHR
@ stdcall vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) winevulkan.wine_vkAcquireNextImageKHR
@ stdcall vkAllocateCommandBuffers(ptr ptr ptr) winevulkan.wine_vkAllocateCommandBuffers
@ stdcall vkAllocateDescriptorSets(ptr ptr ptr) winevulkan.wine_vkAllocateDescriptorSets
...
...
@@ -60,7 +60,7 @@
@ stdcall vkCmdCopyImageToBuffer(ptr int64 long int64 long ptr) winevulkan.wine_vkCmdCopyImageToBuffer
@ stdcall vkCmdCopyQueryPoolResults(ptr int64 long long int64 int64 int64 long) winevulkan.wine_vkCmdCopyQueryPoolResults
@ stdcall vkCmdDispatch(ptr long long long) winevulkan.wine_vkCmdDispatch
@ st
ub
vkCmdDispatchBase
@ st
dcall vkCmdDispatchBase(ptr long long long long long long) winevulkan.wine_
vkCmdDispatchBase
@ stdcall vkCmdDispatchIndirect(ptr int64 int64) winevulkan.wine_vkCmdDispatchIndirect
@ stdcall vkCmdDraw(ptr long long long long) winevulkan.wine_vkCmdDraw
@ stdcall vkCmdDrawIndexed(ptr long long long long long) winevulkan.wine_vkCmdDrawIndexed
...
...
@@ -79,7 +79,7 @@
@ stdcall vkCmdSetBlendConstants(ptr ptr) winevulkan.wine_vkCmdSetBlendConstants
@ stdcall vkCmdSetDepthBias(ptr float float float) winevulkan.wine_vkCmdSetDepthBias
@ stdcall vkCmdSetDepthBounds(ptr float float) winevulkan.wine_vkCmdSetDepthBounds
@ st
ub
vkCmdSetDeviceMask
@ st
dcall vkCmdSetDeviceMask(ptr long) winevulkan.wine_
vkCmdSetDeviceMask
@ stdcall vkCmdSetEvent(ptr int64 long) winevulkan.wine_vkCmdSetEvent
@ stdcall vkCmdSetLineWidth(ptr float) winevulkan.wine_vkCmdSetLineWidth
@ stdcall vkCmdSetScissor(ptr long long ptr) winevulkan.wine_vkCmdSetScissor
...
...
@@ -158,8 +158,8 @@
@ stdcall vkGetBufferMemoryRequirements(ptr int64 ptr) winevulkan.wine_vkGetBufferMemoryRequirements
@ stdcall vkGetBufferMemoryRequirements2(ptr ptr ptr) winevulkan.wine_vkGetBufferMemoryRequirements2
@ stdcall vkGetDescriptorSetLayoutSupport(ptr ptr ptr) winevulkan.wine_vkGetDescriptorSetLayoutSupport
@ st
ub
vkGetDeviceGroupPeerMemoryFeatures
@ st
ub
vkGetDeviceGroupPresentCapabilitiesKHR
@ st
dcall vkGetDeviceGroupPeerMemoryFeatures(ptr long long long long) winevulkan.wine_
vkGetDeviceGroupPeerMemoryFeatures
@ st
dcall vkGetDeviceGroupPresentCapabilitiesKHR(ptr ptr) winevulkan.wine_
vkGetDeviceGroupPresentCapabilitiesKHR
@ stdcall vkGetDeviceGroupSurfacePresentModesKHR(ptr int64 long) winevulkan.wine_vkGetDeviceGroupSurfacePresentModesKHR
@ stdcall vkGetDeviceMemoryCommitment(ptr int64 ptr) winevulkan.wine_vkGetDeviceMemoryCommitment
@ stdcall vkGetDeviceProcAddr(ptr str) winevulkan.wine_vkGetDeviceProcAddr
...
...
dlls/winevulkan/make_vulkan
View file @
fae21831
...
...
@@ -103,7 +103,6 @@ BLACKLISTED_EXTENSIONS = [
"VK_EXT_external_memory_dma_buf"
,
# Linux specific
"VK_EXT_hdr_metadata"
,
# Needs WSI work.
"VK_GOOGLE_display_timing"
,
"VK_KHR_device_group"
,
# Needs some thought, but part of Vulkan 1.1 Core.
"VK_KHR_display"
,
# Needs WSI work.
"VK_KHR_external_fence"
,
"VK_KHR_external_fence_fd"
,
...
...
dlls/winevulkan/vulkan_thunks.c
View file @
fae21831
...
...
@@ -43,6 +43,19 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
vulkan
);
#if defined(USE_STRUCT_CONVERSION)
static
inline
void
convert_VkAcquireNextImageInfoKHR_win_to_host
(
const
VkAcquireNextImageInfoKHR
*
in
,
VkAcquireNextImageInfoKHR_host
*
out
)
{
if
(
!
in
)
return
;
out
->
sType
=
in
->
sType
;
out
->
pNext
=
in
->
pNext
;
out
->
swapchain
=
in
->
swapchain
;
out
->
timeout
=
in
->
timeout
;
out
->
semaphore
=
in
->
semaphore
;
out
->
fence
=
in
->
fence
;
out
->
deviceMask
=
in
->
deviceMask
;
}
static
inline
void
convert_VkDescriptorSetAllocateInfo_win_to_host
(
const
VkDescriptorSetAllocateInfo
*
in
,
VkDescriptorSetAllocateInfo_host
*
out
)
{
if
(
!
in
)
return
;
...
...
@@ -1121,6 +1134,23 @@ static inline void free_VkCopyDescriptorSet_array(VkCopyDescriptorSet_host *in,
#endif
/* USE_STRUCT_CONVERSION */
VkResult
WINAPI
wine_vkAcquireNextImage2KHR
(
VkDevice
device
,
const
VkAcquireNextImageInfoKHR
*
pAcquireInfo
,
uint32_t
*
pImageIndex
)
{
#if defined(USE_STRUCT_CONVERSION)
VkResult
result
;
VkAcquireNextImageInfoKHR_host
pAcquireInfo_host
;
TRACE
(
"%p, %p, %p
\n
"
,
device
,
pAcquireInfo
,
pImageIndex
);
convert_VkAcquireNextImageInfoKHR_win_to_host
(
pAcquireInfo
,
&
pAcquireInfo_host
);
result
=
device
->
funcs
.
p_vkAcquireNextImage2KHR
(
device
->
device
,
&
pAcquireInfo_host
,
pImageIndex
);
return
result
;
#else
TRACE
(
"%p, %p, %p
\n
"
,
device
,
pAcquireInfo
,
pImageIndex
);
return
device
->
funcs
.
p_vkAcquireNextImage2KHR
(
device
->
device
,
pAcquireInfo
,
pImageIndex
);
#endif
}
VkResult
WINAPI
wine_vkAcquireNextImageKHR
(
VkDevice
device
,
VkSwapchainKHR
swapchain
,
uint64_t
timeout
,
VkSemaphore
semaphore
,
VkFence
fence
,
uint32_t
*
pImageIndex
)
{
TRACE
(
"%p, 0x%s, 0x%s, 0x%s, 0x%s, %p
\n
"
,
device
,
wine_dbgstr_longlong
(
swapchain
),
wine_dbgstr_longlong
(
timeout
),
wine_dbgstr_longlong
(
semaphore
),
wine_dbgstr_longlong
(
fence
),
pImageIndex
);
...
...
@@ -1398,6 +1428,18 @@ void WINAPI wine_vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCoun
commandBuffer
->
device
->
funcs
.
p_vkCmdDispatch
(
commandBuffer
->
command_buffer
,
groupCountX
,
groupCountY
,
groupCountZ
);
}
void
WINAPI
wine_vkCmdDispatchBase
(
VkCommandBuffer
commandBuffer
,
uint32_t
baseGroupX
,
uint32_t
baseGroupY
,
uint32_t
baseGroupZ
,
uint32_t
groupCountX
,
uint32_t
groupCountY
,
uint32_t
groupCountZ
)
{
TRACE
(
"%p, %u, %u, %u, %u, %u, %u
\n
"
,
commandBuffer
,
baseGroupX
,
baseGroupY
,
baseGroupZ
,
groupCountX
,
groupCountY
,
groupCountZ
);
commandBuffer
->
device
->
funcs
.
p_vkCmdDispatchBase
(
commandBuffer
->
command_buffer
,
baseGroupX
,
baseGroupY
,
baseGroupZ
,
groupCountX
,
groupCountY
,
groupCountZ
);
}
static
void
WINAPI
wine_vkCmdDispatchBaseKHR
(
VkCommandBuffer
commandBuffer
,
uint32_t
baseGroupX
,
uint32_t
baseGroupY
,
uint32_t
baseGroupZ
,
uint32_t
groupCountX
,
uint32_t
groupCountY
,
uint32_t
groupCountZ
)
{
TRACE
(
"%p, %u, %u, %u, %u, %u, %u
\n
"
,
commandBuffer
,
baseGroupX
,
baseGroupY
,
baseGroupZ
,
groupCountX
,
groupCountY
,
groupCountZ
);
commandBuffer
->
device
->
funcs
.
p_vkCmdDispatchBaseKHR
(
commandBuffer
->
command_buffer
,
baseGroupX
,
baseGroupY
,
baseGroupZ
,
groupCountX
,
groupCountY
,
groupCountZ
);
}
void
WINAPI
wine_vkCmdDispatchIndirect
(
VkCommandBuffer
commandBuffer
,
VkBuffer
buffer
,
VkDeviceSize
offset
)
{
TRACE
(
"%p, 0x%s, 0x%s
\n
"
,
commandBuffer
,
wine_dbgstr_longlong
(
buffer
),
wine_dbgstr_longlong
(
offset
));
...
...
@@ -1559,6 +1601,18 @@ void WINAPI wine_vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDep
commandBuffer
->
device
->
funcs
.
p_vkCmdSetDepthBounds
(
commandBuffer
->
command_buffer
,
minDepthBounds
,
maxDepthBounds
);
}
void
WINAPI
wine_vkCmdSetDeviceMask
(
VkCommandBuffer
commandBuffer
,
uint32_t
deviceMask
)
{
TRACE
(
"%p, %u
\n
"
,
commandBuffer
,
deviceMask
);
commandBuffer
->
device
->
funcs
.
p_vkCmdSetDeviceMask
(
commandBuffer
->
command_buffer
,
deviceMask
);
}
static
void
WINAPI
wine_vkCmdSetDeviceMaskKHR
(
VkCommandBuffer
commandBuffer
,
uint32_t
deviceMask
)
{
TRACE
(
"%p, %u
\n
"
,
commandBuffer
,
deviceMask
);
commandBuffer
->
device
->
funcs
.
p_vkCmdSetDeviceMaskKHR
(
commandBuffer
->
command_buffer
,
deviceMask
);
}
static
void
WINAPI
wine_vkCmdSetDiscardRectangleEXT
(
VkCommandBuffer
commandBuffer
,
uint32_t
firstDiscardRectangle
,
uint32_t
discardRectangleCount
,
const
VkRect2D
*
pDiscardRectangles
)
{
TRACE
(
"%p, %u, %u, %p
\n
"
,
commandBuffer
,
firstDiscardRectangle
,
discardRectangleCount
,
pDiscardRectangles
);
...
...
@@ -2174,6 +2228,24 @@ static void WINAPI wine_vkGetDescriptorSetLayoutSupportKHR(VkDevice device, cons
device
->
funcs
.
p_vkGetDescriptorSetLayoutSupportKHR
(
device
->
device
,
pCreateInfo
,
pSupport
);
}
void
WINAPI
wine_vkGetDeviceGroupPeerMemoryFeatures
(
VkDevice
device
,
uint32_t
heapIndex
,
uint32_t
localDeviceIndex
,
uint32_t
remoteDeviceIndex
,
VkPeerMemoryFeatureFlags
*
pPeerMemoryFeatures
)
{
TRACE
(
"%p, %u, %u, %u, %p
\n
"
,
device
,
heapIndex
,
localDeviceIndex
,
remoteDeviceIndex
,
pPeerMemoryFeatures
);
device
->
funcs
.
p_vkGetDeviceGroupPeerMemoryFeatures
(
device
->
device
,
heapIndex
,
localDeviceIndex
,
remoteDeviceIndex
,
pPeerMemoryFeatures
);
}
static
void
WINAPI
wine_vkGetDeviceGroupPeerMemoryFeaturesKHR
(
VkDevice
device
,
uint32_t
heapIndex
,
uint32_t
localDeviceIndex
,
uint32_t
remoteDeviceIndex
,
VkPeerMemoryFeatureFlags
*
pPeerMemoryFeatures
)
{
TRACE
(
"%p, %u, %u, %u, %p
\n
"
,
device
,
heapIndex
,
localDeviceIndex
,
remoteDeviceIndex
,
pPeerMemoryFeatures
);
device
->
funcs
.
p_vkGetDeviceGroupPeerMemoryFeaturesKHR
(
device
->
device
,
heapIndex
,
localDeviceIndex
,
remoteDeviceIndex
,
pPeerMemoryFeatures
);
}
VkResult
WINAPI
wine_vkGetDeviceGroupPresentCapabilitiesKHR
(
VkDevice
device
,
VkDeviceGroupPresentCapabilitiesKHR
*
pDeviceGroupPresentCapabilities
)
{
TRACE
(
"%p, %p
\n
"
,
device
,
pDeviceGroupPresentCapabilities
);
return
device
->
funcs
.
p_vkGetDeviceGroupPresentCapabilitiesKHR
(
device
->
device
,
pDeviceGroupPresentCapabilities
);
}
VkResult
WINAPI
wine_vkGetDeviceGroupSurfacePresentModesKHR
(
VkDevice
device
,
VkSurfaceKHR
surface
,
VkDeviceGroupPresentModeFlagsKHR
*
pModes
)
{
TRACE
(
"%p, 0x%s, %p
\n
"
,
device
,
wine_dbgstr_longlong
(
surface
),
pModes
);
...
...
@@ -2756,6 +2828,7 @@ VkResult WINAPI wine_vkWaitForFences(VkDevice device, uint32_t fenceCount, const
static
const
struct
vulkan_func
vk_device_dispatch_table
[]
=
{
{
"vkAcquireNextImage2KHR"
,
&
wine_vkAcquireNextImage2KHR
},
{
"vkAcquireNextImageKHR"
,
&
wine_vkAcquireNextImageKHR
},
{
"vkAllocateCommandBuffers"
,
&
wine_vkAllocateCommandBuffers
},
{
"vkAllocateDescriptorSets"
,
&
wine_vkAllocateDescriptorSets
},
...
...
@@ -2783,6 +2856,8 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{
"vkCmdCopyImageToBuffer"
,
&
wine_vkCmdCopyImageToBuffer
},
{
"vkCmdCopyQueryPoolResults"
,
&
wine_vkCmdCopyQueryPoolResults
},
{
"vkCmdDispatch"
,
&
wine_vkCmdDispatch
},
{
"vkCmdDispatchBase"
,
&
wine_vkCmdDispatchBase
},
{
"vkCmdDispatchBaseKHR"
,
&
wine_vkCmdDispatchBaseKHR
},
{
"vkCmdDispatchIndirect"
,
&
wine_vkCmdDispatchIndirect
},
{
"vkCmdDraw"
,
&
wine_vkCmdDraw
},
{
"vkCmdDrawIndexed"
,
&
wine_vkCmdDrawIndexed
},
...
...
@@ -2807,6 +2882,8 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{
"vkCmdSetBlendConstants"
,
&
wine_vkCmdSetBlendConstants
},
{
"vkCmdSetDepthBias"
,
&
wine_vkCmdSetDepthBias
},
{
"vkCmdSetDepthBounds"
,
&
wine_vkCmdSetDepthBounds
},
{
"vkCmdSetDeviceMask"
,
&
wine_vkCmdSetDeviceMask
},
{
"vkCmdSetDeviceMaskKHR"
,
&
wine_vkCmdSetDeviceMaskKHR
},
{
"vkCmdSetDiscardRectangleEXT"
,
&
wine_vkCmdSetDiscardRectangleEXT
},
{
"vkCmdSetEvent"
,
&
wine_vkCmdSetEvent
},
{
"vkCmdSetLineWidth"
,
&
wine_vkCmdSetLineWidth
},
...
...
@@ -2882,6 +2959,9 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{
"vkGetBufferMemoryRequirements2KHR"
,
&
wine_vkGetBufferMemoryRequirements2KHR
},
{
"vkGetDescriptorSetLayoutSupport"
,
&
wine_vkGetDescriptorSetLayoutSupport
},
{
"vkGetDescriptorSetLayoutSupportKHR"
,
&
wine_vkGetDescriptorSetLayoutSupportKHR
},
{
"vkGetDeviceGroupPeerMemoryFeatures"
,
&
wine_vkGetDeviceGroupPeerMemoryFeatures
},
{
"vkGetDeviceGroupPeerMemoryFeaturesKHR"
,
&
wine_vkGetDeviceGroupPeerMemoryFeaturesKHR
},
{
"vkGetDeviceGroupPresentCapabilitiesKHR"
,
&
wine_vkGetDeviceGroupPresentCapabilitiesKHR
},
{
"vkGetDeviceGroupSurfacePresentModesKHR"
,
&
wine_vkGetDeviceGroupSurfacePresentModesKHR
},
{
"vkGetDeviceMemoryCommitment"
,
&
wine_vkGetDeviceMemoryCommitment
},
{
"vkGetDeviceProcAddr"
,
&
wine_vkGetDeviceProcAddr
},
...
...
@@ -3032,6 +3112,7 @@ static const char * const vk_device_extensions[] =
"VK_KHR_bind_memory2"
,
"VK_KHR_dedicated_allocation"
,
"VK_KHR_descriptor_update_template"
,
"VK_KHR_device_group"
,
"VK_KHR_draw_indirect_count"
,
"VK_KHR_get_memory_requirements2"
,
"VK_KHR_image_format_list"
,
...
...
dlls/winevulkan/vulkan_thunks.h
View file @
fae21831
...
...
@@ -53,6 +53,17 @@ PFN_vkVoidFunction WINAPI wine_vkGetDeviceProcAddr(VkDevice device, const char *
void
WINAPI
wine_vkGetDeviceQueue
(
VkDevice
device
,
uint32_t
queueFamilyIndex
,
uint32_t
queueIndex
,
VkQueue
*
pQueue
);
VkResult
WINAPI
wine_vkQueueSubmit
(
VkQueue
queue
,
uint32_t
submitCount
,
const
VkSubmitInfo
*
pSubmits
,
VkFence
fence
);
typedef
struct
VkAcquireNextImageInfoKHR_host
{
VkStructureType
sType
;
const
void
*
pNext
;
VkSwapchainKHR
swapchain
;
uint64_t
timeout
;
VkSemaphore
semaphore
;
VkFence
fence
;
uint32_t
deviceMask
;
}
VkAcquireNextImageInfoKHR_host
;
typedef
struct
VkCommandBufferAllocateInfo_host
{
VkStructureType
sType
;
...
...
@@ -622,6 +633,11 @@ typedef struct VkCopyDescriptorSet_host
/* For use by vkDevice and children */
struct
vulkan_device_funcs
{
#if defined(USE_STRUCT_CONVERSION)
VkResult
(
*
p_vkAcquireNextImage2KHR
)(
VkDevice
,
const
VkAcquireNextImageInfoKHR_host
*
,
uint32_t
*
);
#else
VkResult
(
*
p_vkAcquireNextImage2KHR
)(
VkDevice
,
const
VkAcquireNextImageInfoKHR
*
,
uint32_t
*
);
#endif
VkResult
(
*
p_vkAcquireNextImageKHR
)(
VkDevice
,
VkSwapchainKHR
,
uint64_t
,
VkSemaphore
,
VkFence
,
uint32_t
*
);
#if defined(USE_STRUCT_CONVERSION)
VkResult
(
*
p_vkAllocateCommandBuffers
)(
VkDevice
,
const
VkCommandBufferAllocateInfo_host
*
,
VkCommandBuffer
*
);
...
...
@@ -697,6 +713,8 @@ struct vulkan_device_funcs
#endif
void
(
*
p_vkCmdCopyQueryPoolResults
)(
VkCommandBuffer
,
VkQueryPool
,
uint32_t
,
uint32_t
,
VkBuffer
,
VkDeviceSize
,
VkDeviceSize
,
VkQueryResultFlags
);
void
(
*
p_vkCmdDispatch
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
);
void
(
*
p_vkCmdDispatchBase
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
);
void
(
*
p_vkCmdDispatchBaseKHR
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
);
void
(
*
p_vkCmdDispatchIndirect
)(
VkCommandBuffer
,
VkBuffer
,
VkDeviceSize
);
void
(
*
p_vkCmdDraw
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
);
void
(
*
p_vkCmdDrawIndexed
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
int32_t
,
uint32_t
);
...
...
@@ -729,6 +747,8 @@ struct vulkan_device_funcs
void
(
*
p_vkCmdSetBlendConstants
)(
VkCommandBuffer
,
const
float
[
4
]);
void
(
*
p_vkCmdSetDepthBias
)(
VkCommandBuffer
,
float
,
float
,
float
);
void
(
*
p_vkCmdSetDepthBounds
)(
VkCommandBuffer
,
float
,
float
);
void
(
*
p_vkCmdSetDeviceMask
)(
VkCommandBuffer
,
uint32_t
);
void
(
*
p_vkCmdSetDeviceMaskKHR
)(
VkCommandBuffer
,
uint32_t
);
void
(
*
p_vkCmdSetDiscardRectangleEXT
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
const
VkRect2D
*
);
void
(
*
p_vkCmdSetEvent
)(
VkCommandBuffer
,
VkEvent
,
VkPipelineStageFlags
);
void
(
*
p_vkCmdSetLineWidth
)(
VkCommandBuffer
,
float
);
...
...
@@ -860,6 +880,9 @@ struct vulkan_device_funcs
#endif
void
(
*
p_vkGetDescriptorSetLayoutSupport
)(
VkDevice
,
const
VkDescriptorSetLayoutCreateInfo
*
,
VkDescriptorSetLayoutSupport
*
);
void
(
*
p_vkGetDescriptorSetLayoutSupportKHR
)(
VkDevice
,
const
VkDescriptorSetLayoutCreateInfo
*
,
VkDescriptorSetLayoutSupport
*
);
void
(
*
p_vkGetDeviceGroupPeerMemoryFeatures
)(
VkDevice
,
uint32_t
,
uint32_t
,
uint32_t
,
VkPeerMemoryFeatureFlags
*
);
void
(
*
p_vkGetDeviceGroupPeerMemoryFeaturesKHR
)(
VkDevice
,
uint32_t
,
uint32_t
,
uint32_t
,
VkPeerMemoryFeatureFlags
*
);
VkResult
(
*
p_vkGetDeviceGroupPresentCapabilitiesKHR
)(
VkDevice
,
VkDeviceGroupPresentCapabilitiesKHR
*
);
VkResult
(
*
p_vkGetDeviceGroupSurfacePresentModesKHR
)(
VkDevice
,
VkSurfaceKHR
,
VkDeviceGroupPresentModeFlagsKHR
*
);
void
(
*
p_vkGetDeviceMemoryCommitment
)(
VkDevice
,
VkDeviceMemory
,
VkDeviceSize
*
);
void
(
*
p_vkGetDeviceQueue
)(
VkDevice
,
uint32_t
,
uint32_t
,
VkQueue
*
);
...
...
@@ -1015,6 +1038,7 @@ struct vulkan_instance_funcs
};
#define ALL_VK_DEVICE_FUNCS() \
USE_VK_FUNC(vkAcquireNextImage2KHR) \
USE_VK_FUNC(vkAcquireNextImageKHR) \
USE_VK_FUNC(vkAllocateCommandBuffers) \
USE_VK_FUNC(vkAllocateDescriptorSets) \
...
...
@@ -1042,6 +1066,8 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkCmdCopyImageToBuffer) \
USE_VK_FUNC(vkCmdCopyQueryPoolResults) \
USE_VK_FUNC(vkCmdDispatch) \
USE_VK_FUNC(vkCmdDispatchBase) \
USE_VK_FUNC(vkCmdDispatchBaseKHR) \
USE_VK_FUNC(vkCmdDispatchIndirect) \
USE_VK_FUNC(vkCmdDraw) \
USE_VK_FUNC(vkCmdDrawIndexed) \
...
...
@@ -1066,6 +1092,8 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkCmdSetBlendConstants) \
USE_VK_FUNC(vkCmdSetDepthBias) \
USE_VK_FUNC(vkCmdSetDepthBounds) \
USE_VK_FUNC(vkCmdSetDeviceMask) \
USE_VK_FUNC(vkCmdSetDeviceMaskKHR) \
USE_VK_FUNC(vkCmdSetDiscardRectangleEXT) \
USE_VK_FUNC(vkCmdSetEvent) \
USE_VK_FUNC(vkCmdSetLineWidth) \
...
...
@@ -1141,6 +1169,9 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkGetBufferMemoryRequirements2KHR) \
USE_VK_FUNC(vkGetDescriptorSetLayoutSupport) \
USE_VK_FUNC(vkGetDescriptorSetLayoutSupportKHR) \
USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeatures) \
USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeaturesKHR) \
USE_VK_FUNC(vkGetDeviceGroupPresentCapabilitiesKHR) \
USE_VK_FUNC(vkGetDeviceGroupSurfacePresentModesKHR) \
USE_VK_FUNC(vkGetDeviceMemoryCommitment) \
USE_VK_FUNC(vkGetDeviceQueue) \
...
...
dlls/winevulkan/winevulkan.spec
View file @
fae21831
...
...
@@ -36,7 +36,7 @@
@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr
@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion
@ st
ub vkAcquireNextImage2KHR
@ st
dcall wine_vkAcquireNextImage2KHR(ptr ptr ptr)
@ stdcall wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr)
@ stdcall wine_vkAllocateCommandBuffers(ptr ptr ptr)
@ stdcall wine_vkAllocateDescriptorSets(ptr ptr ptr)
...
...
@@ -62,7 +62,7 @@
@ stdcall wine_vkCmdCopyImageToBuffer(ptr int64 long int64 long ptr)
@ stdcall wine_vkCmdCopyQueryPoolResults(ptr int64 long long int64 int64 int64 long)
@ stdcall wine_vkCmdDispatch(ptr long long long)
@ st
ub vkCmdDispatchBase
@ st
dcall wine_vkCmdDispatchBase(ptr long long long long long long)
@ stdcall wine_vkCmdDispatchIndirect(ptr int64 int64)
@ stdcall wine_vkCmdDraw(ptr long long long long)
@ stdcall wine_vkCmdDrawIndexed(ptr long long long long long)
...
...
@@ -81,7 +81,7 @@
@ stdcall wine_vkCmdSetBlendConstants(ptr ptr)
@ stdcall wine_vkCmdSetDepthBias(ptr float float float)
@ stdcall wine_vkCmdSetDepthBounds(ptr float float)
@ st
ub vkCmdSetDeviceMask
@ st
dcall wine_vkCmdSetDeviceMask(ptr long)
@ stdcall wine_vkCmdSetEvent(ptr int64 long)
@ stdcall wine_vkCmdSetLineWidth(ptr float)
@ stdcall wine_vkCmdSetScissor(ptr long long ptr)
...
...
@@ -159,8 +159,8 @@
@ stdcall wine_vkGetBufferMemoryRequirements(ptr int64 ptr)
@ stdcall wine_vkGetBufferMemoryRequirements2(ptr ptr ptr)
@ stdcall wine_vkGetDescriptorSetLayoutSupport(ptr ptr ptr)
@ st
ub vkGetDeviceGroupPeerMemoryFeatures
@ st
ub vkGetDeviceGroupPresentCapabilitiesKHR
@ st
dcall wine_vkGetDeviceGroupPeerMemoryFeatures(ptr long long long long)
@ st
dcall wine_vkGetDeviceGroupPresentCapabilitiesKHR(ptr ptr)
@ stdcall wine_vkGetDeviceGroupSurfacePresentModesKHR(ptr int64 long)
@ stdcall wine_vkGetDeviceMemoryCommitment(ptr int64 ptr)
@ stdcall wine_vkGetDeviceProcAddr(ptr str)
...
...
include/wine/vulkan.h
View file @
fae21831
...
...
@@ -129,6 +129,8 @@
#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
...
...
@@ -4166,6 +4168,7 @@ typedef struct VkPresentRegionsKHR
const
VkPresentRegionKHR
*
pRegions
;
}
VkPresentRegionsKHR
;
typedef
VkResult
(
VKAPI_PTR
*
PFN_vkAcquireNextImage2KHR
)(
VkDevice
,
const
VkAcquireNextImageInfoKHR
*
,
uint32_t
*
);
typedef
VkResult
(
VKAPI_PTR
*
PFN_vkAcquireNextImageKHR
)(
VkDevice
,
VkSwapchainKHR
,
uint64_t
,
VkSemaphore
,
VkFence
,
uint32_t
*
);
typedef
VkResult
(
VKAPI_PTR
*
PFN_vkAllocateCommandBuffers
)(
VkDevice
,
const
VkCommandBufferAllocateInfo
*
,
VkCommandBuffer
*
);
typedef
VkResult
(
VKAPI_PTR
*
PFN_vkAllocateDescriptorSets
)(
VkDevice
,
const
VkDescriptorSetAllocateInfo
*
,
VkDescriptorSet
*
);
...
...
@@ -4193,6 +4196,8 @@ typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer, VkImage, VkImageLa
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdCopyImageToBuffer
)(
VkCommandBuffer
,
VkImage
,
VkImageLayout
,
VkBuffer
,
uint32_t
,
const
VkBufferImageCopy
*
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdCopyQueryPoolResults
)(
VkCommandBuffer
,
VkQueryPool
,
uint32_t
,
uint32_t
,
VkBuffer
,
VkDeviceSize
,
VkDeviceSize
,
VkQueryResultFlags
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDispatch
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDispatchBase
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDispatchBaseKHR
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDispatchIndirect
)(
VkCommandBuffer
,
VkBuffer
,
VkDeviceSize
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDraw
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDrawIndexed
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
int32_t
,
uint32_t
);
...
...
@@ -4217,6 +4222,8 @@ typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer, VkImage, VkImag
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdSetBlendConstants
)(
VkCommandBuffer
,
const
float
[
4
]);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdSetDepthBias
)(
VkCommandBuffer
,
float
,
float
,
float
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdSetDepthBounds
)(
VkCommandBuffer
,
float
,
float
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdSetDeviceMask
)(
VkCommandBuffer
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdSetDeviceMaskKHR
)(
VkCommandBuffer
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdSetDiscardRectangleEXT
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
const
VkRect2D
*
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdSetEvent
)(
VkCommandBuffer
,
VkEvent
,
VkPipelineStageFlags
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdSetLineWidth
)(
VkCommandBuffer
,
float
);
...
...
@@ -4304,6 +4311,9 @@ typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice, const VkB
typedef
void
(
VKAPI_PTR
*
PFN_vkGetBufferMemoryRequirements2KHR
)(
VkDevice
,
const
VkBufferMemoryRequirementsInfo2
*
,
VkMemoryRequirements2
*
);
typedef
void
(
VKAPI_PTR
*
PFN_vkGetDescriptorSetLayoutSupport
)(
VkDevice
,
const
VkDescriptorSetLayoutCreateInfo
*
,
VkDescriptorSetLayoutSupport
*
);
typedef
void
(
VKAPI_PTR
*
PFN_vkGetDescriptorSetLayoutSupportKHR
)(
VkDevice
,
const
VkDescriptorSetLayoutCreateInfo
*
,
VkDescriptorSetLayoutSupport
*
);
typedef
void
(
VKAPI_PTR
*
PFN_vkGetDeviceGroupPeerMemoryFeatures
)(
VkDevice
,
uint32_t
,
uint32_t
,
uint32_t
,
VkPeerMemoryFeatureFlags
*
);
typedef
void
(
VKAPI_PTR
*
PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR
)(
VkDevice
,
uint32_t
,
uint32_t
,
uint32_t
,
VkPeerMemoryFeatureFlags
*
);
typedef
VkResult
(
VKAPI_PTR
*
PFN_vkGetDeviceGroupPresentCapabilitiesKHR
)(
VkDevice
,
VkDeviceGroupPresentCapabilitiesKHR
*
);
typedef
VkResult
(
VKAPI_PTR
*
PFN_vkGetDeviceGroupSurfacePresentModesKHR
)(
VkDevice
,
VkSurfaceKHR
,
VkDeviceGroupPresentModeFlagsKHR
*
);
typedef
void
(
VKAPI_PTR
*
PFN_vkGetDeviceMemoryCommitment
)(
VkDevice
,
VkDeviceMemory
,
VkDeviceSize
*
);
typedef
PFN_vkVoidFunction
(
VKAPI_PTR
*
PFN_vkGetDeviceProcAddr
)(
VkDevice
,
const
char
*
);
...
...
@@ -4375,6 +4385,7 @@ typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice, uint32_t, const V
typedef
VkResult
(
VKAPI_PTR
*
PFN_vkWaitForFences
)(
VkDevice
,
uint32_t
,
const
VkFence
*
,
VkBool32
,
uint64_t
);
#ifndef VK_NO_PROTOTYPES
VkResult
VKAPI_CALL
vkAcquireNextImage2KHR
(
VkDevice
device
,
const
VkAcquireNextImageInfoKHR
*
pAcquireInfo
,
uint32_t
*
pImageIndex
);
VkResult
VKAPI_CALL
vkAcquireNextImageKHR
(
VkDevice
device
,
VkSwapchainKHR
swapchain
,
uint64_t
timeout
,
VkSemaphore
semaphore
,
VkFence
fence
,
uint32_t
*
pImageIndex
);
VkResult
VKAPI_CALL
vkAllocateCommandBuffers
(
VkDevice
device
,
const
VkCommandBufferAllocateInfo
*
pAllocateInfo
,
VkCommandBuffer
*
pCommandBuffers
);
VkResult
VKAPI_CALL
vkAllocateDescriptorSets
(
VkDevice
device
,
const
VkDescriptorSetAllocateInfo
*
pAllocateInfo
,
VkDescriptorSet
*
pDescriptorSets
);
...
...
@@ -4402,6 +4413,8 @@ void VKAPI_CALL vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage,
void
VKAPI_CALL
vkCmdCopyImageToBuffer
(
VkCommandBuffer
commandBuffer
,
VkImage
srcImage
,
VkImageLayout
srcImageLayout
,
VkBuffer
dstBuffer
,
uint32_t
regionCount
,
const
VkBufferImageCopy
*
pRegions
);
void
VKAPI_CALL
vkCmdCopyQueryPoolResults
(
VkCommandBuffer
commandBuffer
,
VkQueryPool
queryPool
,
uint32_t
firstQuery
,
uint32_t
queryCount
,
VkBuffer
dstBuffer
,
VkDeviceSize
dstOffset
,
VkDeviceSize
stride
,
VkQueryResultFlags
flags
);
void
VKAPI_CALL
vkCmdDispatch
(
VkCommandBuffer
commandBuffer
,
uint32_t
groupCountX
,
uint32_t
groupCountY
,
uint32_t
groupCountZ
);
void
VKAPI_CALL
vkCmdDispatchBase
(
VkCommandBuffer
commandBuffer
,
uint32_t
baseGroupX
,
uint32_t
baseGroupY
,
uint32_t
baseGroupZ
,
uint32_t
groupCountX
,
uint32_t
groupCountY
,
uint32_t
groupCountZ
);
void
VKAPI_CALL
vkCmdDispatchBaseKHR
(
VkCommandBuffer
commandBuffer
,
uint32_t
baseGroupX
,
uint32_t
baseGroupY
,
uint32_t
baseGroupZ
,
uint32_t
groupCountX
,
uint32_t
groupCountY
,
uint32_t
groupCountZ
);
void
VKAPI_CALL
vkCmdDispatchIndirect
(
VkCommandBuffer
commandBuffer
,
VkBuffer
buffer
,
VkDeviceSize
offset
);
void
VKAPI_CALL
vkCmdDraw
(
VkCommandBuffer
commandBuffer
,
uint32_t
vertexCount
,
uint32_t
instanceCount
,
uint32_t
firstVertex
,
uint32_t
firstInstance
);
void
VKAPI_CALL
vkCmdDrawIndexed
(
VkCommandBuffer
commandBuffer
,
uint32_t
indexCount
,
uint32_t
instanceCount
,
uint32_t
firstIndex
,
int32_t
vertexOffset
,
uint32_t
firstInstance
);
...
...
@@ -4426,6 +4439,8 @@ void VKAPI_CALL vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImag
void
VKAPI_CALL
vkCmdSetBlendConstants
(
VkCommandBuffer
commandBuffer
,
const
float
blendConstants
[
4
]);
void
VKAPI_CALL
vkCmdSetDepthBias
(
VkCommandBuffer
commandBuffer
,
float
depthBiasConstantFactor
,
float
depthBiasClamp
,
float
depthBiasSlopeFactor
);
void
VKAPI_CALL
vkCmdSetDepthBounds
(
VkCommandBuffer
commandBuffer
,
float
minDepthBounds
,
float
maxDepthBounds
);
void
VKAPI_CALL
vkCmdSetDeviceMask
(
VkCommandBuffer
commandBuffer
,
uint32_t
deviceMask
);
void
VKAPI_CALL
vkCmdSetDeviceMaskKHR
(
VkCommandBuffer
commandBuffer
,
uint32_t
deviceMask
);
void
VKAPI_CALL
vkCmdSetDiscardRectangleEXT
(
VkCommandBuffer
commandBuffer
,
uint32_t
firstDiscardRectangle
,
uint32_t
discardRectangleCount
,
const
VkRect2D
*
pDiscardRectangles
);
void
VKAPI_CALL
vkCmdSetEvent
(
VkCommandBuffer
commandBuffer
,
VkEvent
event
,
VkPipelineStageFlags
stageMask
);
void
VKAPI_CALL
vkCmdSetLineWidth
(
VkCommandBuffer
commandBuffer
,
float
lineWidth
);
...
...
@@ -4513,6 +4528,9 @@ void VKAPI_CALL vkGetBufferMemoryRequirements2(VkDevice device, const VkBufferMe
void
VKAPI_CALL
vkGetBufferMemoryRequirements2KHR
(
VkDevice
device
,
const
VkBufferMemoryRequirementsInfo2
*
pInfo
,
VkMemoryRequirements2
*
pMemoryRequirements
);
void
VKAPI_CALL
vkGetDescriptorSetLayoutSupport
(
VkDevice
device
,
const
VkDescriptorSetLayoutCreateInfo
*
pCreateInfo
,
VkDescriptorSetLayoutSupport
*
pSupport
);
void
VKAPI_CALL
vkGetDescriptorSetLayoutSupportKHR
(
VkDevice
device
,
const
VkDescriptorSetLayoutCreateInfo
*
pCreateInfo
,
VkDescriptorSetLayoutSupport
*
pSupport
);
void
VKAPI_CALL
vkGetDeviceGroupPeerMemoryFeatures
(
VkDevice
device
,
uint32_t
heapIndex
,
uint32_t
localDeviceIndex
,
uint32_t
remoteDeviceIndex
,
VkPeerMemoryFeatureFlags
*
pPeerMemoryFeatures
);
void
VKAPI_CALL
vkGetDeviceGroupPeerMemoryFeaturesKHR
(
VkDevice
device
,
uint32_t
heapIndex
,
uint32_t
localDeviceIndex
,
uint32_t
remoteDeviceIndex
,
VkPeerMemoryFeatureFlags
*
pPeerMemoryFeatures
);
VkResult
VKAPI_CALL
vkGetDeviceGroupPresentCapabilitiesKHR
(
VkDevice
device
,
VkDeviceGroupPresentCapabilitiesKHR
*
pDeviceGroupPresentCapabilities
);
VkResult
VKAPI_CALL
vkGetDeviceGroupSurfacePresentModesKHR
(
VkDevice
device
,
VkSurfaceKHR
surface
,
VkDeviceGroupPresentModeFlagsKHR
*
pModes
);
void
VKAPI_CALL
vkGetDeviceMemoryCommitment
(
VkDevice
device
,
VkDeviceMemory
memory
,
VkDeviceSize
*
pCommittedMemoryInBytes
);
PFN_vkVoidFunction
VKAPI_CALL
vkGetDeviceProcAddr
(
VkDevice
device
,
const
char
*
pName
);
...
...
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