Commit d20d5d07 authored by Georg Lehmann's avatar Georg Lehmann Committed by Alexandre Julliard

winevulkan: Update to VK spec version 1.3.213.

parent 3d824d11
......@@ -1710,6 +1710,14 @@ void WINAPI vkCmdSubpassShadingHUAWEI(VkCommandBuffer commandBuffer)
unix_funcs->p_vk_call(unix_vkCmdSubpassShadingHUAWEI, &params);
}
void WINAPI vkCmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress)
{
struct vkCmdTraceRaysIndirect2KHR_params params;
params.commandBuffer = commandBuffer;
params.indirectDeviceAddress = indirectDeviceAddress;
unix_funcs->p_vk_call(unix_vkCmdTraceRaysIndirect2KHR, &params);
}
void WINAPI vkCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress)
{
struct vkCmdTraceRaysIndirectKHR_params params;
......@@ -3691,6 +3699,15 @@ VkResult WINAPI vkGetPipelineExecutableStatisticsKHR(VkDevice device, const VkPi
return vk_unix_call(unix_vkGetPipelineExecutableStatisticsKHR, &params);
}
VkResult WINAPI vkGetPipelinePropertiesEXT(VkDevice device, const VkPipelineInfoEXT *pPipelineInfo, VkBaseOutStructure *pPipelineProperties)
{
struct vkGetPipelinePropertiesEXT_params params;
params.device = device;
params.pPipelineInfo = pPipelineInfo;
params.pPipelineProperties = pPipelineProperties;
return vk_unix_call(unix_vkGetPipelinePropertiesEXT, &params);
}
void WINAPI vkGetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t *pData)
{
struct vkGetPrivateData_params params;
......@@ -4440,6 +4457,7 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkCmdSetViewportWithCount", vkCmdSetViewportWithCount},
{"vkCmdSetViewportWithCountEXT", vkCmdSetViewportWithCountEXT},
{"vkCmdSubpassShadingHUAWEI", vkCmdSubpassShadingHUAWEI},
{"vkCmdTraceRaysIndirect2KHR", vkCmdTraceRaysIndirect2KHR},
{"vkCmdTraceRaysIndirectKHR", vkCmdTraceRaysIndirectKHR},
{"vkCmdTraceRaysKHR", vkCmdTraceRaysKHR},
{"vkCmdTraceRaysNV", vkCmdTraceRaysNV},
......@@ -4592,6 +4610,7 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkGetPipelineExecutableInternalRepresentationsKHR", vkGetPipelineExecutableInternalRepresentationsKHR},
{"vkGetPipelineExecutablePropertiesKHR", vkGetPipelineExecutablePropertiesKHR},
{"vkGetPipelineExecutableStatisticsKHR", vkGetPipelineExecutableStatisticsKHR},
{"vkGetPipelinePropertiesEXT", vkGetPipelinePropertiesEXT},
{"vkGetPrivateData", vkGetPrivateData},
{"vkGetPrivateDataEXT", vkGetPrivateDataEXT},
{"vkGetQueryPoolResults", vkGetQueryPoolResults},
......
......@@ -193,6 +193,7 @@ enum unix_call
unix_vkCmdSetViewportWithCount,
unix_vkCmdSetViewportWithCountEXT,
unix_vkCmdSubpassShadingHUAWEI,
unix_vkCmdTraceRaysIndirect2KHR,
unix_vkCmdTraceRaysIndirectKHR,
unix_vkCmdTraceRaysKHR,
unix_vkCmdTraceRaysNV,
......@@ -405,6 +406,7 @@ enum unix_call
unix_vkGetPipelineExecutableInternalRepresentationsKHR,
unix_vkGetPipelineExecutablePropertiesKHR,
unix_vkGetPipelineExecutableStatisticsKHR,
unix_vkGetPipelinePropertiesEXT,
unix_vkGetPrivateData,
unix_vkGetPrivateDataEXT,
unix_vkGetQueryPoolResults,
......@@ -1811,6 +1813,12 @@ struct vkCmdSubpassShadingHUAWEI_params
VkCommandBuffer commandBuffer;
};
struct vkCmdTraceRaysIndirect2KHR_params
{
VkCommandBuffer commandBuffer;
VkDeviceAddress indirectDeviceAddress;
};
struct vkCmdTraceRaysIndirectKHR_params
{
VkCommandBuffer commandBuffer;
......@@ -3409,6 +3417,13 @@ struct vkGetPipelineExecutableStatisticsKHR_params
VkPipelineExecutableStatisticKHR *pStatistics;
};
struct vkGetPipelinePropertiesEXT_params
{
VkDevice device;
const VkPipelineInfoEXT *pPipelineInfo;
VkBaseOutStructure *pPipelineProperties;
};
struct vkGetPrivateData_params
{
VkDevice device;
......
......@@ -64,7 +64,7 @@ from enum import Enum
LOGGER = logging.Logger("vulkan")
LOGGER.addHandler(logging.StreamHandler())
VK_XML_VERSION = "1.3.211"
VK_XML_VERSION = "1.3.213"
WINE_VK_VERSION = (1, 3)
# Filenames to create.
......@@ -116,6 +116,10 @@ UNSUPPORTED_EXTENSIONS = [
# Extensions which require callback handling
"VK_EXT_device_memory_report",
# Needs https://github.com/KhronosGroup/Vulkan-Docs/pull/1848
# or a rework of how we detect returned structs.
"VK_EXT_image_compression_control",
# Deprecated extensions
"VK_NV_external_memory_capabilities",
"VK_NV_external_memory_win32",
......
......@@ -2248,6 +2248,17 @@ static inline void convert_VkPipelineInfoKHR_win_to_host(const VkPipelineInfoKHR
#endif /* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static inline void convert_VkPipelineInfoEXT_win_to_host(const VkPipelineInfoEXT *in, VkPipelineInfoEXT_host *out)
{
if (!in) return;
out->sType = in->sType;
out->pNext = in->pNext;
out->pipeline = in->pipeline;
}
#endif /* USE_STRUCT_CONVERSION */
#if defined(USE_STRUCT_CONVERSION)
static inline VkSparseMemoryBind_host *convert_VkSparseMemoryBind_array_win_to_host(const VkSparseMemoryBind *in, uint32_t count)
{
VkSparseMemoryBind_host *out;
......@@ -3594,6 +3605,23 @@ VkResult convert_VkDeviceCreateInfo_struct_chain(const void *pNext, VkDeviceCrea
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:
{
const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *in = (const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *)in_header;
VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *out;
if (!(out = malloc(sizeof(*out)))) goto out_of_memory;
out->sType = in->sType;
out->pNext = NULL;
out->rayTracingMaintenance1 = in->rayTracingMaintenance1;
out->rayTracingPipelineTraceRaysIndirect2 = in->rayTracingPipelineTraceRaysIndirect2;
out_header->pNext = (VkBaseOutStructure *)out;
out_header = out_header->pNext;
break;
}
case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
{
const VkDeviceMemoryOverallocationCreateInfoAMD *in = (const VkDeviceMemoryOverallocationCreateInfoAMD *)in_header;
......@@ -4825,6 +4853,38 @@ VkResult convert_VkDeviceCreateInfo_struct_chain(const void *pNext, VkDeviceCrea
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:
{
const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *in = (const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *)in_header;
VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *out;
if (!(out = malloc(sizeof(*out)))) goto out_of_memory;
out->sType = in->sType;
out->pNext = NULL;
out->subpassMergeFeedback = in->subpassMergeFeedback;
out_header->pNext = (VkBaseOutStructure *)out;
out_header = out_header->pNext;
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:
{
const VkPhysicalDevicePipelinePropertiesFeaturesEXT *in = (const VkPhysicalDevicePipelinePropertiesFeaturesEXT *)in_header;
VkPhysicalDevicePipelinePropertiesFeaturesEXT *out;
if (!(out = malloc(sizeof(*out)))) goto out_of_memory;
out->sType = in->sType;
out->pNext = NULL;
out->pipelinePropertiesIdentifier = in->pipelinePropertiesIdentifier;
out_header->pNext = (VkBaseOutStructure *)out;
out_header = out_header->pNext;
break;
}
default:
FIXME("Application requested a linked structure of type %u.\n", in_header->sType);
}
......@@ -6921,6 +6981,14 @@ static NTSTATUS wine_vkCmdSubpassShadingHUAWEI(void *args)
return STATUS_SUCCESS;
}
static NTSTATUS wine_vkCmdTraceRaysIndirect2KHR(void *args)
{
struct vkCmdTraceRaysIndirect2KHR_params *params = args;
TRACE("%p, 0x%s\n", params->commandBuffer, wine_dbgstr_longlong(params->indirectDeviceAddress));
params->commandBuffer->device->funcs.p_vkCmdTraceRaysIndirect2KHR(params->commandBuffer->command_buffer, params->indirectDeviceAddress);
return STATUS_SUCCESS;
}
static NTSTATUS wine_vkCmdTraceRaysIndirectKHR(void *args)
{
struct vkCmdTraceRaysIndirectKHR_params *params = args;
......@@ -9058,6 +9126,24 @@ static NTSTATUS wine_vkGetPipelineExecutableStatisticsKHR(void *args)
#endif
}
static NTSTATUS wine_vkGetPipelinePropertiesEXT(void *args)
{
struct vkGetPipelinePropertiesEXT_params *params = args;
#if defined(USE_STRUCT_CONVERSION)
VkResult result;
VkPipelineInfoEXT_host pPipelineInfo_host;
TRACE("%p, %p, %p\n", params->device, params->pPipelineInfo, params->pPipelineProperties);
convert_VkPipelineInfoEXT_win_to_host(params->pPipelineInfo, &pPipelineInfo_host);
result = params->device->funcs.p_vkGetPipelinePropertiesEXT(params->device->device, &pPipelineInfo_host, params->pPipelineProperties);
return result;
#else
TRACE("%p, %p, %p\n", params->device, params->pPipelineInfo, params->pPipelineProperties);
return params->device->funcs.p_vkGetPipelinePropertiesEXT(params->device->device, params->pPipelineInfo, params->pPipelineProperties);
#endif
}
static NTSTATUS wine_vkGetPrivateData(void *args)
{
struct vkGetPrivateData_params *params = args;
......@@ -9717,6 +9803,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_properties",
"VK_EXT_post_depth_coverage",
"VK_EXT_primitive_topology_list_restart",
"VK_EXT_primitives_generated_query",
......@@ -9738,6 +9825,7 @@ static const char * const vk_device_extensions[] =
"VK_EXT_shader_subgroup_vote",
"VK_EXT_shader_viewport_index_layer",
"VK_EXT_subgroup_size_control",
"VK_EXT_subpass_merge_feedback",
"VK_EXT_texel_buffer_alignment",
"VK_EXT_texture_compression_astc_hdr",
"VK_EXT_tooling_info",
......@@ -9793,6 +9881,7 @@ static const char * const vk_device_extensions[] =
"VK_KHR_present_wait",
"VK_KHR_push_descriptor",
"VK_KHR_ray_query",
"VK_KHR_ray_tracing_maintenance1",
"VK_KHR_ray_tracing_pipeline",
"VK_KHR_relaxed_block_layout",
"VK_KHR_sampler_mirror_clamp_to_edge",
......@@ -10123,6 +10212,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
wine_vkCmdSetViewportWithCount,
wine_vkCmdSetViewportWithCountEXT,
wine_vkCmdSubpassShadingHUAWEI,
wine_vkCmdTraceRaysIndirect2KHR,
wine_vkCmdTraceRaysIndirectKHR,
wine_vkCmdTraceRaysKHR,
wine_vkCmdTraceRaysNV,
......@@ -10335,6 +10425,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
wine_vkGetPipelineExecutableInternalRepresentationsKHR,
wine_vkGetPipelineExecutablePropertiesKHR,
wine_vkGetPipelineExecutableStatisticsKHR,
wine_vkGetPipelinePropertiesEXT,
wine_vkGetPrivateData,
wine_vkGetPrivateDataEXT,
wine_vkGetQueryPoolResults,
......
......@@ -1572,11 +1572,23 @@ typedef struct VkPipelineInfoKHR_host
const void *pNext;
VkPipeline pipeline;
} VkPipelineInfoKHR_host;
typedef VkPipelineInfoKHR VkPipelineInfoEXT;
#else
typedef VkPipelineInfoKHR VkPipelineInfoKHR_host;
#endif
#if defined(USE_STRUCT_CONVERSION)
typedef struct VkPipelineInfoEXT_host
{
VkStructureType sType;
const void *pNext;
VkPipeline pipeline;
} VkPipelineInfoEXT_host;
#else
typedef VkPipelineInfoEXT VkPipelineInfoEXT_host;
#endif
#if defined(USE_STRUCT_CONVERSION)
typedef struct VkSparseMemoryBind_host
{
VkDeviceSize resourceOffset;
......@@ -1984,6 +1996,7 @@ struct vulkan_device_funcs
void (*p_vkCmdSetViewportWithCount)(VkCommandBuffer, uint32_t, const VkViewport *);
void (*p_vkCmdSetViewportWithCountEXT)(VkCommandBuffer, uint32_t, const VkViewport *);
void (*p_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer);
void (*p_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer, VkDeviceAddress);
void (*p_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer, const VkStridedDeviceAddressRegionKHR_host *, const VkStridedDeviceAddressRegionKHR_host *, const VkStridedDeviceAddressRegionKHR_host *, const VkStridedDeviceAddressRegionKHR_host *, VkDeviceAddress);
void (*p_vkCmdTraceRaysKHR)(VkCommandBuffer, const VkStridedDeviceAddressRegionKHR_host *, const VkStridedDeviceAddressRegionKHR_host *, const VkStridedDeviceAddressRegionKHR_host *, const VkStridedDeviceAddressRegionKHR_host *, uint32_t, uint32_t, uint32_t);
void (*p_vkCmdTraceRaysNV)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, uint32_t, uint32_t, uint32_t);
......@@ -2137,6 +2150,7 @@ struct vulkan_device_funcs
VkResult (*p_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice, const VkPipelineExecutableInfoKHR_host *, uint32_t *, VkPipelineExecutableInternalRepresentationKHR *);
VkResult (*p_vkGetPipelineExecutablePropertiesKHR)(VkDevice, const VkPipelineInfoKHR_host *, uint32_t *, VkPipelineExecutablePropertiesKHR *);
VkResult (*p_vkGetPipelineExecutableStatisticsKHR)(VkDevice, const VkPipelineExecutableInfoKHR_host *, uint32_t *, VkPipelineExecutableStatisticKHR *);
VkResult (*p_vkGetPipelinePropertiesEXT)(VkDevice, const VkPipelineInfoEXT_host *, VkBaseOutStructure *);
void (*p_vkGetPrivateData)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t *);
void (*p_vkGetPrivateDataEXT)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t *);
VkResult (*p_vkGetQueryPoolResults)(VkDevice, VkQueryPool, uint32_t, uint32_t, size_t, void *, VkDeviceSize, VkQueryResultFlags);
......@@ -2434,6 +2448,7 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkCmdSetViewportWithCount) \
USE_VK_FUNC(vkCmdSetViewportWithCountEXT) \
USE_VK_FUNC(vkCmdSubpassShadingHUAWEI) \
USE_VK_FUNC(vkCmdTraceRaysIndirect2KHR) \
USE_VK_FUNC(vkCmdTraceRaysIndirectKHR) \
USE_VK_FUNC(vkCmdTraceRaysKHR) \
USE_VK_FUNC(vkCmdTraceRaysNV) \
......@@ -2587,6 +2602,7 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkGetPipelineExecutableInternalRepresentationsKHR) \
USE_VK_FUNC(vkGetPipelineExecutablePropertiesKHR) \
USE_VK_FUNC(vkGetPipelineExecutableStatisticsKHR) \
USE_VK_FUNC(vkGetPipelinePropertiesEXT) \
USE_VK_FUNC(vkGetPrivateData) \
USE_VK_FUNC(vkGetPrivateDataEXT) \
USE_VK_FUNC(vkGetQueryPoolResults) \
......
......@@ -2,6 +2,6 @@
"file_format_version": "1.0.0",
"ICD": {
"library_path": ".\\winevulkan.dll",
"api_version": "1.3.211"
"api_version": "1.3.213"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment