From dc6d0417b137c8ecdcb3b99b7624358bba7fefa8 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Mon, 19 Aug 2019 14:08:57 -0400 Subject: WIP: Compute test running on CPU (#1023) * * Simplify some of test code around CPPCompiler * Test using 'callable' with pass-through * Small cpu doc improvements * Improvements to Clang output parsing. * Remove temporary file (base filename) . * Improve handling of external errors - handle severity. * On error dumping out to 'actual' file for runCPPCompilerCompile. * Small fixes. Set the source language type correctly for pass thru. * Remove warning for test for clang backend c * Preliminary work around making render-test compute potentiall work with CPU. Made ShaderCompiler -> a stateless ShaderCompilerUtil. Means we don't require a Renderer interface to do shader compilation. * Refactor such that CPU test can take place in without Window or Renderer. * Hack to look for prelude in source file directory. Fix bug returning the SharedLibrary for HostCallable. * Compute test running on CPU. * Need the prelude currently in same directly as test. * Hack to remove warning - that then produces an error on appveyor build. Disable running render CPU test on non-windows. * Improve handling of disabling CPU tests on linux. * Added bit-cast.slang working on CPU. --- tools/render-test/shader-input-layout.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'tools/render-test/shader-input-layout.cpp') diff --git a/tools/render-test/shader-input-layout.cpp b/tools/render-test/shader-input-layout.cpp index 8205c979e..e555ee6ca 100644 --- a/tools/render-test/shader-input-layout.cpp +++ b/tools/render-test/shader-input-layout.cpp @@ -6,7 +6,23 @@ namespace renderer_test { using namespace Slang; - void ShaderInputLayout::Parse(const char * source) + + + Index ShaderInputLayout::findEntryIndexByName(const String& name) const + { + const Index count = Index(entries.getCount()); + for (Index i = 0; i < count; ++i) + { + const auto& entry = entries[i]; + if (entry.name == name) + { + return Index(i); + } + } + return -1; + } + + void ShaderInputLayout::parse(const char * source) { entries.clear(); globalGenericTypeArguments.clear(); @@ -267,6 +283,18 @@ namespace renderer_test parser.ReadToken(); entry.isOutput = true; } + else if (parser.LookAhead("name")) + { + parser.ReadToken(); + Token nameToken = parser.ReadToken(); + + if (nameToken.Type != TokenType::Identifier) + { + throw TextFormatException("Invalid input syntax at line " + parser.NextToken().Position.Line); + } + entry.name = nameToken.Content; + } + if (parser.LookAhead(",")) parser.Read(","); } -- cgit v1.2.3