summaryrefslogtreecommitdiffstats
path: root/tools/render-test/shader-input-layout.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2019-08-19 14:08:57 -0400
committerGitHub <noreply@github.com>2019-08-19 14:08:57 -0400
commitdc6d0417b137c8ecdcb3b99b7624358bba7fefa8 (patch)
tree326fe7f93b08431685c6b01052c2eee18168776b /tools/render-test/shader-input-layout.cpp
parentc4541e83b4a57d8317932bc4277ee6a2d45bb2f6 (diff)
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.
Diffstat (limited to 'tools/render-test/shader-input-layout.cpp')
-rw-r--r--tools/render-test/shader-input-layout.cpp30
1 files changed, 29 insertions, 1 deletions
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(",");
}