vkd3d-proton/libs
David Gow 2a8b5471ca 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 (see vkd3d-proton
issue #880 for examples.)

Signed-off-by: David Gow <david@ingeniumdigital.com>
2021-11-01 13:30:04 +01:00
..
d3d12 d3d12: Do not export ordinals for most symbols. 2021-10-12 11:09:16 +01:00
vkd3d vkd3d: Handle D3D12_APPEND_ALIGNED_ELEMENT for <4 byte wide elements 2021-11-01 13:30:04 +01:00
vkd3d-common vkd3d: Fix demangling of RT entry points. 2021-10-08 11:51:47 +02:00
vkd3d-shader vkd3d-shader: Hook up global descriptor heap for DXIL. 2021-10-26 15:32:36 +02:00
vkd3d-utils d3d12: Do not export ordinals for most symbols. 2021-10-12 11:09:16 +01:00
.gitignore libs/vkd3d: Trace build version. 2018-06-27 22:43:49 +02:00
meson.build meta: Add missing newlines to end of files 2020-11-05 17:16:57 +01:00