[PATCH vkd3d v2] vkd3d-shader/hlsl: Remove trivial swizzles after each copy prop pass.
Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> --- v2: Also update progress flag. Makefile.am | 1 - libs/vkd3d-shader/hlsl_codegen.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index e4f92bb5..f3db6d06 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 \ diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c index e416647f..76b8399f 100644 --- a/libs/vkd3d-shader/hlsl_codegen.c +++ b/libs/vkd3d-shader/hlsl_codegen.c @@ -1665,9 +1665,9 @@ int hlsl_emit_dxbc(struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry_fun { 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); -- 2.34.1
Signed-off-by: Francisco Casas <fcasas(a)codeweavers.com> March 2, 2022 9:21 AM, "Matteo Bruni" <mbruni(a)codeweavers.com> wrote:
Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> --- v2: Also update progress flag.
Makefile.am | 1 - libs/vkd3d-shader/hlsl_codegen.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am index e4f92bb5..f3db6d06 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 \ diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c index e416647f..76b8399f 100644 --- a/libs/vkd3d-shader/hlsl_codegen.c +++ b/libs/vkd3d-shader/hlsl_codegen.c @@ -1665,9 +1665,9 @@ int hlsl_emit_dxbc(struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry_fun { 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); -- 2.34.1
participants (3)
-
Francisco Casas -
Henri Verbeet -
Matteo Bruni