vkd3d/libs/vkd3d
David Gow 13ca6322c7 vkd3d: Handle D3D12_APPEND_ALIGNED_ELEMENT for <4 byte wide elements.
In d3d12, input element alignment needs to be the _minimum_ of 4 and the size of
the type. See the D3D11 spec, section 4.4.6, which behaves similarly:
https://microsoft.github.io/DirectX-Specs/d3d/archive/D3D11_3_FunctionalSpec.htm#4.4.6%20Element%20Alignment

This is correctly taken into account when generating, e.g., the
vertex_buffer_stride_align_mask used for validation, but is not taken
into account when D3D12_APPEND_ALIGNED_ELEMENT is used to automatically
place input elements. Currently, vkd3d always assumes the alignment is
4.

This means that, for example, bytes or shorts should be packed tightly
together when D3D12_APPEND_ALIGNED_ELEMENT is used, but are instead
padded to 4 bytes.

Fixing this makes units appear in Age of Empires IV.

Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:53:15 +01:00
..
command.c vkd3d: Fix the spelling of a couple of trace message. 2022-03-07 16:31:28 +01:00
device.c vkd3d: Fix the spelling of a couple of trace message. 2022-03-07 16:31:28 +01:00
libvkd3d.pc.in build: Add some standard files. 2016-10-28 12:34:12 +02:00
resource.c vkd3d: Lock the heap mutex while binding heap memory. 2022-02-14 21:01:06 +01:00
state.c vkd3d: Handle D3D12_APPEND_ALIGNED_ELEMENT for <4 byte wide elements. 2022-03-09 20:53:15 +01:00
utils.c vkd3d: Recognise newer memory properties in debug_vk_memory_property_flags(). 2022-03-01 22:31:33 +01:00
vkd3d_main.c vkd3d: Move the ID3DBlob implementation to vkd3d-common. 2020-09-24 19:11:39 +02:00
vkd3d_private.h include: Introduce a common macro for defining tags. 2022-03-01 22:31:33 +01:00
vkd3d_shaders.h vkd3d: Implement d3d12_command_list_ClearUnorderedAccessViewFloat(). 2019-11-25 16:06:59 +01:00
vkd3d.map vkd3d: Add stubs for versioned root signatures. 2019-04-10 18:56:55 +02:00
vulkan_procs.h vkd3d: Implement ID3D12CommandQueue_GetClockCalibration(). 2022-01-18 09:22:56 +01:00