Shaun Ren
e880b11626
vkd3d-shader/hlsl: Parse the maxvertexcount attribute.
2025-03-12 20:42:15 +01:00
Francisco Casas
7be7e589a9
vkd3d-shader/hlsl: Lower TRUNC expressions for SM1.
...
Basically, separate lower_casts_to_int() into the lowering of the CAST
and the lowering of the TRUNC, so that TRUNCs that are not part of a
cast are lowered as well.
2025-03-12 18:26:23 +01:00
Shaun Ren
1b03676a36
tests/hlsl: Add dynamic addressing copy-propagation tests.
2025-03-12 18:22:01 +01:00
Shaun Ren
7ab7b2ab8b
vkd3d-shader/hlsl: Implement copy-propagation of derefs with a non-constant index.
...
We implement a transformation that propagates loads with a single
non-constant index in its deref path. Consider a load of the form
var[[a0][a1]...[i]...[an]], where ak are integral constants, and i is
an arbitrary non-constant node. If, for all j, the following holds:
var[[a0][a1]...[j]...[an]] = x[[c0*j + d0][c1*j + d1]...[cm*j + dm]],
where ck, dk are constants, then we can replace the load with
x[[c0*i + d0]...[cm*i + dm]]. This pass is implemented by
copy_propagation_replace_with_deref().
2025-03-12 18:16:59 +01:00
Shaun Ren
f484527cfb
vkd3d-shader/hlsl: Rename init_deref() to hlsl_init_deref().
2025-03-12 17:22:44 +01:00
Shaun Ren
2bc7fa568f
vkd3d-shader/hlsl: Introduce component_index_from_deref_path_node().
2025-03-12 17:19:56 +01:00
Shaun Ren
2368ff6637
vkd3d-shader/hlsl: Introduce simplify_exprs().
...
Also invoke simplify_exprs() after replace_deref_path_with_offset().
2025-03-12 17:18:52 +01:00
Shaun Ren
c6f18c9394
vkd3d-shader/hlsl: Support indirect addressing of uniforms in sm4_generate_vsir_reg_from_deref().
2025-03-12 17:14:52 +01:00
Shaun Ren
f6c35144e4
vkd3d-shader/hlsl: Support patch arrays in hlsl_reg_from_deref().
2025-03-12 17:10:32 +01:00
Shaun Ren
261b5120f6
vkd3d-shader/hlsl: Allow non-constant indices in register_deref_usage().
2025-03-12 17:10:32 +01:00
Shaun Ren
1c2434f4d3
vkd3d-shader/hlsl: Allow uint1-typed deref path nodes.
...
When derefs with non-constant indices are copy-propagated, it is
possible to end up with uint1-typed path nodes.
Also, introduce hlsl_is_vec1().
2025-03-12 17:09:35 +01:00
Shaun Ren
766492d1cc
vkd3d-shader/glsl: Implement support for indirect constant buffer addressing.
2025-03-12 17:06:47 +01:00
Shaun Ren
16b0afc192
vkd3d-shader/tpf: Write non-zero static offsets in relative addressing mode in sm4_write_register_index().
2025-03-12 17:04:52 +01:00
Henri Verbeet
81dc67b1ef
demos: Add copyright headers to the HLSL shaders.
2025-03-10 15:18:07 +01:00
Elizabeth Figura
8f28956108
vkd3d-shader/hlsl: Fix writing the sincos extra constants.
...
Fixes: 4ed16108f0
2025-03-10 15:17:19 +01:00
Elizabeth Figura
d075c3c274
vkd3d-shader/hlsl: Fix temp allocation for ps 1.x.
...
Iterate over the extern vars, not the parameters. The synthesized inputs and
output don't go in the function parameters.
Fixes: 8b57a612d7
2025-03-10 15:17:19 +01:00
Nikolay Sivov
553e37314a
vkd3d-shader/fx: Print string object entries for fx_2_0.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-03-10 15:14:32 +01:00
Nikolay Sivov
3749171656
vkd3d-shader/fx: Output object initialiser IDs for fx_2_0.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-03-10 15:14:24 +01:00
Giovanni Mascellani
d34f5fbae2
tests/shader_runner: Allow selecting the compiler.
2025-03-10 15:12:45 +01:00
Giovanni Mascellani
5a898254b0
tests/shader_runner: Allow selecting the executor.
2025-03-10 15:12:33 +01:00
Petrichor Park
f05386e006
tests/shader_runner: Allow controlling which shader models to run via command line.
...
Adds new flags --sm-min and --sm-max. They each take a shader model
identifier, with the same syntax as in the test harness. If either is
present, then it will only run tests within the (inclusive) range.
Omitting one allows anything as the min/max.
2025-03-10 15:12:25 +01:00
Henri Verbeet
2f260a344e
build: Get rid of some redundant instances of "checking" in AC_MSG_CHECKING messages.
...
AC_MSG_CHECKING already prints "checking" itself.
2025-03-10 15:03:23 +01:00
Elizabeth Figura
f4042ba752
vkd3d-shader/hlsl: Add a hlsl_block_add_resource_store() helper.
2025-03-10 14:56:11 +01:00
Elizabeth Figura
e7ff5da5b1
vkd3d-shader/hlsl: Add a hlsl_block_add_index() helper.
2025-03-10 14:56:11 +01:00
Elizabeth Figura
e5cabeafe5
vkd3d-shader/hlsl: Add a hlsl_block_add_loop() helper.
2025-03-10 14:56:11 +01:00