vkd3d-shader/hlsl: Remove trivial swizzles after each copy prop pass.

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Francisco Casas <fcasas@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Matteo Bruni 2022-03-02 13:21:21 +01:00 committed by Alexandre Julliard
parent 94e8442355
commit e1865cf98a
2 changed files with 1 additions and 2 deletions

View File

@ -315,7 +315,6 @@ XFAIL_TESTS = \
tests/hlsl-initializer-numeric.shader_test \
tests/hlsl-initializer-static-array.shader_test \
tests/hlsl-initializer-struct.shader_test \
tests/hlsl-bool-cast.shader_test \
tests/hlsl-duplicate-modifiers.shader_test \
tests/hlsl-for.shader_test \
tests/hlsl-function.shader_test \

View File

@ -1666,9 +1666,9 @@ int hlsl_emit_bytecode(struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry
{
progress = transform_ir(ctx, hlsl_fold_constants, body, NULL);
progress |= copy_propagation_execute(ctx, body);
progress |= transform_ir(ctx, remove_trivial_swizzles, body, NULL);
}
while (progress);
transform_ir(ctx, remove_trivial_swizzles, body, NULL);
if (ctx->profile->major_version < 4)
transform_ir(ctx, lower_division, body, NULL);