Giovanni Mascellani
0b8a53d75d
vkd3d: Create Vulkan bindings in d3d12_root_signature_append_vk_binding().
2024-10-17 17:23:04 +02:00
Conor McCarthy
74da9ed6fe
vkd3d: Create a separate Vulkan descriptor binding array for each descriptor set.
...
Allows descriptor set layouts to be created after all bindings are
mapped. This is less complex and fragile than the current scheme, and in
a future patch it will support separating descriptor types into different
sets. Descriptors on virtual heaps are currently allocated from pools
which contain an equal number of each descriptor type used by vkd3d, and
this can waste a significant amount of device memory.
2024-10-17 17:23:04 +02:00
Giovanni Mascellani
b5c56a50b5
vkd3d: Use vk_binding_array_add_binding() in d3d12_root_signature_init_root_descriptors().
2024-10-17 17:23:04 +02:00
Giovanni Mascellani
3aec841a9f
vkd3d: Use vk_binding_array_add_binding() in d3d12_root_signature_init_static_samplers().
2024-10-17 17:23:04 +02:00
Giovanni Mascellani
416ce575f6
vkd3d: Introduce a helper function to add bindings to struct vk_binding_array.
2024-10-17 17:23:04 +02:00
Conor McCarthy
eca344ff56
vkd3d: Introduce a separate structure for storing Vulkan descriptor binding arrays.
2024-10-17 17:23:04 +02:00
Conor McCarthy
3f98ca53ca
vkd3d: Access the current range via the declared pointer in d3d12_root_signature_init_root_descriptor_tables().
2024-10-17 17:23:04 +02:00
Conor McCarthy
b092fcfc46
tests/d3d12: Test buffer and texture SRVs in test_unbounded_resource_arrays().
...
On virtual heaps, SRV/UAV unbounded ranges are implemented using two
descriptor sets, one for buffers and another for textures, and this case
should be tested.
2024-10-17 17:23:04 +02:00
Giovanni Mascellani
c89e547e3e
ci: Use the macOS image from the master vkd3d repository.
...
The current URL is from my own testing repository and it's not
meant for general use.
2024-10-16 21:40:58 +02:00
Giovanni Mascellani
2b45878ff8
vkd3d-shader/ir: Validate the line density SV_TessFactor signature element for isolines domains.
2024-10-16 21:40:58 +02:00
Giovanni Mascellani
f470eb2a1a
vkd3d-shader/ir: Validate the line detail SV_TessFactor signature element for isolines domains.
2024-10-16 21:40:58 +02:00
Giovanni Mascellani
c5c3151414
vkd3d-shader/ir: Validate SV_InsideTessFactor signature elements for tri domains.
2024-10-16 21:40:58 +02:00
Giovanni Mascellani
4e8b34c075
vkd3d-shader/ir: Validate SV_TessFactor signature elements for tri domains.
2024-10-16 21:40:58 +02:00
Giovanni Mascellani
b2460a6794
vkd3d-shader/ir: Validate SV_InsideTessFactor signature elements for quad domains.
2024-10-16 21:40:58 +02:00
Giovanni Mascellani
a8b9a92c10
vkd3d-shader/ir: Validate SV_TessFactor signature elements for quad domains.
2024-10-16 21:40:58 +02:00
Shaun Ren
1ed5f1a4d0
vkd3d-shader/tpf: Write the patch constant function in hull shaders.
...
We use a single hs_fork_phase here for the patch constant function.
2024-10-16 21:40:40 +02:00
Shaun Ren
f771f081d9
tests: Test signature reflection for hull shaders.
2024-10-16 21:22:02 +02:00
Shaun Ren
ae2d86b99c
vkd3d-shader/tpf: Determine SIV from SV and index in write_sm4_dcl_semantic().
2024-10-16 21:12:29 +02:00
Shaun Ren
df3aaac7cf
vkd3d-shader/tpf: Introduce tpf_write_shader_function().
2024-10-16 21:12:13 +02:00
Shaun Ren
147f8898ca
vkd3d-shader/hlsl: Process the patch constant function in hlsl_emit_bytecode().
...
Also, support patch constant function semantics in sm4_sysval_semantic_from_semantic_name().
2024-10-16 21:10:24 +02:00
Shaun Ren
aee00ea55a
tests: Test hull shader uniform input parameters.
2024-10-16 21:07:53 +02:00
Shaun Ren
cbed70c60f
vkd3d-shader/tpf: Implement semantics for hull shaders.
2024-10-16 21:07:53 +02:00
Shaun Ren
beb342ed5f
vkd3d-shader/tpf: Write hull shader declarations.
2024-10-16 21:07:53 +02:00
Henri Verbeet
47fcbc335b
vkd3d-shader/d3dbc: Avoid D3DXSHADER_CONSTANTTABLE.
2024-10-16 21:07:53 +02:00
Shaun Ren
069b8aac64
vkd3d-shader/hlsl: Implement struct single inheritance.
...
Here, we implement single inheritance by inserting a field at the
beginning of the derived struct with name "$super".
For the following struct declarations
struct a
{
float4 aa;
float4 bb;
};
struct b : a
{
float4 cc;
};
struct c : b
{
float4 bb;
};
this commit generates the following:
struct a
{
float4 aa;
float4 bb;
};
struct b
{
struct a $super;
float4 cc;
};
struct c
{
struct b $super;
float4 bb;
};
2024-10-16 21:07:53 +02:00