Nikolay Sivov : vkd3d-shader: Accept 'loop' attribute, on loops.
Module: vkd3d Branch: master Commit: ecdc3f39d4d8b79172cada0a2f35fdd0c6b05e59 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/ecdc3f39d4d8b79172cada0a2f35fd... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Sun Oct 29 01:30:13 2023 +0200 vkd3d-shader: Accept 'loop' attribute, on loops. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- libs/vkd3d-shader/hlsl.y | 7 +++++-- tests/hlsl/loop.shader_test | 12 ++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index 9a1be71e..71c0ae46 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -563,8 +563,11 @@ static struct hlsl_block *create_loop(struct hlsl_ctx *ctx, enum loop_type type, hlsl_warning(ctx, loc, VKD3D_SHADER_ERROR_HLSL_NOT_IMPLEMENTED, "Loop unrolling is not implemented."); } } - else if (!strcmp(attr->name, "loop") - || !strcmp(attr->name, "fastopt") + else if (!strcmp(attr->name, "loop")) + { + /* TODO: this attribute will be used to disable unrolling, once it's implememented. */ + } + else if (!strcmp(attr->name, "fastopt") || !strcmp(attr->name, "allow_uav_condition")) { hlsl_fixme(ctx, loc, "Unhandled attribute '%s'.", attr->name); diff --git a/tests/hlsl/loop.shader_test b/tests/hlsl/loop.shader_test index 6a5240a7..c15e4879 100644 --- a/tests/hlsl/loop.shader_test +++ b/tests/hlsl/loop.shader_test @@ -102,7 +102,7 @@ todo(sm>=6) draw quad probe all rgba (410.1, 410.1, 410.1, 410.1) % loop attribute by itself -[pixel shader todo] +[pixel shader] float4 main() : sv_target { float ret = 0.0; @@ -116,10 +116,10 @@ float4 main() : sv_target } [test] -todo draw quad +todo(sm>=6) draw quad probe all rgba (10.0, 10.0, 10.0, 10.0) -[pixel shader todo] +[pixel shader] float4 main() : sv_target { float ret = 0.0; @@ -135,10 +135,10 @@ float4 main() : sv_target } [test] -todo draw quad +todo(sm>=6) draw quad probe all rgba (10.0, 10.0, 10.0, 10.0) -[pixel shader todo] +[pixel shader] float4 main() : sv_target { float ret = 0.0; @@ -154,7 +154,7 @@ float4 main() : sv_target } [test] -todo draw quad +todo(sm>=6) draw quad probe all rgba (10.0, 10.0, 10.0, 10.0) % unroll can't be used with fastopt or loop
participants (1)
-
Alexandre Julliard