Giovanni Mascellani
8e08fa6bf2
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in d3d_asm.c.
2024-07-30 16:32:59 +02:00
Nikolay Sivov
a289393fe7
vkd3d-shader/asm: Output 'bias' flag for 'texld'.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-06-11 15:50:34 +02:00
Conor McCarthy
0b8b5b2d0f
vkd3d-shader/dxil: Implement DX intrinsic QuadReadLaneAt.
2024-06-11 15:48:21 +02:00
Conor McCarthy
8a15642f45
vkd3d-shader/dxil: Implement DX intrinsic QuadOp.
2024-06-11 15:48:21 +02:00
Henri Verbeet
1fe7a6581b
vkd3d-shader/ir: Rename the "handler_idx" field of struct vkd3d_shader_instruction to "opcode".
2024-05-30 19:57:01 +02:00
Conor McCarthy
47f0483267
vkd3d-shader/dxil: Implement DX intrinsic WaveReadLaneFirst.
2024-05-14 20:44:06 +02:00
Conor McCarthy
e41643ab8f
vkd3d-shader/dxil: Implement DX intrinsic WaveReadLaneAt.
2024-05-14 20:44:02 +02:00
Conor McCarthy
2810edf45b
vkd3d-shader/dxil: Implement DX intrinsic WavePrefixBitCount.
2024-05-13 11:50:22 +02:00
Conor McCarthy
c30976e5c2
vkd3d-shader/dxil: Implement DX intrinsic WaveIsFirstLane.
2024-05-13 11:50:20 +02:00
Conor McCarthy
cb5163f9a4
vkd3d-shader/dxil: Implement DX intrinsic WaveAllBitCount.
2024-05-13 11:50:17 +02:00
Conor McCarthy
c71751edc9
vkd3d-shader/dxil: Implement DX intrinsics WaveActiveOp and WavePrefixOp.
2024-05-06 22:12:25 +02:00
Conor McCarthy
af208135f3
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveBit.
2024-05-06 22:12:22 +02:00
Conor McCarthy
174a692a17
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveBallot.
2024-05-06 22:12:19 +02:00
Conor McCarthy
fb5eb3159d
vkd3d-shader/dxil: Implement DX intrinsic WaveAnyTrue.
2024-05-02 22:19:00 +02:00
Conor McCarthy
8e2b351538
vkd3d-shader/dxil: Implement DX intrinsic WaveAllTrue.
2024-05-02 22:18:58 +02:00
Conor McCarthy
9aa9b112e6
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveAllEqual.
2024-05-02 22:18:55 +02:00
Conor McCarthy
6a56b4e5d8
vkd3d-shader/dxil: Implement DX intrinsics WaveGetLaneCount and WaveGetLaneIndex.
2024-05-02 22:18:48 +02:00
Henri Verbeet
8a9364c124
vkd3d-shader/d3d-asm: Get rid of shader_addline().
2024-04-16 22:18:44 +02:00
Henri Verbeet
b8eadf4bab
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_interpolation_mode().
2024-04-15 21:33:58 +02:00
Henri Verbeet
1ad524072d
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_primitive_type().
2024-04-15 21:33:57 +02:00
Henri Verbeet
7d72accce2
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_decl_usage().
2024-04-15 21:33:56 +02:00
Henri Verbeet
4d8c966ff4
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_shader_input_sysval_semantic().
2024-04-15 21:33:55 +02:00
Henri Verbeet
37401fa11c
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_reg_type().
2024-04-15 21:33:54 +02:00
Henri Verbeet
7c66c9122d
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_register().
2024-04-15 21:33:52 +02:00
Giovanni Mascellani
a2bb4ef301
vkd3d-shader/d3d-asm: Reset indent level on HS phases.
2024-04-10 08:54:29 -05:00
Conor McCarthy
9e0b9c3a7a
vkd3d-shader/dxil: Implement the DXIL ATOMICRMW instruction.
2024-03-27 22:36:59 +01:00
Henri Verbeet
164608a007
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_dst_param().
2024-03-18 23:08:03 +01:00
Henri Verbeet
e2d1a878a7
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_src_param().
2024-03-18 23:08:02 +01:00
Henri Verbeet
939a7fbe88
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_partitioning().
2024-03-18 23:08:01 +01:00
Henri Verbeet
5f5145b8f8
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_output_primitive().
2024-03-18 23:08:00 +01:00
Henri Verbeet
f61a92b908
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_domain().
2024-03-18 23:07:58 +01:00
Giovanni Mascellani
d418f49888
vkd3d-shader/d3d-asm: Do not dump a register's type if it's unused.
2024-03-18 23:07:44 +01:00
Giovanni Mascellani
22d19aed58
vkd3d-shader/d3d-asm: Indent instructions inside a block.
2024-03-18 23:07:43 +01:00
Henri Verbeet
bdc096d437
vkd3d-shader/d3d-asm: Get rid of the (now) redundant "shader_desc" parameter to vkd3d_dxbc_binary_to_text().
...
And rename the function to d3d_asm_compile() while we're touching it.
2024-03-12 22:15:34 +01:00
Conor McCarthy
066ea75945
vkd3d-shader/spirv: Introduce HALF and UINT16 types for minimum precision.
...
Minimum precision types must always be implemented as 32-bit to match how
reduced precision works in SPIR-V.
2024-03-11 22:10:05 +01:00
Giovanni Mascellani
470d83a9da
vkd3d-shader: Move shader signatures to vsir_program.
2024-03-11 22:09:31 +01:00
Giovanni Mascellani
23259263cf
vkd3d-shader/d3d-asm: Only emit signatures for SM4-6.
2024-03-08 23:36:44 +01:00
Giovanni Mascellani
21f76257b0
vkd3d-shader/d3d-asm: Print labels in red.
...
They are substantially different from any other register type, so
it makes sense to have them stand out. Also, they help segmenting
visually the code into blocks, because labels are usually found
either at the beginning or at the end of a block.
2024-03-08 23:36:25 +01:00
Conor McCarthy
f212aad0ff
vkd3d-shader/dxil: Support FCMP_ORD and FCMP_UNO for CMP2.
2024-03-08 23:36:13 +01:00
Giovanni Mascellani
9aa86901e3
vkd3d-shader/d3d-asm: Support emitting the shader signature.
2024-03-07 23:08:24 +01:00
Giovanni Mascellani
01a687a7fc
vkd3d-shader/d3d-asm: Refactor dumping a write mask to a dedicated function.
2024-03-07 23:08:23 +01:00
Giovanni Mascellani
9d99389663
vkd3d-shader/d3d-asm: Describe the ASM dialect with a bunch of flags instead of a plain enum.
2024-03-07 23:08:22 +01:00
Giovanni Mascellani
94d641783b
vkd3d-shader/d3d-asm: Do not make a copy of the buffer before returning it.
2024-03-07 23:08:20 +01:00
Conor McCarthy
625e289574
vkd3d-shader/dxil: Handle hyperbolic trigonometric functions in sm6_parser_emit_dx_unary().
2024-02-07 22:59:23 +01:00
Conor McCarthy
19d23fa696
vkd3d-shader/dxil: Handle inverse trigonometric functions in sm6_parser_emit_dx_unary().
2024-02-06 23:09:53 +01:00
Giovanni Mascellani
1f536238a8
vkd3d-shader: Use 64 bit swizzles for 64 bit data types in VSIR.
...
The handling of write masks and swizzles for 64 bit data types is
currently irregular: write masks are always 64 bit, while swizzles
are usually 32 bit, except for SSA registers with are 64 bit.
With this change we always use 64 bit swizzles, in order to make
the situation less surprising and make it easier to convert
registers between SSA and TEMP.
64 bit swizzles are always required to have X in their last two
components.
2024-01-29 22:33:33 +01:00
Conor McCarthy
93d7c30395
vkd3d-shader/dxil: Handle DX intrinsic Tan in sm6_parser_emit_dx_unary().
2024-01-25 22:24:43 +01:00
Conor McCarthy
8ae69c745b
vkd3d-shader/spirv: Handle thread group UAV barriers.
2024-01-25 22:24:23 +01:00
Conor McCarthy
41cce4cbf1
vkd3d-shader/dxil: Handle floating point special value comparisons in sm6_parser_emit_dx_unary().
2024-01-24 22:37:59 +01:00
Henri Verbeet
23dcd4f22b
vkd3d-shader/ir: Store the shader version in struct vsir_program.
2024-01-22 22:18:50 +01:00