1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-20 19:54:19 +01:00

[dxvk] Don't use alignas(16) for DxvkMetaClearArgs members

Instead, pad members explicitly. This is necessary because GCC
makes incorrect assumptions about stack alignment on 32-bit.
This commit is contained in:
Philip Rebohle 2019-10-07 21:58:34 +02:00
parent ca634ec484
commit 32dff89b2d
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 4 additions and 5 deletions

View File

@ -428,7 +428,7 @@ namespace dxvk {
m_cmd->updateDescriptorSets(1, &descriptorWrite);
// Prepare shader arguments
DxvkMetaClearArgs pushArgs;
DxvkMetaClearArgs pushArgs = { };
pushArgs.clearValue = value;
pushArgs.offset = VkOffset3D { int32_t(offset), 0, 0 };
pushArgs.extent = VkExtent3D { uint32_t(length), 1, 1 };
@ -2571,7 +2571,7 @@ namespace dxvk {
m_cmd->updateDescriptorSets(1, &descriptorWrite);
// Prepare shader arguments
DxvkMetaClearArgs pushArgs;
DxvkMetaClearArgs pushArgs = { };
pushArgs.clearValue = value.color;
pushArgs.offset = offset;
pushArgs.extent = extent;

View File

@ -17,9 +17,8 @@ namespace dxvk {
*/
struct DxvkMetaClearArgs {
VkClearColorValue clearValue;
alignas(16) VkOffset3D offset;
alignas(16) VkExtent3D extent;
VkOffset3D offset; uint32_t pad1;
VkExtent3D extent; uint32_t pad2;
};