Module: wine Branch: master Commit: c3769732f86652dc688737418fb028b96eff08cd URL: https://gitlab.winehq.org/wine/wine/-/commit/c3769732f86652dc688737418fb028b...
Author: Georg Lehmann dadschoorse@gmail.com Date: Thu Nov 3 10:52:30 2022 +0100
winevulkan: VkDeviceAddress needs alignment.
---
dlls/winevulkan/loader_thunks.h | 12 ++++++------ dlls/winevulkan/make_vulkan | 2 +- include/wine/vulkan.h | 40 ++++++++++++++++++++-------------------- 3 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/dlls/winevulkan/loader_thunks.h b/dlls/winevulkan/loader_thunks.h index b29fb18cf08..e79209cfb97 100644 --- a/dlls/winevulkan/loader_thunks.h +++ b/dlls/winevulkan/loader_thunks.h @@ -1051,7 +1051,7 @@ struct vkCmdCopyImageToBuffer2KHR_params struct vkCmdCopyMemoryIndirectNV_params { VkCommandBuffer commandBuffer; - VkDeviceAddress copyBufferAddress; + VkDeviceAddress DECLSPEC_ALIGN(8) copyBufferAddress; uint32_t copyCount; uint32_t stride; }; @@ -1065,7 +1065,7 @@ struct vkCmdCopyMemoryToAccelerationStructureKHR_params struct vkCmdCopyMemoryToImageIndirectNV_params { VkCommandBuffer commandBuffer; - VkDeviceAddress copyBufferAddress; + VkDeviceAddress DECLSPEC_ALIGN(8) copyBufferAddress; uint32_t copyCount; uint32_t stride; VkImage DECLSPEC_ALIGN(8) dstImage; @@ -1129,8 +1129,8 @@ struct vkCmdDebugMarkerInsertEXT_params struct vkCmdDecompressMemoryIndirectCountNV_params { VkCommandBuffer commandBuffer; - VkDeviceAddress indirectCommandsAddress; - VkDeviceAddress indirectCommandsCountAddress; + VkDeviceAddress DECLSPEC_ALIGN(8) indirectCommandsAddress; + VkDeviceAddress DECLSPEC_ALIGN(8) indirectCommandsCountAddress; uint32_t stride; };
@@ -2209,7 +2209,7 @@ struct vkCmdSubpassShadingHUAWEI_params struct vkCmdTraceRaysIndirect2KHR_params { VkCommandBuffer commandBuffer; - VkDeviceAddress indirectDeviceAddress; + VkDeviceAddress DECLSPEC_ALIGN(8) indirectDeviceAddress; };
struct vkCmdTraceRaysIndirectKHR_params @@ -2219,7 +2219,7 @@ struct vkCmdTraceRaysIndirectKHR_params const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable; const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable; const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable; - VkDeviceAddress indirectDeviceAddress; + VkDeviceAddress DECLSPEC_ALIGN(8) indirectDeviceAddress; };
struct vkCmdTraceRaysKHR_params diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index d3a0b8fac62..6d5ead98833 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -1176,7 +1176,7 @@ class VkVariable(object): return False elif self.type == "size_t": return False - elif self.type in ["uint64_t", "VkDeviceSize"]: + elif self.type in ["uint64_t", "VkDeviceAddress", "VkDeviceSize"]: return True elif self.is_struct(): return self.struct.needs_alignment() diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index 4e1ef24442c..fc42e784e6a 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -4695,7 +4695,7 @@ typedef struct VkAccelerationStructureCreateInfoKHR VkDeviceSize WINE_VK_ALIGN(8) offset; VkDeviceSize WINE_VK_ALIGN(8) size; VkAccelerationStructureTypeKHR type; - VkDeviceAddress deviceAddress; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; } VkAccelerationStructureCreateInfoKHR;
typedef struct VkAccelerationStructureDeviceAddressInfoKHR @@ -4910,7 +4910,7 @@ typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
typedef struct VkBindIndexBufferIndirectCommandNV { - VkDeviceAddress bufferAddress; + VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; uint32_t size; VkIndexType indexType; } VkBindIndexBufferIndirectCommandNV; @@ -4922,7 +4922,7 @@ typedef struct VkBindShaderGroupIndirectCommandNV
typedef struct VkBindVertexBufferIndirectCommandNV { - VkDeviceAddress bufferAddress; + VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; uint32_t size; uint32_t stride; } VkBindVertexBufferIndirectCommandNV; @@ -4960,7 +4960,7 @@ typedef struct VkBufferDeviceAddressCreateInfoEXT { VkStructureType sType; const void *pNext; - VkDeviceAddress deviceAddress; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; } VkBufferDeviceAddressCreateInfoEXT;
typedef struct VkBufferDeviceAddressInfo @@ -5245,8 +5245,8 @@ typedef struct VkCopyDescriptorSet
typedef struct VkCopyMemoryIndirectCommandNV { - VkDeviceAddress srcAddress; - VkDeviceAddress dstAddress; + VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; + VkDeviceAddress WINE_VK_ALIGN(8) dstAddress; VkDeviceSize WINE_VK_ALIGN(8) size; } VkCopyMemoryIndirectCommandNV;
@@ -5371,8 +5371,8 @@ typedef struct VkDebugUtilsObjectTagInfoEXT
typedef struct VkDecompressMemoryRegionNV { - VkDeviceAddress srcAddress; - VkDeviceAddress dstAddress; + VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; + VkDeviceAddress WINE_VK_ALIGN(8) dstAddress; VkDeviceSize WINE_VK_ALIGN(8) compressedSize; VkDeviceSize WINE_VK_ALIGN(8) decompressedSize; VkMemoryDecompressionMethodFlagsNV decompressionMethod; @@ -5521,7 +5521,7 @@ typedef struct VkDeviceAddressBindingCallbackDataEXT VkStructureType sType; void *pNext; VkDeviceAddressBindingFlagsEXT flags; - VkDeviceAddress baseAddress; + VkDeviceAddress WINE_VK_ALIGN(8) baseAddress; VkDeviceSize WINE_VK_ALIGN(8) size; VkDeviceAddressBindingTypeEXT bindingType; } VkDeviceAddressBindingCallbackDataEXT; @@ -5544,7 +5544,7 @@ typedef struct VkDeviceDiagnosticsConfigCreateInfoNV typedef struct VkDeviceFaultAddressInfoEXT { VkDeviceFaultAddressTypeEXT addressType; - VkDeviceAddress reportedAddress; + VkDeviceAddress WINE_VK_ALIGN(8) reportedAddress; VkDeviceSize WINE_VK_ALIGN(8) addressPrecision; } VkDeviceFaultAddressInfoEXT;
@@ -5657,13 +5657,13 @@ typedef struct VkDeviceMemoryOverallocationCreateInfoAMD
typedef union VkDeviceOrHostAddressConstKHR { - VkDeviceAddress deviceAddress; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; const void *hostAddress; } VkDeviceOrHostAddressConstKHR;
typedef union VkDeviceOrHostAddressKHR { - VkDeviceAddress deviceAddress; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; void *hostAddress; } VkDeviceOrHostAddressKHR;
@@ -6123,7 +6123,7 @@ typedef struct VkImageViewAddressPropertiesNVX { VkStructureType sType; void *pNext; - VkDeviceAddress deviceAddress; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; VkDeviceSize WINE_VK_ALIGN(8) size; } VkImageViewAddressPropertiesNVX;
@@ -6386,7 +6386,7 @@ typedef struct VkMicromapCreateInfoEXT VkDeviceSize WINE_VK_ALIGN(8) offset; VkDeviceSize WINE_VK_ALIGN(8) size; VkMicromapTypeEXT type; - VkDeviceAddress deviceAddress; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; } VkMicromapCreateInfoEXT;
typedef struct VkMicromapTriangleEXT @@ -9870,7 +9870,7 @@ typedef struct VkStencilOpState
typedef struct VkStridedDeviceAddressRegionKHR { - VkDeviceAddress deviceAddress; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; VkDeviceSize WINE_VK_ALIGN(8) stride; VkDeviceSize WINE_VK_ALIGN(8) size; } VkStridedDeviceAddressRegionKHR; @@ -10115,15 +10115,15 @@ typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
typedef struct VkTraceRaysIndirectCommand2KHR { - VkDeviceAddress raygenShaderRecordAddress; + VkDeviceAddress WINE_VK_ALIGN(8) raygenShaderRecordAddress; VkDeviceSize WINE_VK_ALIGN(8) raygenShaderRecordSize; - VkDeviceAddress missShaderBindingTableAddress; + VkDeviceAddress WINE_VK_ALIGN(8) missShaderBindingTableAddress; VkDeviceSize WINE_VK_ALIGN(8) missShaderBindingTableSize; VkDeviceSize WINE_VK_ALIGN(8) missShaderBindingTableStride; - VkDeviceAddress hitShaderBindingTableAddress; + VkDeviceAddress WINE_VK_ALIGN(8) hitShaderBindingTableAddress; VkDeviceSize WINE_VK_ALIGN(8) hitShaderBindingTableSize; VkDeviceSize WINE_VK_ALIGN(8) hitShaderBindingTableStride; - VkDeviceAddress callableShaderBindingTableAddress; + VkDeviceAddress WINE_VK_ALIGN(8) callableShaderBindingTableAddress; VkDeviceSize WINE_VK_ALIGN(8) callableShaderBindingTableSize; VkDeviceSize WINE_VK_ALIGN(8) callableShaderBindingTableStride; uint32_t width; @@ -10490,7 +10490,7 @@ typedef struct VkCopyMemoryToAccelerationStructureInfoKHR
typedef struct VkCopyMemoryToImageIndirectCommandNV { - VkDeviceAddress srcAddress; + VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; uint32_t bufferRowLength; uint32_t bufferImageHeight; VkImageSubresourceLayers imageSubresource;