tint/hlsl: remove [loop] attribute on all loops

I added the forcing of the "loop" attribute to all loops to address FXC
failing on uniformity errors related to gradients in loops. Since then,
Tint now implements UA and it recently became an error, so we no longer
need this hack. As a result, FXC is now better able to cope with loops
that it determines executes 0 times.

Most e2e tests are affected because so many use loops, but 27 tests that
were previously failing are now passing with this change:

tint/bug/tint/1538.wgsl.expected.fxc.hlsl
tint/bug/tint/1604.wgsl.expected.fxc.hlsl
tint/bug/tint/1605.wgsl.expected.fxc.hlsl
tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.fxc.hlsl
tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.fxc.hlsl
tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.fxc.hlsl
tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.fxc.hlsl
tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.fxc.hlsl
tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.fxc.hlsl
tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.fxc.hlsl

Bug: tint:1522
Bug: tint:1538
Bug: tint:1604
Bug: tint:1605
Change-Id: I530b846b6b8df122ab351ff7b85d3e1c9ac11526
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/104121
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
Antonio Maiorano
2022-09-29 16:53:58 +00:00
committed by Dawn LUCI CQ
parent b764a15c23
commit 06844a5e24
309 changed files with 555 additions and 6833 deletions

View File

@@ -7,7 +7,7 @@ cbuffer cbuffer_x_6 : register(b0, space0) {
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
[loop] while (true) {
while (true) {
bool x_45 = false;
int x_48 = 0;
int x_49 = 0;
@@ -30,7 +30,7 @@ void main_1() {
x_48_phi = 0;
x_50_phi = 0;
x_52_phi = 0;
[loop] while (true) {
while (true) {
int x_62 = 0;
int x_65 = 0;
int x_66 = 0;
@@ -56,7 +56,7 @@ void main_1() {
x_62_phi = x_48;
x_65_phi = x_50;
x_67_phi = 0;
[loop] while (true) {
while (true) {
int x_97 = 0;
int x_68 = 0;
int x_66_phi = 0;
@@ -70,7 +70,7 @@ void main_1() {
} else {
break;
}
[loop] while (true) {
while (true) {
bool x_78 = false;
int x_86_phi = 0;
int x_97_phi = 0;
@@ -83,7 +83,7 @@ void main_1() {
break;
}
x_86_phi = 1;
[loop] while (true) {
while (true) {
int x_87 = 0;
const int x_86 = x_86_phi;
x_97_phi = x_65;
@@ -122,7 +122,7 @@ void main_1() {
x_66 = x_66_phi;
x_63 = asint((x_62 + x_66));
if (x_41) {
[loop] while (true) {
while (true) {
if (x_41) {
} else {
break;
@@ -172,7 +172,7 @@ void main_1() {
x_115_phi = x_111;
x_118_phi = 0;
x_120_phi = 0;
[loop] while (true) {
while (true) {
int x_154 = 0;
int x_121 = 0;
int x_119_phi = 0;
@@ -185,7 +185,7 @@ void main_1() {
} else {
break;
}
[loop] while (true) {
while (true) {
bool x_135 = false;
int x_143_phi = 0;
int x_154_phi = 0;
@@ -198,7 +198,7 @@ void main_1() {
break;
}
x_143_phi = 1;
[loop] while (true) {
while (true) {
int x_144 = 0;
const int x_143 = x_143_phi;
x_154_phi = x_118;

View File

@@ -7,7 +7,7 @@ cbuffer cbuffer_x_6 : register(b0, space0) {
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
[loop] while (true) {
while (true) {
bool x_45 = false;
int x_48 = 0;
int x_49 = 0;
@@ -30,7 +30,7 @@ void main_1() {
x_48_phi = 0;
x_50_phi = 0;
x_52_phi = 0;
[loop] while (true) {
while (true) {
int x_62 = 0;
int x_65 = 0;
int x_66 = 0;
@@ -56,7 +56,7 @@ void main_1() {
x_62_phi = x_48;
x_65_phi = x_50;
x_67_phi = 0;
[loop] while (true) {
while (true) {
int x_97 = 0;
int x_68 = 0;
int x_66_phi = 0;
@@ -70,7 +70,7 @@ void main_1() {
} else {
break;
}
[loop] while (true) {
while (true) {
bool x_78 = false;
int x_86_phi = 0;
int x_97_phi = 0;
@@ -83,7 +83,7 @@ void main_1() {
break;
}
x_86_phi = 1;
[loop] while (true) {
while (true) {
int x_87 = 0;
const int x_86 = x_86_phi;
x_97_phi = x_65;
@@ -122,7 +122,7 @@ void main_1() {
x_66 = x_66_phi;
x_63 = asint((x_62 + x_66));
if (x_41) {
[loop] while (true) {
while (true) {
if (x_41) {
} else {
break;
@@ -172,7 +172,7 @@ void main_1() {
x_115_phi = x_111;
x_118_phi = 0;
x_120_phi = 0;
[loop] while (true) {
while (true) {
int x_154 = 0;
int x_121 = 0;
int x_119_phi = 0;
@@ -185,7 +185,7 @@ void main_1() {
} else {
break;
}
[loop] while (true) {
while (true) {
bool x_135 = false;
int x_143_phi = 0;
int x_154_phi = 0;
@@ -198,7 +198,7 @@ void main_1() {
break;
}
x_143_phi = 1;
[loop] while (true) {
while (true) {
int x_144 = 0;
const int x_143 = x_143_phi;
x_154_phi = x_118;