vkd3d-shader/hlsl: Also lower matrix swizzles and index loads in const passes.

This commit is contained in:
Francisco Casas 2024-04-26 14:46:56 -04:00 committed by Alexandre Julliard
parent dff2f746bc
commit 061dc39036
Notes: Alexandre Julliard 2024-05-15 23:03:23 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/839
2 changed files with 7 additions and 4 deletions

View File

@ -5412,6 +5412,9 @@ void hlsl_run_const_passes(struct hlsl_ctx *ctx, struct hlsl_block *body)
{
bool progress;
lower_ir(ctx, lower_matrix_swizzles, body);
lower_ir(ctx, lower_index_loads, body);
lower_ir(ctx, lower_broadcasts, body);
while (hlsl_transform_ir(ctx, fold_redundant_casts, body, NULL));
do

View File

@ -53,7 +53,7 @@ todo(glsl) draw quad
probe all rgba (2, 3, 6, 1)
% Additional level of indirection
[pixel shader todo fail(sm>=6)]
[pixel shader fail(sm>=6)]
static const float array[8] = {1, 2, 3, 4, 5, 6, 7, 8};
static const int idx = 2;
static const float array2[array[idx]] = {1, 2, 3};
@ -64,11 +64,11 @@ float4 main() : sv_target
}
[test]
todo draw quad
todo(glsl) draw quad
probe all rgba (2, 3, 6, 1)
[pixel shader fail(sm>=6) todo]
[pixel shader fail(sm>=6)]
static const struct
{
float f;
@ -88,5 +88,5 @@ uniform 4 float 0.0
uniform 8 float 0.0
uniform 12 float 0.0
uniform 16 float 42.0
todo draw quad
todo(glsl) draw quad
probe all rgba (42, 42, 42, 42)