From 28a0ca96a1ad2a3f0e09cc97b866f3b6338a09fa Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Wed, 25 Mar 2020 14:08:21 -0400 Subject: Better diagnostics on failure on CUDA. (#1288) * Better diagnostics on failure on CUDA. * Catch exceptions in render-test * * Added ability to disable reporting on CUDA failures * Stopped using exception for reporting (just write to StdWriter::out() * Removed CUDAResult type * Don't set arch type on nvrtc to see if fixes CI issues. * Try compute_30 on CUDA. * Added ability to IGNORE_ a test DIsabled rw-texture-simple and texture-get-dimensions * Disable tests that require CUDA SM7.0 Use DISABLE_ prefix to disable tests. * Disable signalUnexpectedError doing printf. --- tools/render-test/render-test-main.cpp | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'tools/render-test/render-test-main.cpp') diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp index 4f5d1e9bb..ab041b5bc 100644 --- a/tools/render-test/render-test-main.cpp +++ b/tools/render-test/render-test-main.cpp @@ -406,7 +406,7 @@ Result RenderTestApp::update(Window* window) } // namespace renderer_test -SLANG_TEST_TOOL_API SlangResult innerMain(Slang::StdWriters* stdWriters, SlangSession* session, int argcIn, const char*const* argvIn) +static SlangResult _innerMain(Slang::StdWriters* stdWriters, SlangSession* session, int argcIn, const char*const* argvIn) { using namespace renderer_test; using namespace Slang; @@ -694,6 +694,29 @@ SLANG_TEST_TOOL_API SlangResult innerMain(Slang::StdWriters* stdWriters, SlangSe } } +SLANG_TEST_TOOL_API SlangResult innerMain(Slang::StdWriters* stdWriters, SlangSession* session, int argcIn, const char*const* argvIn) +{ + using namespace Slang; + + SlangResult res = SLANG_FAIL; + try + { + res = _innerMain(stdWriters, session, argcIn, argvIn); + } + catch (const Slang::Exception& exception) + { + stdWriters->getOut().put(exception.Message.getUnownedSlice()); + return SLANG_FAIL; + } + catch (...) + { + stdWriters->getOut().put(UnownedStringSlice::fromLiteral("Unhandled exception")); + return SLANG_FAIL; + } + + return res; +} + int main(int argc, char** argv) { using namespace Slang; -- cgit v1.2.3