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@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.
On Nov 6, 2017 8:22 AM, "Sebastian Lackner" sebastian@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@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?
On 06.11.2017 17:56, Roderick Colenbrander wrote:
On Nov 6, 2017 8:22 AM, "Sebastian Lackner" sebastian@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@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
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@fds-team.de wrote:
On 06.11.2017 17:56, Roderick Colenbrander wrote:
On Nov 6, 2017 8:22 AM, "Sebastian Lackner" sebastian@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@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