mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-21 22:54:16 +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:
parent
ca634ec484
commit
32dff89b2d
@ -428,7 +428,7 @@ namespace dxvk {
|
|||||||
m_cmd->updateDescriptorSets(1, &descriptorWrite);
|
m_cmd->updateDescriptorSets(1, &descriptorWrite);
|
||||||
|
|
||||||
// Prepare shader arguments
|
// Prepare shader arguments
|
||||||
DxvkMetaClearArgs pushArgs;
|
DxvkMetaClearArgs pushArgs = { };
|
||||||
pushArgs.clearValue = value;
|
pushArgs.clearValue = value;
|
||||||
pushArgs.offset = VkOffset3D { int32_t(offset), 0, 0 };
|
pushArgs.offset = VkOffset3D { int32_t(offset), 0, 0 };
|
||||||
pushArgs.extent = VkExtent3D { uint32_t(length), 1, 1 };
|
pushArgs.extent = VkExtent3D { uint32_t(length), 1, 1 };
|
||||||
@ -2571,7 +2571,7 @@ namespace dxvk {
|
|||||||
m_cmd->updateDescriptorSets(1, &descriptorWrite);
|
m_cmd->updateDescriptorSets(1, &descriptorWrite);
|
||||||
|
|
||||||
// Prepare shader arguments
|
// Prepare shader arguments
|
||||||
DxvkMetaClearArgs pushArgs;
|
DxvkMetaClearArgs pushArgs = { };
|
||||||
pushArgs.clearValue = value.color;
|
pushArgs.clearValue = value.color;
|
||||||
pushArgs.offset = offset;
|
pushArgs.offset = offset;
|
||||||
pushArgs.extent = extent;
|
pushArgs.extent = extent;
|
||||||
|
@ -17,9 +17,8 @@ namespace dxvk {
|
|||||||
*/
|
*/
|
||||||
struct DxvkMetaClearArgs {
|
struct DxvkMetaClearArgs {
|
||||||
VkClearColorValue clearValue;
|
VkClearColorValue clearValue;
|
||||||
|
VkOffset3D offset; uint32_t pad1;
|
||||||
alignas(16) VkOffset3D offset;
|
VkExtent3D extent; uint32_t pad2;
|
||||||
alignas(16) VkExtent3D extent;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user