Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
83199991
Commit
83199991
authored
Jan 26, 2023
by
Georg Lehmann
Committed by
Alexandre Julliard
Jan 26, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winevulkan: Update to VK spec version 1.3.240.
parent
a30a5287
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
267 additions
and
4 deletions
+267
-4
loader_thunks.c
dlls/winevulkan/loader_thunks.c
+21
-0
loader_thunks.h
dlls/winevulkan/loader_thunks.h
+17
-0
make_vulkan
dlls/winevulkan/make_vulkan
+2
-1
vulkan_thunks.c
dlls/winevulkan/vulkan_thunks.c
+181
-0
vulkan_thunks.h
dlls/winevulkan/vulkan_thunks.h
+4
-0
winevulkan.json
dlls/winevulkan/winevulkan.json
+1
-1
vulkan.h
include/wine/vulkan.h
+41
-2
No files found.
dlls/winevulkan/loader_thunks.c
View file @
83199991
...
...
@@ -870,6 +870,25 @@ void WINAPI vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint3
UNIX_CALL
(
vkCmdDraw
,
&
params
);
}
void
WINAPI
vkCmdDrawClusterHUAWEI
(
VkCommandBuffer
commandBuffer
,
uint32_t
groupCountX
,
uint32_t
groupCountY
,
uint32_t
groupCountZ
)
{
struct
vkCmdDrawClusterHUAWEI_params
params
;
params
.
commandBuffer
=
commandBuffer
;
params
.
groupCountX
=
groupCountX
;
params
.
groupCountY
=
groupCountY
;
params
.
groupCountZ
=
groupCountZ
;
UNIX_CALL
(
vkCmdDrawClusterHUAWEI
,
&
params
);
}
void
WINAPI
vkCmdDrawClusterIndirectHUAWEI
(
VkCommandBuffer
commandBuffer
,
VkBuffer
buffer
,
VkDeviceSize
offset
)
{
struct
vkCmdDrawClusterIndirectHUAWEI_params
params
;
params
.
commandBuffer
=
commandBuffer
;
params
.
buffer
=
buffer
;
params
.
offset
=
offset
;
UNIX_CALL
(
vkCmdDrawClusterIndirectHUAWEI
,
&
params
);
}
void
WINAPI
vkCmdDrawIndexed
(
VkCommandBuffer
commandBuffer
,
uint32_t
indexCount
,
uint32_t
instanceCount
,
uint32_t
firstIndex
,
int32_t
vertexOffset
,
uint32_t
firstInstance
)
{
struct
vkCmdDrawIndexed_params
params
;
...
...
@@ -5747,6 +5766,8 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{
"vkCmdDispatchBaseKHR"
,
vkCmdDispatchBaseKHR
},
{
"vkCmdDispatchIndirect"
,
vkCmdDispatchIndirect
},
{
"vkCmdDraw"
,
vkCmdDraw
},
{
"vkCmdDrawClusterHUAWEI"
,
vkCmdDrawClusterHUAWEI
},
{
"vkCmdDrawClusterIndirectHUAWEI"
,
vkCmdDrawClusterIndirectHUAWEI
},
{
"vkCmdDrawIndexed"
,
vkCmdDrawIndexed
},
{
"vkCmdDrawIndexedIndirect"
,
vkCmdDrawIndexedIndirect
},
{
"vkCmdDrawIndexedIndirectCount"
,
vkCmdDrawIndexedIndirectCount
},
...
...
dlls/winevulkan/loader_thunks.h
View file @
83199991
...
...
@@ -100,6 +100,8 @@ enum unix_call
unix_vkCmdDispatchBaseKHR
,
unix_vkCmdDispatchIndirect
,
unix_vkCmdDraw
,
unix_vkCmdDrawClusterHUAWEI
,
unix_vkCmdDrawClusterIndirectHUAWEI
,
unix_vkCmdDrawIndexed
,
unix_vkCmdDrawIndexedIndirect
,
unix_vkCmdDrawIndexedIndirectCount
,
...
...
@@ -1215,6 +1217,21 @@ struct vkCmdDraw_params
uint32_t
firstInstance
;
};
struct
vkCmdDrawClusterHUAWEI_params
{
VkCommandBuffer
commandBuffer
;
uint32_t
groupCountX
;
uint32_t
groupCountY
;
uint32_t
groupCountZ
;
};
struct
vkCmdDrawClusterIndirectHUAWEI_params
{
VkCommandBuffer
commandBuffer
;
VkBuffer
DECLSPEC_ALIGN
(
8
)
buffer
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
offset
;
};
struct
vkCmdDrawIndexed_params
{
VkCommandBuffer
commandBuffer
;
...
...
dlls/winevulkan/make_vulkan
View file @
83199991
...
...
@@ -65,7 +65,7 @@ from enum import Enum
LOGGER
=
logging
.
Logger
(
"vulkan"
)
LOGGER
.
addHandler
(
logging
.
StreamHandler
())
VK_XML_VERSION
=
"1.3.2
37
"
VK_XML_VERSION
=
"1.3.2
40
"
WINE_VK_VERSION
=
(
1
,
3
)
# Filenames to create.
...
...
@@ -102,6 +102,7 @@ UNSUPPORTED_EXTENSIONS = [
"VK_KHR_external_semaphore_win32"
,
# 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
"VK_KHR_win32_keyed_mutex"
,
"VK_NV_external_memory_rdma"
,
# Needs shared resources work.
...
...
dlls/winevulkan/vulkan_thunks.c
View file @
83199991
...
...
@@ -2402,6 +2402,14 @@ typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI32
VkBool32
subpassShading
;
}
VkPhysicalDeviceSubpassShadingFeaturesHUAWEI32
;
typedef
struct
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI32
{
VkStructureType
sType
;
PTR32
pNext
;
VkBool32
clustercullingShader
;
VkBool32
multiviewClusterCullingShader
;
}
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI32
;
typedef
struct
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT32
{
VkStructureType
sType
;
...
...
@@ -2737,6 +2745,13 @@ typedef struct VkPhysicalDeviceFaultFeaturesEXT32
VkBool32
deviceFaultVendorBinary
;
}
VkPhysicalDeviceFaultFeaturesEXT32
;
typedef
struct
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT32
{
VkStructureType
sType
;
PTR32
pNext
;
VkBool32
pipelineLibraryGroupHandles
;
}
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT32
;
typedef
struct
VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM32
{
VkStructureType
sType
;
...
...
@@ -5212,6 +5227,15 @@ typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI32
uint32_t
maxSubpassShadingWorkgroupSizeAspectRatio
;
}
VkPhysicalDeviceSubpassShadingPropertiesHUAWEI32
;
typedef
struct
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI32
{
VkStructureType
sType
;
PTR32
pNext
;
uint32_t
maxWorkGroupCount
[
3
];
uint32_t
maxWorkGroupSize
[
3
];
uint32_t
maxOutputClusterCount
;
}
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI32
;
typedef
struct
VkPhysicalDeviceLineRasterizationPropertiesEXT32
{
VkStructureType
sType
;
...
...
@@ -10902,6 +10926,18 @@ static inline void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_co
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
:
{
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
const
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
*
in_ext
=
(
const
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
;
out_ext
->
pNext
=
NULL
;
out_ext
->
clustercullingShader
=
in_ext
->
clustercullingShader
;
out_ext
->
multiviewClusterCullingShader
=
in_ext
->
multiviewClusterCullingShader
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
:
{
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
...
...
@@ -11406,6 +11442,17 @@ static inline void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_co
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
:
{
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
const
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*
in_ext
=
(
const
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
;
out_ext
->
pNext
=
NULL
;
out_ext
->
pipelineLibraryGroupHandles
=
in_ext
->
pipelineLibraryGroupHandles
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
:
{
VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
...
...
@@ -12752,6 +12799,18 @@ static inline void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_co
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
:
{
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
const
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI32
*
in_ext
=
(
const
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI32
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
;
out_ext
->
pNext
=
NULL
;
out_ext
->
clustercullingShader
=
in_ext
->
clustercullingShader
;
out_ext
->
multiviewClusterCullingShader
=
in_ext
->
multiviewClusterCullingShader
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
:
{
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
...
...
@@ -13256,6 +13315,17 @@ static inline void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_co
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
:
{
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
const
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT32
*
in_ext
=
(
const
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT32
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
;
out_ext
->
pNext
=
NULL
;
out_ext
->
pipelineLibraryGroupHandles
=
in_ext
->
pipelineLibraryGroupHandles
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
:
{
VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
...
...
@@ -19114,6 +19184,18 @@ static inline void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conver
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
:
{
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
const
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI32
*
in_ext
=
(
const
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI32
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
;
out_ext
->
pNext
=
NULL
;
out_ext
->
clustercullingShader
=
in_ext
->
clustercullingShader
;
out_ext
->
multiviewClusterCullingShader
=
in_ext
->
multiviewClusterCullingShader
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
:
{
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
...
...
@@ -19618,6 +19700,17 @@ static inline void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conver
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
:
{
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
const
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT32
*
in_ext
=
(
const
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT32
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
;
out_ext
->
pNext
=
NULL
;
out_ext
->
pipelineLibraryGroupHandles
=
in_ext
->
pipelineLibraryGroupHandles
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
:
{
VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
...
...
@@ -20712,6 +20805,16 @@ static inline void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysi
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
:
{
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI32
*
out_ext
=
find_next_struct32
(
out_header
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
);
const
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
*
in_ext
=
(
const
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
;
out_ext
->
clustercullingShader
=
in_ext
->
clustercullingShader
;
out_ext
->
multiviewClusterCullingShader
=
in_ext
->
multiviewClusterCullingShader
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
:
{
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT32
*
out_ext
=
find_next_struct32
(
out_header
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
);
...
...
@@ -21128,6 +21231,15 @@ static inline void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysi
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
:
{
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT32
*
out_ext
=
find_next_struct32
(
out_header
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
);
const
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*
in_ext
=
(
const
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
;
out_ext
->
pipelineLibraryGroupHandles
=
in_ext
->
pipelineLibraryGroupHandles
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
:
{
VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM32
*
out_ext
=
find_next_struct32
(
out_header
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
);
...
...
@@ -22231,6 +22343,15 @@ static inline void convert_VkPhysicalDeviceProperties2_win32_to_host(struct conv
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
:
{
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
;
out_ext
->
pNext
=
NULL
;
out_header
->
pNext
=
(
void
*
)
out_ext
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
:
{
VkPhysicalDeviceLineRasterizationPropertiesEXT
*
out_ext
=
conversion_context_alloc
(
ctx
,
sizeof
(
*
out_ext
));
...
...
@@ -23036,6 +23157,17 @@ static inline void convert_VkPhysicalDeviceProperties2_host_to_win32(const VkPhy
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
:
{
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI32
*
out_ext
=
find_next_struct32
(
out_header
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
);
const
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI
*
in_ext
=
(
const
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI
*
)
in_header
;
out_ext
->
sType
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
;
memcpy
(
out_ext
->
maxWorkGroupCount
,
in_ext
->
maxWorkGroupCount
,
3
*
sizeof
(
uint32_t
));
memcpy
(
out_ext
->
maxWorkGroupSize
,
in_ext
->
maxWorkGroupSize
,
3
*
sizeof
(
uint32_t
));
out_ext
->
maxOutputClusterCount
=
in_ext
->
maxOutputClusterCount
;
out_header
=
(
void
*
)
out_ext
;
break
;
}
case
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
:
{
VkPhysicalDeviceLineRasterizationPropertiesEXT32
*
out_ext
=
find_next_struct32
(
out_header
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
);
...
...
@@ -27602,6 +27734,49 @@ static void thunk32_vkCmdDraw(void *args)
}
#ifdef _WIN64
static
void
thunk64_vkCmdDrawClusterHUAWEI
(
void
*
args
)
{
struct
vkCmdDrawClusterHUAWEI_params
*
params
=
args
;
wine_cmd_buffer_from_handle
(
params
->
commandBuffer
)
->
device
->
funcs
.
p_vkCmdDrawClusterHUAWEI
(
wine_cmd_buffer_from_handle
(
params
->
commandBuffer
)
->
command_buffer
,
params
->
groupCountX
,
params
->
groupCountY
,
params
->
groupCountZ
);
}
#endif
/* _WIN64 */
static
void
thunk32_vkCmdDrawClusterHUAWEI
(
void
*
args
)
{
struct
{
PTR32
commandBuffer
;
uint32_t
groupCountX
;
uint32_t
groupCountY
;
uint32_t
groupCountZ
;
}
*
params
=
args
;
wine_cmd_buffer_from_handle
((
VkCommandBuffer
)
UlongToPtr
(
params
->
commandBuffer
))
->
device
->
funcs
.
p_vkCmdDrawClusterHUAWEI
(
wine_cmd_buffer_from_handle
((
VkCommandBuffer
)
UlongToPtr
(
params
->
commandBuffer
))
->
command_buffer
,
params
->
groupCountX
,
params
->
groupCountY
,
params
->
groupCountZ
);
}
#ifdef _WIN64
static
void
thunk64_vkCmdDrawClusterIndirectHUAWEI
(
void
*
args
)
{
struct
vkCmdDrawClusterIndirectHUAWEI_params
*
params
=
args
;
wine_cmd_buffer_from_handle
(
params
->
commandBuffer
)
->
device
->
funcs
.
p_vkCmdDrawClusterIndirectHUAWEI
(
wine_cmd_buffer_from_handle
(
params
->
commandBuffer
)
->
command_buffer
,
params
->
buffer
,
params
->
offset
);
}
#endif
/* _WIN64 */
static
void
thunk32_vkCmdDrawClusterIndirectHUAWEI
(
void
*
args
)
{
struct
{
PTR32
commandBuffer
;
VkBuffer
DECLSPEC_ALIGN
(
8
)
buffer
;
VkDeviceSize
DECLSPEC_ALIGN
(
8
)
offset
;
}
*
params
=
args
;
wine_cmd_buffer_from_handle
((
VkCommandBuffer
)
UlongToPtr
(
params
->
commandBuffer
))
->
device
->
funcs
.
p_vkCmdDrawClusterIndirectHUAWEI
(
wine_cmd_buffer_from_handle
((
VkCommandBuffer
)
UlongToPtr
(
params
->
commandBuffer
))
->
command_buffer
,
params
->
buffer
,
params
->
offset
);
}
#ifdef _WIN64
static
void
thunk64_vkCmdDrawIndexed
(
void
*
args
)
{
struct
vkCmdDrawIndexed_params
*
params
=
args
;
...
...
@@ -40132,6 +40307,7 @@ static const char * const vk_device_extensions[] =
"VK_EXT_pci_bus_info"
,
"VK_EXT_pipeline_creation_cache_control"
,
"VK_EXT_pipeline_creation_feedback"
,
"VK_EXT_pipeline_library_group_handles"
,
"VK_EXT_pipeline_properties"
,
"VK_EXT_pipeline_protected_access"
,
"VK_EXT_pipeline_robustness"
,
...
...
@@ -40172,6 +40348,7 @@ static const char * const vk_device_extensions[] =
"VK_GOOGLE_decorate_string"
,
"VK_GOOGLE_hlsl_functionality1"
,
"VK_GOOGLE_user_type"
,
"VK_HUAWEI_cluster_culling_shader"
,
"VK_HUAWEI_invocation_mask"
,
"VK_HUAWEI_subpass_shading"
,
"VK_IMG_filter_cubic"
,
...
...
@@ -40439,6 +40616,8 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
(
void
*
)
thunk64_vkCmdDispatchBaseKHR
,
(
void
*
)
thunk64_vkCmdDispatchIndirect
,
(
void
*
)
thunk64_vkCmdDraw
,
(
void
*
)
thunk64_vkCmdDrawClusterHUAWEI
,
(
void
*
)
thunk64_vkCmdDrawClusterIndirectHUAWEI
,
(
void
*
)
thunk64_vkCmdDrawIndexed
,
(
void
*
)
thunk64_vkCmdDrawIndexedIndirect
,
(
void
*
)
thunk64_vkCmdDrawIndexedIndirectCount
,
...
...
@@ -40981,6 +41160,8 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
(
void
*
)
thunk32_vkCmdDispatchBaseKHR
,
(
void
*
)
thunk32_vkCmdDispatchIndirect
,
(
void
*
)
thunk32_vkCmdDraw
,
(
void
*
)
thunk32_vkCmdDrawClusterHUAWEI
,
(
void
*
)
thunk32_vkCmdDrawClusterIndirectHUAWEI
,
(
void
*
)
thunk32_vkCmdDrawIndexed
,
(
void
*
)
thunk32_vkCmdDrawIndexedIndirect
,
(
void
*
)
thunk32_vkCmdDrawIndexedIndirectCount
,
dlls/winevulkan/vulkan_thunks.h
View file @
83199991
...
...
@@ -143,6 +143,8 @@ struct vulkan_device_funcs
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_vkCmdDrawClusterHUAWEI
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
);
void
(
*
p_vkCmdDrawClusterIndirectHUAWEI
)(
VkCommandBuffer
,
VkBuffer
,
VkDeviceSize
);
void
(
*
p_vkCmdDrawIndexed
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
int32_t
,
uint32_t
);
void
(
*
p_vkCmdDrawIndexedIndirect
)(
VkCommandBuffer
,
VkBuffer
,
VkDeviceSize
,
uint32_t
,
uint32_t
);
void
(
*
p_vkCmdDrawIndexedIndirectCount
)(
VkCommandBuffer
,
VkBuffer
,
VkDeviceSize
,
VkBuffer
,
VkDeviceSize
,
uint32_t
,
uint32_t
);
...
...
@@ -669,6 +671,8 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkCmdDispatchBaseKHR) \
USE_VK_FUNC(vkCmdDispatchIndirect) \
USE_VK_FUNC(vkCmdDraw) \
USE_VK_FUNC(vkCmdDrawClusterHUAWEI) \
USE_VK_FUNC(vkCmdDrawClusterIndirectHUAWEI) \
USE_VK_FUNC(vkCmdDrawIndexed) \
USE_VK_FUNC(vkCmdDrawIndexedIndirect) \
USE_VK_FUNC(vkCmdDrawIndexedIndirectCount) \
...
...
dlls/winevulkan/winevulkan.json
View file @
83199991
...
...
@@ -2,6 +2,6 @@
"file_format_version"
:
"1.0.0"
,
"ICD"
:
{
"library_path"
:
".
\\
winevulkan.dll"
,
"api_version"
:
"1.3.2
37
"
"api_version"
:
"1.3.2
40
"
}
}
include/wine/vulkan.h
View file @
83199991
...
...
@@ -526,6 +526,8 @@
#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 1
#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
...
...
@@ -574,6 +576,8 @@
#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
...
...
@@ -598,7 +602,7 @@
#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)
#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)
#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)
#define VK_HEADER_VERSION 2
37
#define VK_HEADER_VERSION 2
40
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
#define VK_USE_64_BIT_PTR_DEFINES 0
...
...
@@ -871,7 +875,7 @@ typedef VkFlags VkVideoCodingControlFlagsKHR;
typedef
VkFlags
VkVideoComponentBitDepthFlagsKHR
;
typedef
VkFlags
VkVideoDecodeCapabilityFlagsKHR
;
typedef
VkFlags
VkVideoDecodeFlagsKHR
;
typedef
VkFlags
VkVideoDecodeH264PictureLayoutFlags
EXT
;
typedef
VkFlags
VkVideoDecodeH264PictureLayoutFlags
KHR
;
typedef
VkFlags
VkVideoDecodeUsageFlagsKHR
;
typedef
VkFlags
VkVideoEncodeCapabilityFlagsKHR
;
typedef
VkFlags
VkVideoEncodeContentFlagsKHR
;
...
...
@@ -1703,6 +1707,7 @@ typedef enum VkDriverId
VK_DRIVER_ID_MESA_VENUS
=
22
,
VK_DRIVER_ID_MESA_DOZEN
=
23
,
VK_DRIVER_ID_MESA_NVK
=
24
,
VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
=
25
,
VK_DRIVER_ID_AMD_PROPRIETARY_KHR
=
VK_DRIVER_ID_AMD_PROPRIETARY
,
VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR
=
VK_DRIVER_ID_AMD_OPEN_SOURCE
,
VK_DRIVER_ID_MESA_RADV_KHR
=
VK_DRIVER_ID_MESA_RADV
,
...
...
@@ -3228,6 +3233,7 @@ static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHAD
static
const
VkPipelineStageFlagBits2
VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR
=
0x4000000000ull
;
static
const
VkPipelineStageFlagBits2
VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
=
0x8000000000ull
;
static
const
VkPipelineStageFlagBits2
VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
=
0x10000000000ull
;
static
const
VkPipelineStageFlagBits2
VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI
=
0x20000000000ull
;
typedef
VkPipelineStageFlagBits2
VkPipelineStageFlagBits2KHR
;
typedef
enum
VkPointClippingBehavior
...
...
@@ -3318,6 +3324,7 @@ typedef enum VkQueryPipelineStatisticFlagBits
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
=
0x00000400
,
VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT
=
0x00000800
,
VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT
=
0x00001000
,
VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI
=
0x00002000
,
VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM
=
0x7fffffff
,
}
VkQueryPipelineStatisticFlagBits
;
...
...
@@ -3656,6 +3663,7 @@ typedef enum VkShaderStageFlagBits
VK_SHADER_STAGE_INTERSECTION_BIT_KHR
=
0x00001000
,
VK_SHADER_STAGE_CALLABLE_BIT_KHR
=
0x00002000
,
VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
=
0x00004000
,
VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
=
0x00080000
,
VK_SHADER_STAGE_RAYGEN_BIT_NV
=
VK_SHADER_STAGE_RAYGEN_BIT_KHR
,
VK_SHADER_STAGE_ANY_HIT_BIT_NV
=
VK_SHADER_STAGE_ANY_HIT_BIT_KHR
,
VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV
=
VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR
,
...
...
@@ -4259,6 +4267,8 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
=
1000396007
,
VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
=
1000396008
,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
=
1000396009
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
=
1000404000
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
=
1000404001
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
=
1000411000
,
VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
=
1000411001
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
=
1000412000
,
...
...
@@ -4309,6 +4319,7 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV
=
1000490001
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
=
1000497000
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
=
1000497001
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
=
1000498000
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES
=
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT
=
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
,
...
...
@@ -6835,6 +6846,23 @@ typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
}
VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
;
typedef
VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
VkPhysicalDeviceBufferAddressFeaturesEXT
;
typedef
struct
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
{
VkStructureType
sType
;
void
*
pNext
;
VkBool32
clustercullingShader
;
VkBool32
multiviewClusterCullingShader
;
}
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
;
typedef
struct
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI
{
VkStructureType
sType
;
void
*
pNext
;
uint32_t
maxWorkGroupCount
[
3
];
uint32_t
maxWorkGroupSize
[
3
];
uint32_t
maxOutputClusterCount
;
}
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI
;
typedef
struct
VkPhysicalDeviceCoherentMemoryFeaturesAMD
{
VkStructureType
sType
;
...
...
@@ -8102,6 +8130,13 @@ typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
VkBool32
pipelineExecutableInfo
;
}
VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
;
typedef
struct
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
{
VkStructureType
sType
;
void
*
pNext
;
VkBool32
pipelineLibraryGroupHandles
;
}
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
;
typedef
struct
VkPhysicalDevicePipelinePropertiesFeaturesEXT
{
VkStructureType
sType
;
...
...
@@ -11671,6 +11706,8 @@ typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer, uint32_t, uint3
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_vkCmdDrawClusterHUAWEI
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDrawClusterIndirectHUAWEI
)(
VkCommandBuffer
,
VkBuffer
,
VkDeviceSize
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDrawIndexed
)(
VkCommandBuffer
,
uint32_t
,
uint32_t
,
uint32_t
,
int32_t
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDrawIndexedIndirect
)(
VkCommandBuffer
,
VkBuffer
,
VkDeviceSize
,
uint32_t
,
uint32_t
);
typedef
void
(
VKAPI_PTR
*
PFN_vkCmdDrawIndexedIndirectCount
)(
VkCommandBuffer
,
VkBuffer
,
VkDeviceSize
,
VkBuffer
,
VkDeviceSize
,
uint32_t
,
uint32_t
);
...
...
@@ -12206,6 +12243,8 @@ void VKAPI_CALL vkCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGr
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
vkCmdDrawClusterHUAWEI
(
VkCommandBuffer
commandBuffer
,
uint32_t
groupCountX
,
uint32_t
groupCountY
,
uint32_t
groupCountZ
);
void
VKAPI_CALL
vkCmdDrawClusterIndirectHUAWEI
(
VkCommandBuffer
commandBuffer
,
VkBuffer
buffer
,
VkDeviceSize
offset
);
void
VKAPI_CALL
vkCmdDrawIndexed
(
VkCommandBuffer
commandBuffer
,
uint32_t
indexCount
,
uint32_t
instanceCount
,
uint32_t
firstIndex
,
int32_t
vertexOffset
,
uint32_t
firstInstance
);
void
VKAPI_CALL
vkCmdDrawIndexedIndirect
(
VkCommandBuffer
commandBuffer
,
VkBuffer
buffer
,
VkDeviceSize
offset
,
uint32_t
drawCount
,
uint32_t
stride
);
void
VKAPI_CALL
vkCmdDrawIndexedIndirectCount
(
VkCommandBuffer
commandBuffer
,
VkBuffer
buffer
,
VkDeviceSize
offset
,
VkBuffer
countBuffer
,
VkDeviceSize
countBufferOffset
,
uint32_t
maxDrawCount
,
uint32_t
stride
);
...
...
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