Commit Graph

193 Commits

Author SHA1 Message Date
Nikolay Sivov
ddb433d552 vkd3d-shader/fx: Explicitly check all known state assignment types for fx_2_0.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-16 16:04:52 +02:00
Nikolay Sivov
590ea03255 vkd3d-shader/fx: Remove the unused fx_4_fxlc_argument type.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-16 16:04:34 +02:00
Nikolay Sivov
1913f5e6f9 vkd3d-shader/fx: Parse array selector expressions for fx_2_0.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-11 20:09:05 +02:00
Nikolay Sivov
90032acbcf vkd3d-shader/fx: Rename the constant argument helper to be version-neutral.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-11 20:08:59 +02:00
Nikolay Sivov
d403705de9 vkd3d-shader/fx: Add a helper to print literals.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-11 20:07:38 +02:00
Nikolay Sivov
b098af3ef8 vkd3d-shader/fx: Use more generic names for the literal constant array.
It's going to be reused for 64-bit floats too.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-11 20:07:25 +02:00
Nikolay Sivov
f525399545 vkd3d-shader/fx: Read instruction arguments in full before printing them.
The binary format stores destination argument after sources. Each
argument takes either 3 tokens or 5 tokens, when indexed. For simplicity
read them all first, and print destination first.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-11 20:04:27 +02:00
Nikolay Sivov
d6a4084321 vkd3d-shader/fx: Use a version-neutral name for the opcode table.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-11 18:25:42 +02:00
Nikolay Sivov
47b9316a86 vkd3d-shader/fx: Give fxlvm-specific constants a version-neutral name.
Those are reusable for fx_2_0 preshaders.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-11 18:21:30 +02:00
Nikolay Sivov
fcb5650dbf vkd3d-shader/fx: Use a separate table for sampler states in fx_2_0.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-10 17:39:30 +02:00
Nikolay Sivov
b22ebe73bc vkd3d-shader/fx: Do not print padding bytes of fx_2_0 strings. 2025-06-10 17:39:18 +02:00
Nikolay Sivov
8aacee8eae vkd3d-shader/fx: Add a few missing fxlc opcode names.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-10 17:34:41 +02:00
Nikolay Sivov
b6ef417e71 vkd3d-shader/fx: Handle bool types when parsing fx_2_0 assignment values. 2025-06-02 20:51:38 +02:00
Nikolay Sivov
c895f63a1c vkd3d-shader/fx: Fix a crash in fx -> d3d-asm when named values are not defined. 2025-06-02 20:51:38 +02:00
Nikolay Sivov
108f4fe47e vkd3d-shader/fx: Fix reading the assignment value base type when parsing fx_2_0. 2025-06-02 20:51:33 +02:00
Nikolay Sivov
4e2fefdfdf vkd3d-shader/fx: Use correct array sizes for the fx_2_0 states. 2025-06-02 20:43:44 +02:00
Nikolay Sivov
4ef4baa6bf vkd3d-shader/fx: Fix some typos in fx_2_0 state names. 2025-06-02 20:43:44 +02:00
Nikolay Sivov
68386f5180 vkd3d-shader/fx: Print packoffset() modifiers in fx -> d3d-asm output.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-02 20:43:44 +02:00
Nikolay Sivov
6b2800fa99 vkd3d-shader/fx: Print explicit buffer bind points in fx -> d3d-asm output.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-02 20:43:27 +02:00
Nikolay Sivov
e33189546a vkd3d-shader/fx: Use variable unpacked size when setting buffer sizes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-02 20:41:37 +02:00
Nikolay Sivov
87ec2d9897 vkd3d-shader/fx: Fix writing fx_2_0 structure parameters.
Currently structure type descriptions get interleaved with variable
length string data. The solution is to write all fixed length fields
first, then append strings.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-05-27 20:24:24 +02:00
Nikolay Sivov
c4c7f10d99 vkd3d-shader/fx: Fix the total buffer size calculation in write_fx_4_buffer().
The total size should take variable alignment/padding into account.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-05-24 21:32:22 +02:00
Nikolay Sivov
2e40154801 vkd3d-shader/fx: Use the correct field indices when writing structure default values.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-05-24 21:27:01 +02:00
Nikolay Sivov
a06ecb6867 vkd3d-shader/fx: Use the correct value range for bool initializers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-05-24 21:24:59 +02:00
Nikolay Sivov
11d4fcff46 vkd3d-shader/fx: Handle nameless structure types.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-05-24 21:19:42 +02:00