Commit Graph

7965 Commits

Author SHA1 Message Date
Giovanni Mascellani
a6e6e36994 vkd3d-shader/ir: Validate DEQO instructions. 2025-06-25 16:47:52 +02:00
Giovanni Mascellani
17b0e0d1d9 vkd3d-shader/ir: Validate EQO instructions. 2025-06-25 16:46:59 +02:00
Giovanni Mascellani
596f02210d vkd3d-shader/ir: Lower UDIV to UDIV_SIMPLE and UREM. 2025-06-25 16:44:00 +02:00
Giovanni Mascellani
82ef9bf2e5 vkd3d-shader/ir: Introduce VSIR_OP_UREM.
It is meant to compute the unsigned integer remainder.
2025-06-25 16:43:34 +02:00
Giovanni Mascellani
78e0f8412d vkd3d-shader/ir: Introduce VSIR_OP_UDIV_SIMPLE.
It is meant to compute the unsigned integer division, without
computing the modulo at the same time.
2025-06-25 16:40:43 +02:00
Giovanni Mascellani
ada09d003d vkd3d-shader/ir: Repurpose IDIV to compute plain signed division.
It doesn't compute signed remainder any more.
2025-06-25 16:39:50 +02:00
Giovanni Mascellani
823a8724de vkd3d-shader/ir: Introduce VSIR_OP_IREM.
It is meant to compute the signed integer remainder.
2025-06-25 16:38:38 +02:00
Evan Tang
f4a4e2afec vkd3d: Replace the resource count field of struct d3d12_heap with an internal refcount.
When a heap was released at the same time as the last resource on that
heap, it was possible for both to see each other's
refcount/resource_count as 0 and both would try to destroy the heap.

Avoid that by converting "resource_count" to an internal refcount, which
holds an extra +1 if the main refcount is nonzero. The final release
will then be synchronized between the two since both will operate on
"internal_refcount".
2025-06-25 16:06:49 +02:00
Henri Verbeet
752a48f4ac vkd3d-shader/msl: Implement VSIR_OP_IMAX. 2025-06-25 16:00:34 +02:00
Henri Verbeet
543ee120fc vkd3d-shader/msl: Implement VSIR_OP_DSX_FINE and VSIR_OP_DSY_FINE. 2025-06-25 16:00:31 +02:00
Henri Verbeet
b9ce945e61 vkd3d-shader/msl: Implement VSIR_OP_DSX_COARSE and VSIR_OP_DSY_COARSE. 2025-06-25 16:00:27 +02:00
Henri Verbeet
06a0453762 vkd3d-shader/msl: Implement VSIR_OP_DSX and VSIR_OP_DSY. 2025-06-25 16:00:22 +02:00
Henri Verbeet
cdfaeb209a vkd3d-shader/msl: Implement VSIR_OP_CONTINUE. 2025-06-25 16:00:15 +02:00
Henri Verbeet
d219cccc99 vkd3d-shader/ir: Rename the VKD3DSIH_* enum elements to VSIR_OP_*. 2025-06-25 15:53:41 +02:00
Elizabeth Figura
cd43ab1ca2 vkd3d-shader/ir: Allow bitwise operations on VKD3D_DATA_INT. 2025-06-25 15:46:39 +02:00
Elizabeth Figura
bcb2acbdab vkd3d-shader/hlsl: Set the destination data type to UINT in sm4_generate_vsir_cast_from_bool().
Validation checks that the source and destination types are both integer.
2025-06-25 15:46:27 +02:00
Elizabeth Figura
a1eb53df3c vkd3d-shader/hlsl: Set the data type in sm4_generate_vsir_reg_from_deref(). 2025-06-25 15:43:15 +02:00
Elizabeth Figura
ecb19b33ba vkd3d-shader/hlsl: Output sm1 semantics with unique register_index values.
Match the register_index values from the d3dbc reader.
2025-06-25 15:43:15 +02:00
Elizabeth Figura
41cacba5ce vkd3d-shader/hlsl: Convert descriptor registers to pre-5.1 form in the TPF writer.
Rather than in the HLSL writer. This way we output vsir consistent with the vsir
we read, and the vsir that the backends expect [bringing us one step closer to
being able to feed the HLSL frontend directly into the individual backends.]
2025-06-25 15:42:51 +02:00
Giovanni Mascellani
3a4f95aca6 vkd3d-shader/ir: Do not crash when registers cannot be resolved to signature elements. 2025-06-25 15:40:12 +02:00
Elizabeth Figura
5452e79a19 vkd3d-shader/d3d-asm: Handle INT_MIN in shader_print_int_literal(). 2025-06-24 15:51:31 +02:00
Henri Verbeet
c2a01fff1e vkd3d-shader/msl: Implement support for static texel offsets in msl_sample(). 2025-06-24 15:32:59 +02:00
Henri Verbeet
6f8ce6df72 vkd3d-shader/msl: Implement VKD3DSIH_GATHER4_PO. 2025-06-24 15:32:59 +02:00
Henri Verbeet
449804623a vkd3d-shader/msl: Implement VKD3DSIH_GATHER4_C. 2025-06-24 15:32:59 +02:00
Henri Verbeet
841cf65a41 vkd3d-shader/msl: Implement VKD3DSIH_GATHER4. 2025-06-24 15:32:59 +02:00