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