Henri Verbeet
0c05f2409c
vkd3d-shader/sm4: Get rid of shader_sm4_is_end().
2023-04-12 21:54:57 +02:00
Henri Verbeet
1e448b0b71
vkd3d-shader/sm4: Pass a vkd3d_shader_sm4_parser structure to shader_sm4_read_instruction().
2023-04-12 21:54:56 +02:00
Henri Verbeet
1b7b694190
vkd3d-shader/sm1: Pass a vkd3d_shader_sm1_parser structure to shader_sm1_is_end().
2023-04-12 21:54:55 +02:00
Henri Verbeet
df6a34e1bd
vkd3d-shader/sm1: Pass a vkd3d_shader_sm1_parser structure to shader_sm1_read_instruction().
2023-04-12 21:54:54 +02:00
Henri Verbeet
09566e2c25
vkd3d-shader: Get rid of the "ptr" field from struct vkd3d_shader_parser.
...
This is an implementation detail.
2023-04-12 21:54:53 +02:00
Henri Verbeet
c4d307a08d
vkd3d-shader: Get rid of the "instruction_idx" field from struct vkd3d_shader_parser.
...
This is unused now.
2023-04-12 21:54:51 +02:00
Conor McCarthy
98b5e2c6e0
vkd3d-shader/ir: Insert hull shader control point input declarations if no control point phase is defined.
...
The SPIR-V backend will emit a default control point phase. Inserting
inputs into the IR allows handling of declarations via the usual path
instead of an ad hoc implementation which may not match later changes
to input handling.
2023-04-12 21:54:28 +02:00
Conor McCarthy
14295a224d
vkd3d-shader/ir: Normalise control point phase output registers to include the control point id.
...
In SPIR-V the address must include the invocation id, but in TPF it
is implicit. Move the register index up one slot and insert an
OUTPOINTID relative address.
2023-04-12 21:54:27 +02:00
Zebediah Figura
94ff9ba5e7
tests: Add a test for readback map stability.
...
Resident Evil 2 accesses a resource immediately after unmapping it.
2023-04-10 21:00:26 +02:00
Philip Rebohle
c8a33431e3
vkd3d: Persistently map host-visible heaps on creation.
2023-04-10 21:00:17 +02:00
Zebediah Figura
616c4bf51f
vkd3d-shader/hlsl: Always align section sizes.
...
This fixes disassembly using native D3DDisassemble() of shaders generated with vkd3d-shader.
Fixes: d6d9aab31c
2023-04-06 17:52:16 +02:00
Zebediah Figura
a60c47ff39
vkd3d-shader: Explicitly align the size in bytecode_get_next_offset() and rename it accordingly.
2023-04-06 17:52:16 +02:00
Zebediah Figura
6783524613
vkd3d-common: Make some global string variables const.
2023-04-06 17:52:08 +02:00
Zebediah Figura
1514755043
vkd3d-shader/hlsl: Make a string array const.
2023-04-06 17:52:07 +02:00
Zebediah Figura
09cda98deb
vkd3d-shader: Factor out vkd3d_shader_parser_compile().
2023-04-06 17:52:02 +02:00
Zebediah Figura
507e8644ae
vkd3d-shader: Reuse the existing parser for scanning in compile_dxbc_tpf().
2023-04-06 17:52:02 +02:00
Zebediah Figura
28774b3649
vkd3d-shader/spirv: Move spirv_compiler_destroy() to avoid forward declarations.
2023-04-06 17:52:01 +02:00
Zebediah Figura
70cfd58be6
vkd3d-shader/spirv: Introduce a spirv_compile() helper.
2023-04-06 17:51:59 +02:00
Nikolay Sivov
24c1eb562f
vkd3d-shader/hlsl: Treat half as float for casts.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-04-06 17:51:55 +02:00
Nikolay Sivov
c190c184ce
vkd3d-shader/hlsl: Add support for ternary operator.
2023-04-06 17:51:46 +02:00
Zebediah Figura
725d408974
vkd3d-shader/hlsl: Introduce an hlsl_block_init() helper.
2023-04-06 17:51:40 +02:00
Zebediah Figura
1da5a9a490
vkd3d-shader/hlsl: Introduce an hlsl_block_add_block() helper.
2023-04-06 17:51:38 +02:00
Zebediah Figura
ceac81b816
vkd3d-shader/hlsl: Introduce an hlsl_block_add_instr() helper.
2023-04-06 17:51:36 +02:00
Conor McCarthy
e27ceddfb4
vkd3d: Leave the command queue op mutex locked after a partial flush.
...
All return paths in d3d12_command_queue_flush_ops_locked() must
leave the op mutex locked.
2023-04-05 21:38:39 +02:00
Henri Verbeet
d6d9aab31c
vkd3d-shader: Align the start offset instead of the size in bytecode_put_bytes().
...
The practical effect this has is that we avoid potential trailing padding at
the end of DXBC blobs. Unfortunately this also means we need to be more
careful about using bytecode_get_size() to find the offset where subsequent
data would get written, although in many cases this follows a put_u32() call.
2023-04-04 22:01:36 +02:00
Henri Verbeet
a0a3fb0e5f
tests/shader_runner: Return from run_shader_tests_d3d12() if we're unable to create a test context.
...
A test environment may legitimately be unable to support running d3d12 tests.
2023-04-04 22:01:15 +02:00
Henri Verbeet
4e32adb8c1
vkd3d-utils: Export D3D12CreateDevice() once again.
...
Commit d27fee64ab
inadvertently stopped
exporting D3D12CreateDevice().
2023-04-04 22:01:04 +02:00
Zebediah Figura
dfa4bfdd03
include: Make test context information nestable.
...
Based on Wine.
2023-04-04 21:59:58 +02:00
Zebediah Figura
1bf5050d3d
tests: Factor out vkd3d_test_printf().
2023-04-04 21:59:58 +02:00
Francisco Casas
f3e81327dc
vkd3d-shader/hlsl: Consider register() as manual packing for resource fields.
2023-04-04 21:59:49 +02:00
Francisco Casas
70ff7aaddd
tests: Test packoffset() with resources inside cbuffers.
2023-04-04 21:59:49 +02:00
Francisco Casas
bf4a125087
vkd3d-shader/hlsl: Ignore packoffset() contents for SM1.
2023-04-04 21:59:47 +02:00
Francisco Casas
60237cb773
vkd3d-shader/hlsl: Don't allow manual and automatic cbuffer offset packing.
2023-04-04 21:59:45 +02:00
Francisco Casas
4448d114ad
vkd3d-shader/hlsl: Detect overlaps in cbuffer offsets.
2023-04-04 21:59:43 +02:00
Francisco Casas
7777c32cac
vkd3d-shader/hlsl: Support packoffset().
2023-04-04 21:59:42 +02:00
Francisco Casas
4aca335f42
vkd3d-shader/hlsl: Parse packoffset().
2023-04-04 21:59:40 +02:00
Francisco Casas
9b70971696
vkd3d-shader/hlsl: Rename struct hlsl_reg_reservation fields.
2023-04-04 21:59:39 +02:00
Francisco Casas
496f9b42cb
tests: Test packoffset().
2023-04-04 21:59:39 +02:00
Francisco Casas
cf59ad9c9f
tests: Test cbuffer element offsets.
2023-04-04 21:59:37 +02:00
Zebediah Figura
8186b75228
tests: Use a pixel shader that consumes SV_Position in test_query_pipeline_statistics().
...
Some drivers (AMD Radeon RX 6700 XT, with radeonsi from Mesa 22.2.0-rc3) emit
less than one invocation per pixel, presumably because they detect that the
shader control flow is uniform for all pixels. Having the control flow depend on
SV_Position avoids this test failure.
Cf. 34bd0dd0704c613abef8a9aa3ba2a2507ed02843 in wine.
2023-04-03 18:00:37 +02:00
Giovanni Mascellani
9a27df3a8c
tests: Read integer uniforms with strtol() and strtoul().
...
Because %i sscanf() converters are deprecated, and in practice
clamp to [-2^31, 2^31) on 32 bit.
2023-04-03 18:00:14 +02:00
Nikolay Sivov
eb71c5f20d
vkd3d-shader/hlsl: Handle round() for SM1.
2023-04-03 18:00:03 +02:00
Conor McCarthy
c87a292f98
tests: Release and then use a heap which contains resources.
...
The expected use case where a heap is freed before its contained
resources is not reasonably testable, so the ability to place a new
resource is tested instead.
2023-04-03 17:59:43 +02:00
Conor McCarthy
88667098eb
vkd3d: Do not destroy a heap until its resource count is zero.
...
Fixes a crash on exit in Horizon Zero Dawn (which requres added SM 6.0 support).
Placed resources should hold a reference to their heap:
https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12device-createheap
2023-04-03 17:59:41 +02:00
Zebediah Figura
7a9e393ea0
vkd3d-shader/hlsl: Rename the "type" field of struct hlsl_type to "class".
...
To be consistent with enum hlsl_type_class and HLSL_CLASS_*.
2023-04-03 17:59:24 +02:00
Nikolay Sivov
b172f4c257
vkd3d-shader/hlsl: Improve handling of builtin alias type "vector".
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-04-03 17:59:08 +02:00
Nikolay Sivov
5b5c020ade
vkd3d-shader/hlsl: Improve handling of builtin alias type "matrix".
2023-04-03 17:59:06 +02:00
Conor McCarthy
c61f9f477c
vkd3d-shader/spirv: Declare the phase SPIR-V function in spirv_compiler_enter_shader_phase().
...
The convoluted code path is no longer needed.
2023-04-03 17:58:26 +02:00
Conor McCarthy
b8472d2270
vkd3d-shader/spirv: Remove the hull shader phase array.
...
With no more than one phase each of control point and fork/join type,
an array is not required.
2023-04-03 17:58:24 +02:00
Conor McCarthy
16a7de4b38
vkd3d-shader/trace: Trace the normalised instruction array after tracing the input.
2023-04-03 17:58:23 +02:00