[PATCH 1/9] vulkan: Add initial Wine vulkan header.

Sebastian Lackner sebastian at fds-team.de
Mon Nov 6 11:00:06 CST 2017


On 06.11.2017 17:56, Roderick Colenbrander wrote:
> On Nov 6, 2017 8:22 AM, "Sebastian Lackner" <sebastian at fds-team.de> wrote:
> 
> On 06.11.2017 09:08, Roderick Colenbrander wrote:
>> This file is directly generated from Vulkan's vk.xml. For now it contains
> Core
>> Vulkan types and functions. Will be extended with extensions when we
> support them.
>> Note there are 4 lines of C++ style comments, but these directly come
> from the spec
>> and appear in the regular headers as well.
>>
>> Signed-off-by: Roderick Colenbrander <thunderbird2k at gmail.com>
>> ---
>>  include/wine/vulkan.h | 2367 ++++++++++++++++++++++++++++++
> +++++++++++++++++++
>>  1 file changed, 2367 insertions(+)
>>  create mode 100644 include/wine/vulkan.h
> 
> I'm not sure if you are already aware that the struct sizes/alignments do
> not match between Linux and Windows.
> There are many structs which have to be defined twice and converted
> on-the-fly to be compatible with 32-bit.
> 
> 
> Great I hadn't noticed that. I knew there was conversion especially for
> function pointers in structs, but hadn't seen this yet. Likely have been
> lucky enough, because I rarely have to look inside.
> 
> Do you have examples?
> 

The main difference is the alignment of uint64_t. This is part of many
structs (either directly or indirectly, by including another struct with
different alignment). Not sure if I missed anything, but this is the list
from Staging:

struct VkCommandBufferAllocateInfo_host
struct VkDescriptorSetAllocateInfo_host
struct VkMemoryAllocateInfo_host
struct VkAllocationCallbacks_host
struct VkCommandBufferInheritanceInfo_host
struct VkCommandBufferBeginInfo_host
struct VkRenderPassBeginInfo_host
struct VkBufferCopy_host
struct VkBufferImageCopy_host
struct VkBufferMemoryBarrier_host
struct VkImageMemoryBarrier_host
struct VkBufferCreateInfo_host
struct VkBufferViewCreateInfo_host
struct VkPipelineShaderStageCreateInfo_host
struct VkComputePipelineCreateInfo_host
struct VkDebugReportCallbackCreateInfoEXT_host
struct VkDisplaySurfaceCreateInfoKHR_host
struct VkFramebufferCreateInfo_host
struct VkGraphicsPipelineCreateInfo_host
struct VkImageViewCreateInfo_host
struct VkSwapchainCreateInfoKHR_host
struct VkXcbSurfaceCreateInfoKHR_host
struct VkXlibSurfaceCreateInfoKHR_host
struct VkMappedMemoryRange_host
struct VkMemoryRequirements_host
struct VkDisplayModePropertiesKHR_host
struct VkSparseImageMemoryRequirements_host
struct VkSubresourceLayout_host
struct VkDisplayPlanePropertiesKHR_host
struct VkDisplayPropertiesKHR_host
struct VkImageFormatProperties_host
struct VkMemoryHeap_host
struct VkPhysicalDeviceMemoryProperties_host
struct VkPhysicalDeviceLimits_host
struct VkPhysicalDeviceProperties_host
struct VkSparseMemoryBind_host
struct VkSparseBufferMemoryBindInfo_host
struct VkSparseImageOpaqueMemoryBindInfo_host
struct VkSparseImageMemoryBind_host
struct VkSparseImageMemoryBindInfo_host
struct VkBindSparseInfo_host
struct VkDescriptorImageInfo_host
struct VkDescriptorBufferInfo_host
struct VkWriteDescriptorSet_host
struct VkCopyDescriptorSet_host



More information about the wine-devel mailing list