From 2f44d9e01234911dd563f0456b9d861fd8db286d Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 18 Oct 2021 12:19:45 -0700 Subject: GFX: implement mutable shader objects. (#1963) * GFX: implement mutable shader objects. * Revert unnecessary changes * Revert more changes. * Fix clang errors. * Fix clang/gcc errors. * Fix clang errors. * Remove CPU test. * Fix after merge. * Fix after merge. * Remove gl test * Code review fixes. * Fixing all vk validation errors. * Flush test output more often. * Fix a crash in `specializeDynamicAssociatedTypeLookup`. * temporarily disable std-lib-serialize test to see what happens * Fix crashes. * Make sure cpu gfx unit tests are properly disabled on TeamCity. * Disable cpu test. * Fix. * Fix cuda. * Disable nv-ray-tracing-motion-blur Co-authored-by: Yong He --- tools/slang-test/options.cpp | 4 ++++ tools/slang-test/options.h | 3 +++ tools/slang-test/slang-test-main.cpp | 8 +++++++- tools/slang-test/test-reporter.cpp | 4 +++- 4 files changed, 17 insertions(+), 2 deletions(-) (limited to 'tools/slang-test') diff --git a/tools/slang-test/options.cpp b/tools/slang-test/options.cpp index 27b759a0e..fa7f332b0 100644 --- a/tools/slang-test/options.cpp +++ b/tools/slang-test/options.cpp @@ -266,6 +266,10 @@ static bool _isSubCommand(const char* arg) return res; } } + else if (strcmp(arg, "-skip-api-detection") == 0) + { + optionsOut->skipApiDetection = true; + } else { stdError.print("unknown option '%s'\n", arg); diff --git a/tools/slang-test/options.h b/tools/slang-test/options.h index a8c2e3852..eacbc7acb 100644 --- a/tools/slang-test/options.h +++ b/tools/slang-test/options.h @@ -61,6 +61,9 @@ struct Options // force generation of baselines for HLSL tests bool generateHLSLBaselines = false; + // Whether to skip the step of creating test devices to check if an API is actually available. + bool skipApiDetection = false; + // Dump expected/actual output on failures, for debugging. // This is especially intended for use in continuous // integration builds. diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp index 6fb270c35..8f7c7e35b 100644 --- a/tools/slang-test/slang-test-main.cpp +++ b/tools/slang-test/slang-test-main.cpp @@ -897,6 +897,11 @@ static RenderApiFlags _getAvailableRenderApiFlags(TestContext* context) // See if it's possible the api is available if (RenderApiUtil::calcHasApi(apiType)) { + if (context->options.skipApiDetection) + { + availableRenderApiFlags |= RenderApiFlags(1) << int(apiType); + continue; + } // Try starting up the device CommandLine cmdLine; cmdLine.setExecutablePath(Path::combine(context->options.binDir, String("render-test") + ProcessUtil::getExecutableSuffix())); @@ -908,7 +913,6 @@ static RenderApiFlags _getAvailableRenderApiFlags(TestContext* context) StringBuilder builder; builder << "-" << RenderApiUtil::getApiName(apiType); cmdLine.addArg(builder); - // Run the render-test tool and see if the device could startup ExecuteResult exeRes; if (SLANG_SUCCEEDED(spawnAndWaitSharedLibrary(context, "device-startup", cmdLine, exeRes)) @@ -3337,6 +3341,8 @@ static void _disableCPPBackends(TestContext* context) for (auto passThru : cppPassThrus) { context->availableBackendFlags &= ~(PassThroughFlags(1) << int(passThru)); + context->availableRenderApiFlags &= ~(RenderApiFlag::CPU); + context->options.enabledApis &= ~(RenderApiFlag::CPU); } } diff --git a/tools/slang-test/test-reporter.cpp b/tools/slang-test/test-reporter.cpp index 84bcaa32c..8000fd2a5 100644 --- a/tools/slang-test/test-reporter.cpp +++ b/tools/slang-test/test-reporter.cpp @@ -338,6 +338,7 @@ void TestReporter::_addResult(const TestInfo& info) _appendTime(info.executionTime, buffer); } printf("%s test: '%S' %s\n", resultString, info.name.toWString().begin(), buffer.getBuffer()); + fflush(stdout); }; switch (m_outputMode) @@ -498,7 +499,7 @@ void TestReporter::message(TestMessageType type, const String& message) { fputs(message.getBuffer(), stderr); } - + fflush(stderr); // Just dump out if can dump out return; } @@ -515,6 +516,7 @@ void TestReporter::message(TestMessageType type, const String& message) { fputs(message.getBuffer(), stderr); } + fflush(stderr); } if (m_currentMessage.getLength() > 0) -- cgit v1.2.3