Giovanni Mascellani
59a3a8e2d6
vkd3d-shader/ir: Validate the signature element stream index.
2024-12-09 16:11:34 +01:00
Giovanni Mascellani
db5a3197b7
vkd3d-shader/ir: Validate the register index and count for signature elements.
2024-12-09 16:11:34 +01:00
Giovanni Mascellani
267c70fa55
vkd3d-shader/ir: Check that signature element masks are left-aligned with in a DCL_INDEX_RANGE.
2024-12-09 16:10:47 +01:00
Giovanni Mascellani
703da18955
vkd3d-shader/ir: Check that the DCL_INDEX_RANGE effective mask stabilizes after one iteration.
2024-12-09 16:10:47 +01:00
Francisco Casas
d2feb33b47
vkd3d-shader/hlsl: Store SM4 texture declarations in the vsir program.
2024-12-09 16:09:16 +01:00
Francisco Casas
1d290bf5db
vkd3d-shader/hlsl: Store SM4 sampler declarations in the vsir program.
...
Looking at the implementation of shader_sm4_read_dcl_sampler(), vsir
stores the resource index range both in
vkd3d_shader_instruction.declaration.sampler.range
and in the
vkd3d_shader_instruction.declaration.sampler.src.reg.idx[1-2]
indexes, so we do the same.
It is also worth noting that for shader models lower than 5.1, vsir
has a normalization on the ins->declaration src register indexes.
Refer to the following comment:
/* SM5.1 places a symbol identifier in idx[0] and moves
* other values up one slot. Normalize to SM5.1. */
on shader_sm4_read_param().
This normalization is also added to the generated vsir instructions.
2024-12-09 16:09:16 +01:00
Francisco Casas
37a61bf41a
vkd3d-shader/hlsl: Store the global flags in the vsir program.
2024-12-09 16:09:16 +01:00
Francisco Casas
d3108de72a
vkd3d-shader/hlsl: Store ROV feature requirement in the vsir_program.
2024-12-09 16:09:16 +01:00
Francisco Casas
d9c4a257c2
vkd3d-shader/dxbc: Parse the SFI0 ROV requirement.
2024-12-09 16:09:16 +01:00
Henri Verbeet
b484288a82
vkd3d-shader/spirv: Parse SPIR-V instructions.
2024-12-09 16:09:16 +01:00
Giovanni Mascellani
ac2901d2cb
vkd3d-shader/spirv: Parse the SPIR-V instruction schema.
2024-12-09 16:09:16 +01:00
Giovanni Mascellani
9b4f5dab77
vkd3d-shader/spirv: Parse the SPIR-V id bound.
2024-12-09 16:09:16 +01:00
Giovanni Mascellani
3f548ccf9c
vkd3d-shader/spirv: Parse the SPIR-V generator magic number.
2024-12-09 16:09:16 +01:00
Giovanni Mascellani
e218dae281
vkd3d-shader/spirv: Parse the SPIR-V version number.
2024-12-09 16:08:33 +01:00
Giovanni Mascellani
6cac18e395
vkd3d-shader/spirv: Parse the SPIR-V magic number.
2024-12-09 15:41:24 +01:00
Giovanni Mascellani
49fba97b0a
vkd3d-shader/spirv: Introduce a SPIR-V parser.
2024-12-09 14:22:24 +01:00
Feifan He
9d4bcc951d
vkd3d-shader/msl: Implement VKD3DSIH_USHR.
2024-12-05 21:26:03 +01:00
Feifan He
138e7caa03
vkd3d-shader/msl: Implement VKD3DSIH_ISHR.
2024-12-05 21:26:03 +01:00
Feifan He
5d6ed0fa30
vkd3d-shader/msl: Implement VKD3DSIH_ISHL.
2024-12-05 21:26:03 +01:00
Feifan He
a425c242a4
vkd3d-shader/msl: Implement VKD3DSIH_MAD.
2024-12-05 21:26:03 +01:00
Feifan He
8e0de82c74
vkd3d-shader/msl: Implement support for VKD3DSPDM_SATURATE modifiers.
2024-12-05 21:26:03 +01:00
Feifan He
ebf5828542
vkd3d-shader/msl: Implement VKD3DSIH_ELSE.
2024-12-05 21:25:35 +01:00
Feifan He
bbe10dcf17
vkd3d-shader/msl: Implement VKD3DSIH_NOT.
2024-12-05 21:13:29 +01:00
Giovanni Mascellani
74fa51d57c
vkd3d-shader/ir: Check that DCL_INDEX_RANGE ranges do not overlap with unrelated signature elements.
2024-12-05 21:06:31 +01:00
Giovanni Mascellani
aae0a74d60
vkd3d-shader/ir: Validate the DCL_INDEX_RANGE instruction.
2024-12-05 21:06:31 +01:00
Giovanni Mascellani
38c53dca08
vkd3d-shader/ir: Introduce a helper function to determine the signature for a register type.
2024-12-05 21:05:50 +01:00
Giovanni Mascellani
b5e1c45827
vkd3d-shader/ir: Validate the register type for registers used as relative addresses.
2024-12-05 21:00:43 +01:00
Giovanni Mascellani
abf7a91834
vkd3d-shader/ir: Validate the array index when it is statically known.
2024-12-05 21:00:43 +01:00
Elizabeth Figura
01117c716d
vkd3d-shader/hlsl: Remove unused expr ops.
...
These correspond to specific SM1 opcodes which we don't use (and which the native compiler never uses either).
2024-12-04 14:38:32 +01:00
Giovanni Mascellani
82963035e9
vkd3d-shader/ir: Validate the control point index when it is statically known.
2024-12-04 14:36:36 +01:00
Feifan He
a06e664730
vkd3d-shader/msl: Implement VKD3DSIH_RSQ.
2024-12-04 14:26:20 +01:00
Feifan He
bc67f2eb75
vkd3d-shader/msl: Implement VKD3DSIH_MIN.
2024-12-04 14:26:20 +01:00
Feifan He
ab2cb43e15
vkd3d-shader/msl: Implement VKD3DSIH_MAX.
2024-12-04 14:26:20 +01:00
Feifan He
64ea033c81
vkd3d-shader/msl: Implement VKD3DSIH_LOG.
2024-12-04 14:26:20 +01:00
Feifan He
b1e6dbe83f
vkd3d-shader/msl: Handle SV_IS_FRONT_FACE inputs.
2024-12-04 14:26:20 +01:00
Feifan He
568296c88f
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_NE.
2024-12-04 14:26:20 +01:00
Feifan He
610a11ddf8
vkd3d-shader/msl: Implement VKD3DSIH_IF and VKD3DSIH_ENDIF.
2024-12-04 14:26:20 +01:00
Feifan He
28068c9d4c
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_NI.
2024-12-04 14:26:20 +01:00
Elizabeth Figura
36fda8e28c
vkd3d-shader: Correct the disassembly for POSITIONT.
2024-12-03 14:49:02 +01:00
Elizabeth Figura
3d6f836801
vkd3d-shader: Fix the disassembly names of IFC and BREAKC.
2024-12-03 14:49:02 +01:00
Elizabeth Figura
7a7dc4bf0e
vkd3d-shader/d3dbc: Mark some more instructions as version-limited.
2024-12-03 14:47:00 +01:00
Elizabeth Figura
e2961a2e3c
vkd3d-shader/d3dbc: Omit unnecessary instruction maximum versions.
2024-12-03 14:47:00 +01:00
Feifan He
a81a9fb7bc
vkd3d-shader/msl: Implement VKD3DSIH_LTO.
2024-12-03 14:44:32 +01:00
Feifan He
24753747a1
vkd3d-shader/msl: Implement VKD3DSIH_EXP.
2024-12-03 14:44:32 +01:00
Feifan He
ac897781ba
vkd3d-shader/msl: Implement VKD3DSIH_IEQ.
2024-12-03 14:44:32 +01:00
Feifan He
67dd1d2b0c
vkd3d-shader/msl: Handle the VKD3DSIM_LINEAR interpolation modifier on inputs.
2024-12-03 14:42:49 +01:00
Feifan He
8ae6a04561
vkd3d-shader/msl: Implement VKD3DSIH_SQRT.
2024-12-03 14:42:27 +01:00
Feifan He
77ed788a60
vkd3d-shader/msl: Implement VKD3DSIH_DP2.
2024-12-03 14:42:27 +01:00
Feifan He
6f7ee57e29
vkd3d-shader/msl: Implement VKD3DSIH_DP4.
2024-12-03 14:42:27 +01:00
Feifan He
046e9b5286
vkd3d-shader/msl: Implement VKD3DSIH_DP3.
2024-12-03 14:42:19 +01:00