Giovanni Mascellani
19aef21369
vkd3d-shader/ir: Handle PHI nodes when materializing SSA registers.
...
PHI nodes cannot be used with TEMP registers, so they have to be
converted to MOV/MOVC nodes and moved before the BRANCH node.
2024-02-06 23:07:03 +01:00
Giovanni Mascellani
e0d3e9c376
vkd3d-shader/ir: Materialize SSA registers to temporaries.
...
For simplicity PHI nodes are not currently handled.
The goal for this pass is to make the CFG structurizer simpler, because
it doesn't have to care about the more rigid rules SSA registers have
to satisfy than TEMP registers.
It is likely that the generated code will be harder for downstream
compilers to optimize and execute efficiently, so once a complete
structurizer is in place this pass should be removed, or at least
greatly reduced in scope.
2024-02-06 23:07:00 +01:00
Giovanni Mascellani
eb723a8d2b
vkd3d-shader/spirv: Support bool TEMP registers.
2024-02-06 23:06:58 +01:00
Giovanni Mascellani
49f0fd42b8
vkd3d-shader/spirv: Move bool casting helpers above register loading helpers.
2024-02-06 23:06:55 +01:00
Giovanni Mascellani
ee994e95dd
vkd3d-shader/spirv: Convert the swizzle according to the source bit width.
...
Fixes: 1f536238a89dc6bccb411c2db32d7b2010cc8fd7
2024-02-06 23:06:53 +01:00
Giovanni Mascellani
674f86042d
vkd3d-shader/dxil: Set the register before calling src_param_init_scalar().
...
Which uses the register to compute the appropriate swizzle.
Fixes: 1f536238a89dc6bccb411c2db32d7b2010cc8fd7
2024-02-06 23:06:49 +01:00
Henri Verbeet
06ddb10c40
vkd3d: Introduce a debug helper for CPU descriptor handles.
2024-02-01 22:25:36 +01:00
Henri Verbeet
feca006d6a
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_versioned_root_signature_deserializer_Release().
2024-02-01 22:25:27 +01:00
Henri Verbeet
f42411fe4a
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_versioned_root_signature_deserializer_AddRef().
2024-02-01 22:25:27 +01:00
Henri Verbeet
afd0e45cd6
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_root_signature_deserializer_Release().
2024-02-01 22:25:27 +01:00
Henri Verbeet
c2e82cf06a
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_root_signature_deserializer_AddRef().
2024-02-01 22:25:27 +01:00
Henri Verbeet
9434687c5b
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_pipeline_state_Release().
2024-02-01 22:25:27 +01:00
Henri Verbeet
c71fa87522
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_pipeline_state_AddRef().
2024-02-01 22:25:27 +01:00
Henri Verbeet
9e135f6143
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_root_signature_Release().
2024-02-01 22:25:27 +01:00
Henri Verbeet
37e8826301
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_root_signature_AddRef().
2024-02-01 22:25:27 +01:00
Jacek Caban
2ae9f18a3a
vkd3d: Use uint64_t for the size in vkd3d_gpu_va_allocator_allocate.
...
Avoids value truncation in 32-bit builds.
2024-02-01 22:25:20 +01:00
Conor McCarthy
eae4b7b4a2
vkd3d: Implement GetResourceAllocationInfo1().
2024-02-01 22:25:13 +01:00
Conor McCarthy
67b4ae658a
tests/d3d12: Add tests for GetResourceAllocationInfo1().
2024-02-01 22:25:12 +01:00
Conor McCarthy
7e84421b9c
vkd3d: Support multiple descriptions in GetResourceAllocationInfo().
2024-02-01 22:25:11 +01:00
Conor McCarthy
8d0331df6c
tests/d3d12: Test multiple descriptions in test_resource_allocation_info().
2024-02-01 22:25:10 +01:00
Conor McCarthy
92e19a7da3
vkd3d: Add ID3D12Device7 interface stubs.
2024-02-01 22:25:10 +01:00
Conor McCarthy
76fbbe980a
vkd3d: Add ID3D12Device6 interface stub.
2024-02-01 22:25:10 +01:00
Conor McCarthy
95e4222cc6
vkd3d-shader/spirv: Emit a vector bitcast if necessary in spirv_compiler_emit_load_ssa_reg().
2024-02-01 22:25:04 +01:00
Conor McCarthy
ebec0aa434
vkd3d-shader/dxil: Implement DX intrinsic TextureLoad.
2024-02-01 22:25:02 +01:00
Conor McCarthy
e6d52861e9
vkd3d-shader/dxil: Implement DX intrinsic SplitDouble.
2024-02-01 22:24:58 +01:00