dawn-cmake/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-cop.../1.spvasm.expected.fxc.hlsl

346 lines
8.8 KiB
HLSL
Raw Normal View History

SKIP: FAILED - TIMEOUT
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static int map[256] = (int[256])0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float2 pos = float2(0.0f, 0.0f);
int2 ipos = int2(0, 0);
int i = 0;
int2 p = int2(0, 0);
bool canwalk = false;
int v = 0;
int directions = 0;
int j = 0;
int d = 0;
const float4 x_59 = gl_FragCoord;
const float2 x_62 = asfloat(x_7[0].xy);
pos = (float2(x_59.x, x_59.y) / x_62);
const float x_65 = pos.x;
const float x_69 = pos.y;
ipos = int2(int((x_65 * 16.0f)), int((x_69 * 16.0f)));
i = 0;
{
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>
2022-09-29 16:53:58 +00:00
for(; (i < 256); i = (i + 1)) {
map[i] = 0;
}
}
p = (0).xx;
canwalk = true;
v = 0;
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>
2022-09-29 16:53:58 +00:00
while (true) {
bool x_104 = false;
bool x_124 = false;
bool x_144 = false;
bool x_164 = false;
bool x_105_phi = false;
bool x_125_phi = false;
bool x_145_phi = false;
bool x_165_phi = false;
v = (v + 1);
directions = 0;
const int x_91 = p.x;
const bool x_92 = (x_91 > 0);
x_105_phi = x_92;
if (x_92) {
const int x_96 = p.x;
const int x_99 = p.y;
const int x_103 = map[((x_96 - 2) + (x_99 * 16))];
x_104 = (x_103 == 0);
x_105_phi = x_104;
}
if (x_105_phi) {
directions = (directions + 1);
}
const int x_111 = p.y;
const bool x_112 = (x_111 > 0);
x_125_phi = x_112;
if (x_112) {
const int x_116 = p.x;
const int x_118 = p.y;
const int x_123 = map[(x_116 + ((x_118 - 2) * 16))];
x_124 = (x_123 == 0);
x_125_phi = x_124;
}
if (x_125_phi) {
directions = (directions + 1);
}
const int x_131 = p.x;
const bool x_132 = (x_131 < 14);
x_145_phi = x_132;
if (x_132) {
const int x_136 = p.x;
const int x_139 = p.y;
const int x_143 = map[((x_136 + 2) + (x_139 * 16))];
x_144 = (x_143 == 0);
x_145_phi = x_144;
}
if (x_145_phi) {
directions = (directions + 1);
}
const int x_151 = p.y;
const bool x_152 = (x_151 < 14);
x_165_phi = x_152;
if (x_152) {
const int x_156 = p.x;
const int x_158 = p.y;
const int x_163 = map[(x_156 + ((x_158 + 2) * 16))];
x_164 = (x_163 == 0);
x_165_phi = x_164;
}
if (x_165_phi) {
directions = (directions + 1);
}
bool x_229 = false;
bool x_242 = false;
bool x_281 = false;
int x_288 = 0;
int x_289 = 0;
int x_295 = 0;
int x_296 = 0;
int x_303[256] = (int[256])0;
int x_304[256] = (int[256])0;
int x_315 = 0;
int x_316 = 0;
bool x_359 = false;
bool x_372 = false;
bool x_411 = false;
bool x_424 = false;
bool x_230_phi = false;
bool x_243_phi = false;
bool x_282_phi = false;
int x_290_phi = 0;
int x_297_phi = 0;
int x_305_phi[256] = (int[256])0;
int x_317_phi = 0;
bool x_360_phi = false;
bool x_373_phi = false;
bool x_412_phi = false;
bool x_425_phi = false;
if ((directions == 0)) {
canwalk = false;
i = 0;
{
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>
2022-09-29 16:53:58 +00:00
for(; (i < 8); i = (i + 1)) {
j = 0;
{
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>
2022-09-29 16:53:58 +00:00
for(; (j < 8); j = (j + 1)) {
const int x_196 = map[((j * 2) + ((i * 2) * 16))];
if ((x_196 == 0)) {
p.x = (j * 2);
p.y = (i * 2);
canwalk = true;
}
}
}
}
}
const int x_211 = p.x;
const int x_213 = p.y;
map[(x_211 + (x_213 * 16))] = 1;
} else {
d = (v % (directions == 0 ? 1 : directions));
v = (v + directions);
const bool x_224 = (d >= 0);
x_230_phi = x_224;
if (x_224) {
const int x_228 = p.x;
x_229 = (x_228 > 0);
x_230_phi = x_229;
}
const bool x_230 = x_230_phi;
x_243_phi = x_230;
if (x_230) {
const int x_234 = p.x;
const int x_237 = p.y;
const int x_241 = map[((x_234 - 2) + (x_237 * 16))];
x_242 = (x_241 == 0);
x_243_phi = x_242;
}
if (x_243_phi) {
d = (d - 1);
const int x_249 = p.x;
const int x_251 = p.y;
map[(x_249 + (x_251 * 16))] = 1;
const int x_256 = p.x;
const int x_259 = p.y;
map[((x_256 - 1) + (x_259 * 16))] = 1;
const int x_264 = p.x;
const int x_267 = p.y;
map[((x_264 - 2) + (x_267 * 16))] = 1;
const int x_272 = p.x;
p.x = (x_272 - 2);
}
const bool x_276 = (d >= 0);
x_282_phi = x_276;
if (x_276) {
const int x_280 = p.y;
x_281 = (x_280 > 0);
x_282_phi = x_281;
}
const bool x_282 = x_282_phi;
if (x_282) {
x_288 = p.x;
x_290_phi = x_288;
} else {
x_289 = 0;
x_290_phi = x_289;
}
const int x_290 = x_290_phi;
if (x_282) {
x_295 = p.y;
x_297_phi = x_295;
} else {
x_296 = 0;
x_297_phi = x_296;
}
const int x_299 = ((x_297_phi - 2) * 16);
if (x_282) {
x_303 = map;
x_305_phi = x_303;
} else {
const int tint_symbol_4[256] = (int[256])0;
x_304 = tint_symbol_4;
x_305_phi = x_304;
}
const int x_305[256] = x_305_phi;
if (x_282) {
const int tint_symbol_5[256] = (int[256])0;
map = tint_symbol_5;
}
if (x_282) {
map = x_305;
}
if (x_282) {
x_315 = map[(x_290 + x_299)];
x_317_phi = x_315;
} else {
x_316 = 0;
x_317_phi = x_316;
}
const bool x_318 = (x_317_phi == 0);
if ((x_282 ? x_318 : x_282)) {
d = (d - 1);
const int x_326 = p.x;
const int x_328 = p.y;
map[(x_326 + (x_328 * 16))] = 1;
const int x_333 = p.x;
const int x_335 = p.y;
map[(x_333 + ((x_335 - 1) * 16))] = 1;
const int x_341 = p.x;
const int x_343 = p.y;
const int x_345[256] = map;
const int tint_symbol_6[256] = (int[256])0;
map = tint_symbol_6;
map = x_345;
map[(x_341 + ((x_343 - 2) * 16))] = 1;
const int x_350 = p.y;
p.y = (x_350 - 2);
}
const bool x_354 = (d >= 0);
x_360_phi = x_354;
if (x_354) {
const int x_358 = p.x;
x_359 = (x_358 < 14);
x_360_phi = x_359;
}
const bool x_360 = x_360_phi;
x_373_phi = x_360;
if (x_360) {
const int x_364 = p.x;
const int x_367 = p.y;
const int x_371 = map[((x_364 + 2) + (x_367 * 16))];
x_372 = (x_371 == 0);
x_373_phi = x_372;
}
if (x_373_phi) {
d = (d - 1);
const int x_379 = p.x;
const int x_381 = p.y;
map[(x_379 + (x_381 * 16))] = 1;
const int x_386 = p.x;
const int x_389 = p.y;
map[((x_386 + 1) + (x_389 * 16))] = 1;
const int x_394 = p.x;
const int x_397 = p.y;
map[((x_394 + 2) + (x_397 * 16))] = 1;
const int x_402 = p.x;
p.x = (x_402 + 2);
}
const bool x_406 = (d >= 0);
x_412_phi = x_406;
if (x_406) {
const int x_410 = p.y;
x_411 = (x_410 < 14);
x_412_phi = x_411;
}
const bool x_412 = x_412_phi;
x_425_phi = x_412;
if (x_412) {
const int x_416 = p.x;
const int x_418 = p.y;
const int x_423 = map[(x_416 + ((x_418 + 2) * 16))];
x_424 = (x_423 == 0);
x_425_phi = x_424;
}
if (x_425_phi) {
d = (d - 1);
const int x_431 = p.x;
const int x_433 = p.y;
map[(x_431 + (x_433 * 16))] = 1;
const int x_438 = p.x;
const int x_440 = p.y;
map[(x_438 + ((x_440 + 1) * 16))] = 1;
const int x_446 = p.x;
const int x_448 = p.y;
map[(x_446 + ((x_448 + 2) * 16))] = 1;
const int x_454 = p.y;
p.y = (x_454 + 2);
}
}
const int x_458 = ipos.y;
const int x_461 = ipos.x;
const int x_464 = map[((x_458 * 16) + x_461)];
if ((x_464 == 1)) {
x_GLF_color = (1.0f).xxxx;
return;
}
{
if (canwalk) {
} else {
break;
}
}
}
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_7 = {x_GLF_color};
return tint_symbol_7;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}