From d89fc84fcff502732a87e223a116aabf3b5a9986 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Thu, 5 Sep 2024 17:05:10 +0200 Subject: [PATCH] LibraryForwarding/vulkan: Minor cleanups --- ThunkLibs/libvulkan/Host.cpp | 2 +- ThunkLibs/libvulkan/libvulkan_interface.cpp | 90 ++++++++++----------- 2 files changed, 44 insertions(+), 48 deletions(-) diff --git a/ThunkLibs/libvulkan/Host.cpp b/ThunkLibs/libvulkan/Host.cpp index f1d38d0ce..6ce0b2759 100644 --- a/ThunkLibs/libvulkan/Host.cpp +++ b/ThunkLibs/libvulkan/Host.cpp @@ -1606,7 +1606,7 @@ VULKAN_DEFAULT_CUSTOM_REPACK(VkVideoSessionMemoryRequirementsKHR) VULKAN_DEFAULT_CUSTOM_REPACK(VkVideoSessionParametersCreateInfoKHR) VULKAN_DEFAULT_CUSTOM_REPACK(VkVideoSessionParametersUpdateInfoKHR) VULKAN_DEFAULT_CUSTOM_REPACK(VkWaylandSurfaceCreateInfoKHR) -VULKAN_DEFAULT_CUSTOM_REPACK(VkWriteDescriptorSet) +VULKAN_DEFAULT_CUSTOM_REPACK(VkWriteDescriptorSet) // TODO: This should be non-default instead VULKAN_DEFAULT_CUSTOM_REPACK(VkWriteDescriptorSetAccelerationStructureKHR) VULKAN_DEFAULT_CUSTOM_REPACK(VkWriteDescriptorSetAccelerationStructureNV) // VULKAN_DEFAULT_CUSTOM_REPACK(VkWriteDescriptorSetInlineUniformBlock) diff --git a/ThunkLibs/libvulkan/libvulkan_interface.cpp b/ThunkLibs/libvulkan/libvulkan_interface.cpp index 635204107..7b6d05b43 100644 --- a/ThunkLibs/libvulkan/libvulkan_interface.cpp +++ b/ThunkLibs/libvulkan/libvulkan_interface.cpp @@ -1426,6 +1426,9 @@ template<> struct fex_gen_config<&VkXlibSurfaceCreateInfoKHR::pNext> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkCommandBufferBeginInfo::pInheritanceInfo> : fexgen::custom_repack {}; + template<> struct fex_gen_config<&VkDeviceCreateInfo::pQueueCreateInfos> : fexgen::custom_repack {}; template<> @@ -1433,9 +1436,43 @@ struct fex_gen_config<&VkDeviceCreateInfo::ppEnabledLayerNames> : fexgen::custom template<> struct fex_gen_config<&VkDeviceCreateInfo::ppEnabledExtensionNames> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkDependencyInfo::pMemoryBarriers> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkDependencyInfo::pBufferMemoryBarriers> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkDependencyInfo::pImageMemoryBarriers> : fexgen::custom_repack {}; + +template<> +struct fex_gen_config<&VkDescriptorGetInfoEXT::data> : fexgen::custom_repack {}; + template<> struct fex_gen_config<&VkDescriptorSetLayoutCreateInfo::pBindings> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkDescriptorUpdateTemplateCreateInfo::pDescriptorUpdateEntries> : fexgen::custom_repack {}; + +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pStages> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pVertexInputState> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pInputAssemblyState> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pTessellationState> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pViewportState> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pRasterizationState> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pMultisampleState> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pDepthStencilState> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pColorBlendState> : fexgen::custom_repack {}; +template<> +struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pDynamicState> : fexgen::custom_repack {}; + template<> struct fex_gen_config<&VkInstanceCreateInfo::pApplicationInfo> : fexgen::custom_repack {}; template<> @@ -1458,27 +1495,9 @@ template<> struct fex_gen_config<&VkPipelineShaderStageCreateInfo::pSpecializationInfo> : fexgen::custom_repack {}; // template<> struct fex_gen_config<&VkSpecializationInfo::pMapEntries> : fexgen::custom_repack {}; - +// TODO: Support annotating as assume_compatible_data_layout instead template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pStages> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pVertexInputState> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pInputAssemblyState> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pTessellationState> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pViewportState> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pRasterizationState> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pMultisampleState> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pDepthStencilState> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pColorBlendState> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkGraphicsPipelineCreateInfo::pDynamicState> : fexgen::custom_repack {}; +struct fex_gen_config<&VkPipelineCacheCreateInfo::pInitialData> : fexgen::custom_repack {}; // Command buffers are dispatchable handles, so on 32-bit they need to be repacked template<> @@ -1491,6 +1510,10 @@ struct fex_gen_config<&VkRenderingInfo::pDepthAttachment> : fexgen::custom_repac template<> struct fex_gen_config<&VkRenderingInfo::pStencilAttachment> : fexgen::custom_repack {}; +// TODO: Support annotating as assume_compatible_data_layout instead +template<> +struct fex_gen_config<&VkRenderPassBeginInfo::pClearValues> : fexgen::custom_repack {}; + template<> struct fex_gen_config<&VkSubpassDescription2::pInputAttachments> : fexgen::custom_repack {}; template<> @@ -1500,20 +1523,6 @@ struct fex_gen_config<&VkSubpassDescription2::pResolveAttachments> : fexgen::cus template<> struct fex_gen_config<&VkSubpassDescription2::pDepthStencilAttachment> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkDependencyInfo::pMemoryBarriers> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkDependencyInfo::pBufferMemoryBarriers> : fexgen::custom_repack {}; -template<> -struct fex_gen_config<&VkDependencyInfo::pImageMemoryBarriers> : fexgen::custom_repack {}; - -template<> -struct fex_gen_config<&VkDescriptorUpdateTemplateCreateInfo::pDescriptorUpdateEntries> : fexgen::custom_repack {}; - -// Union type -template<> -struct fex_gen_config<&VkDescriptorGetInfoEXT::data> : fexgen::custom_repack {}; - // These types have incompatible data layout but we use their layout wrappers elsewhere template<> struct fex_gen_type : fexgen::emit_layout_wrappers {}; @@ -1549,19 +1558,6 @@ struct fex_gen_param {}; template struct fex_gen_config : fexgen::generate_guest_symtable, fexgen::indirect_guest_calls {}; -#ifdef IS_32BIT_THUNK -template<> -struct fex_gen_config<&VkCommandBufferBeginInfo::pInheritanceInfo> : fexgen::custom_repack {}; - -// TODO: Should have per-member compatibility annotation -template<> -struct fex_gen_config<&VkPipelineCacheCreateInfo::pInitialData> : fexgen::custom_repack {}; - -// TODO: Should have per-member compatibility annotation -template<> -struct fex_gen_config<&VkRenderPassBeginInfo::pClearValues> : fexgen::custom_repack {}; -#endif - template<> struct fex_gen_config : fexgen::custom_host_impl {}; template<>