From 0ee4d4b54732239b946bae7fde32bb21aa5a3ec3 Mon Sep 17 00:00:00 2001 From: "YONGH\\yongh" Date: Fri, 20 Oct 2017 18:24:30 -0400 Subject: in-progress work: allow render-test to generate and bind various resource inputs for running test shaders with arbitrary parameter definitions. This commit contains the parser of the resource input definition. --- source/slang/bytecode.h | 2 +- source/slang/check.cpp | 3 ++- source/slang/emit.cpp | 1 + source/slang/glsl.meta.slang.h | 2 +- source/slang/ir.cpp | 6 +++--- source/slang/lower-to-ir.cpp | 1 + 6 files changed, 9 insertions(+), 6 deletions(-) (limited to 'source/slang') diff --git a/source/slang/bytecode.h b/source/slang/bytecode.h index f38007ba9..75b9f15cd 100644 --- a/source/slang/bytecode.h +++ b/source/slang/bytecode.h @@ -243,7 +243,7 @@ struct BCHeader // entry points for each target. }; -struct CompileRequest; +class CompileRequest; void generateBytecodeForCompileRequest( CompileRequest* compileReq); diff --git a/source/slang/check.cpp b/source/slang/check.cpp index f12e7e55d..5ebb22999 100644 --- a/source/slang/check.cpp +++ b/source/slang/check.cpp @@ -4,6 +4,7 @@ #include "compiler.h" #include "visitor.h" +#include "../core/secure-crt.h" #include namespace Slang @@ -4887,7 +4888,7 @@ namespace Slang if (auto decl = dynamic_cast(candidate.item.declRef.decl)) { char buffer[1024]; - sprintf(buffer, "[this:%p, primary:%p, next:%p]", + sprintf_s(buffer, sizeof(buffer), "[this:%p, primary:%p, next:%p]", decl, decl->primaryDecl, decl->nextDecl); diff --git a/source/slang/emit.cpp b/source/slang/emit.cpp index 971f0345b..da9489a75 100644 --- a/source/slang/emit.cpp +++ b/source/slang/emit.cpp @@ -4517,6 +4517,7 @@ emitDeclImpl(decl, nullptr); switch(inst->op) { + case 0: // nothing yet default: emit(getIRName(inst)); break; diff --git a/source/slang/glsl.meta.slang.h b/source/slang/glsl.meta.slang.h index e43a51ea9..a4aade3c2 100644 --- a/source/slang/glsl.meta.slang.h +++ b/source/slang/glsl.meta.slang.h @@ -173,7 +173,7 @@ sb << "syntax patch : GLSLPatchModifier;\n"; // [GLSL 4.5] Interpolation Qualifiers sb << "syntax smooth : SimpleModifier;\n"; sb << "syntax flat : SimpleModifier;\n"; -sb << "syntax noperspectie : SimpleModifier;\n"; +sb << "syntax noperspective : SimpleModifier;\n"; // [GLSL 4.3.2] Constant Qualifier diff --git a/source/slang/ir.cpp b/source/slang/ir.cpp index 5ace50397..4bf9de5d3 100644 --- a/source/slang/ir.cpp +++ b/source/slang/ir.cpp @@ -1614,9 +1614,9 @@ namespace Slang // There are several ops we want to special-case here, // so that they will be more pleasant to look at. // +#if 0 switch (op) { -#if 0 case kIROp_Module: dumpIndent(context); dump(context, "module\n"); @@ -1688,11 +1688,11 @@ namespace Slang dumpChildrenRaw(context, block); } return; -#endif default: break; } +#endif #if 0 // We also want to special-case based on the *type* @@ -2918,7 +2918,7 @@ namespace Slang // TODO: are there any instruction types that need to be handled // specially here? That would be anything that has more state // than is visible in its operand list... - + case 0: // nothing yet default: { // The common case is that we just need to construct a cloned diff --git a/source/slang/lower-to-ir.cpp b/source/slang/lower-to-ir.cpp index a3d67b670..327902e4a 100644 --- a/source/slang/lower-to-ir.cpp +++ b/source/slang/lower-to-ir.cpp @@ -338,6 +338,7 @@ LoweredValInfo emitCallToVal( auto builder = context->irBuilder; switch (funcVal.flavor) { + case LoweredValInfo::Flavor::None: default: return LoweredValInfo::simple( builder->emitCallInst(type, getSimpleVal(context, funcVal), argCount, args)); -- cgit v1.2.3