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; bool progress;
lower_ir(ctx, lower_matrix_swizzles, body);
lower_ir(ctx, lower_index_loads, body);
lower_ir(ctx, lower_broadcasts, body); lower_ir(ctx, lower_broadcasts, body);
while (hlsl_transform_ir(ctx, fold_redundant_casts, body, NULL)); while (hlsl_transform_ir(ctx, fold_redundant_casts, body, NULL));
do do

View File

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