Commit 2e4c069a by Alexis Hetu Committed by Alexis Hétu

Maximum call stack depth increase

dEQP requires a stack depth of at least 33 for all tests to pass. Since the stack depth in swiftshader is arbitrary and doesn't actually depend on hardware, the maximum stack depth was increased from 16 to 64. Also added a bit of log info to make debugging easier. Fixes 2 dEQP tests: dEQP-GLES3.performance.compiler.optimization.function_inlining.32_nested_* Change-Id: I95ae335977d4eb3b21a54296b7fc5e6019595e66 Reviewed-on: https://swiftshader-review.googlesource.com/16328Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent 88e7dcfb
...@@ -227,7 +227,11 @@ bool TCompiler::validateCallDepth(TIntermNode *root, TInfoSink &infoSink) ...@@ -227,7 +227,11 @@ bool TCompiler::validateCallDepth(TIntermNode *root, TInfoSink &infoSink)
else if(depth > maxCallStackDepth) else if(depth > maxCallStackDepth)
{ {
infoSink.info.prefix(EPrefixError); infoSink.info.prefix(EPrefixError);
infoSink.info << "Function call stack too deep"; infoSink.info << "Function call stack too deep (depth was ";
infoSink.info << depth;
infoSink.info << " while maximum call stack depth is ";
infoSink.info << maxCallStackDepth;
infoSink.info << ")";
return false; return false;
} }
......
...@@ -181,7 +181,7 @@ TranslatorASM *Shader::createCompiler(GLenum shaderType) ...@@ -181,7 +181,7 @@ TranslatorASM *Shader::createCompiler(GLenum shaderType)
resources.OES_fragment_precision_high = 1; resources.OES_fragment_precision_high = 1;
resources.OES_EGL_image_external = 1; resources.OES_EGL_image_external = 1;
resources.EXT_draw_buffers = 1; resources.EXT_draw_buffers = 1;
resources.MaxCallStackDepth = 16; resources.MaxCallStackDepth = 64;
assembler->Init(resources); assembler->Init(resources);
return assembler; return assembler;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment