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

Roderick Colenbrander thunderbird2k at gmail.com
Tue Nov 7 00:40:51 CST 2017


Thanks, I see the behaviour now. Mostly 64-bit software and games so
far, which are fine. Will test some 32-bit stuff now too, but fedora
<27 for some reason (I guess build challenges) didn't ship 32-bit
mesa-vulkan-drivers yet.

Need to do something similar in my thunks as well. Should be easy to
do, but not pretty.

On Mon, Nov 6, 2017 at 9:00 AM, Sebastian Lackner <sebastian at fds-team.de> wrote:
> 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