diff options
Diffstat (limited to 'tools/render-test/render-test-main.cpp')
| -rw-r--r-- | tools/render-test/render-test-main.cpp | 43 |
1 files changed, 14 insertions, 29 deletions
diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp index a167a4a27..b0d6c44e0 100644 --- a/tools/render-test/render-test-main.cpp +++ b/tools/render-test/render-test-main.cpp @@ -154,28 +154,28 @@ protected: struct AssignValsFromLayoutContext { IDevice* device; - slang::ISession* slangSession; + slang::IComponentType* slangComponent; ShaderOutputPlan& outputPlan; TestResourceContext& resourceContext; - slang::ProgramLayout* slangReflection; IAccelerationStructure* accelerationStructure; AssignValsFromLayoutContext( IDevice* device, - slang::ISession* slangSession, + slang::IComponentType* slangComponent, ShaderOutputPlan& outputPlan, TestResourceContext& resourceContext, - slang::ProgramLayout* slangReflection, IAccelerationStructure* accelerationStructure) : device(device) - , slangSession(slangSession) + , slangComponent(slangComponent) , outputPlan(outputPlan) , resourceContext(resourceContext) - , slangReflection(slangReflection) , accelerationStructure(accelerationStructure) { } + slang::ProgramLayout* slangReflection() { return slangComponent->getLayout(); } + slang::ISession* slangSession() { return slangComponent->getSession(); } + void maybeAddOutput( ShaderCursor const& dstCursor, ShaderInputLayout::Val* srcVal, @@ -389,7 +389,7 @@ struct AssignValsFromLayoutContext // If the input line specified the name of the type // to allocate, then we use it directly. // - slangType = slangReflection->findTypeByName(typeName.getBuffer()); + slangType = slangReflection()->findTypeByName(typeName.getBuffer()); } else { @@ -418,7 +418,7 @@ struct AssignValsFromLayoutContext ComPtr<IShaderObject> shaderObject; device->createShaderObject( - slangSession, + slangSession(), slangType, ShaderObjectContainerType::None, shaderObject.writeRef()); @@ -437,7 +437,7 @@ struct AssignValsFromLayoutContext List<slang::SpecializationArg> args; for (auto& typeName : srcVal->typeArgs) { - auto slangType = slangReflection->findTypeByName(typeName.getBuffer()); + auto slangType = slangReflection()->findTypeByName(typeName.getBuffer()); if (!slangType) { StdWriters::getError().print( @@ -516,42 +516,30 @@ struct AssignValsFromLayoutContext } }; -SlangResult _assignVarsFromLayout( +static SlangResult _assignVarsFromLayout( IDevice* device, - slang::ISession* slangSession, + slang::IComponentType* slangComponent, IShaderObject* shaderObject, ShaderInputLayout const& layout, ShaderOutputPlan& ioOutputPlan, TestResourceContext& ioResourceContext, - slang::ProgramLayout* slangReflection, IAccelerationStructure* accelerationStructure) { - AssignValsFromLayoutContext context( - device, - slangSession, - ioOutputPlan, - ioResourceContext, - slangReflection, - accelerationStructure); + AssignValsFromLayoutContext + context(device, slangComponent, ioOutputPlan, ioResourceContext, accelerationStructure); ShaderCursor rootCursor = ShaderCursor(shaderObject); return context.assign(rootCursor, layout.rootVal); } Result RenderTestApp::applyBinding(IShaderObject* rootObject) { - auto slangReflection = (slang::ProgramLayout*)spGetReflection( - m_compilationOutput.output.getRequestForReflection()); - ComPtr<slang::ISession> slangSession; - m_compilationOutput.output.m_requestForKernels->getSession(slangSession.writeRef()); - return _assignVarsFromLayout( m_device, - slangSession, + m_compilationOutput.output.slangProgram, rootObject, m_compilationOutput.layout, m_outputPlan, m_resourceContext, - slangReflection, m_topLevelAccelerationStructure); } @@ -1086,9 +1074,6 @@ Result RenderTestApp::update() m_options.shaderType == Options::ShaderProgramType::GraphicsMeshCompute || m_options.shaderType == Options::ShaderProgramType::GraphicsTaskMeshCompute) { - auto request = m_compilationOutput.output.getRequestForReflection(); - auto slangReflection = (slang::ShaderReflection*)spGetReflection(request); - SLANG_RETURN_ON_FAIL(writeBindingOutput(m_options.outputPath)); } else |
