From b5b3a8d36c09631cbd4cf236c0280a314436748d Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 3 Sep 2019 14:36:55 -0400 Subject: CPU uniform entry point params (#1041) * * Made entry point parameters a separate entry point * Made CPUMemoryBinding work with entry point parameters/initialize constant buffers * Added isCPUOnly to bindings, because entry point parameters do not layout like constant buffer * entry-point-uniform.slang works on CPU * EntryPointParams -> UniformEntryPointParams Updated CPU documentation. * Update cpu-target.md to removed completed issues. * Only allocate CPU buffers if the size is > 0. Small update to cpu-target doc. --- tools/render-test/render-test-main.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'tools/render-test/render-test-main.cpp') diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp index ef3613240..440ba9c82 100644 --- a/tools/render-test/render-test-main.cpp +++ b/tools/render-test/render-test-main.cpp @@ -294,6 +294,7 @@ static SlangResult _compile(SlangSession* session, const String& sourcePath, Opt // Parse the layout layout.parse(sourceText.getBuffer()); + layout.updateForTarget(input.target); // Setup SourceInfo ShaderCompileRequest::SourceInfo sourceInfo; @@ -420,7 +421,7 @@ static SlangResult _doCPUCompute(SlangSession* session, const String& sourcePath auto request = output.compileOutput.request; struct UniformState; - typedef void(*Func)(CPPPrelude::ComputeVaryingInput* varyingInput, UniformState* uniformState); + typedef void(*Func)(CPPPrelude::ComputeVaryingInput* varyingInput, CPPPrelude::UniformEntryPointParams* params, UniformState* uniformState); auto reflection = (slang::ShaderReflection*) spGetReflection(request); @@ -442,7 +443,7 @@ static SlangResult _doCPUCompute(SlangSession* session, const String& sourcePath } CPUMemoryBinding binding; - binding.init(reflection); + SLANG_RETURN_ON_FAIL(binding.init(reflection, 0)); List buffers; @@ -645,6 +646,7 @@ static SlangResult _doCPUCompute(SlangSession* session, const String& sourcePath { UniformState* uniformState = (UniformState*)binding.m_rootBuffer.m_data; + CPPPrelude::UniformEntryPointParams* params = (CPPPrelude::UniformEntryPointParams*)binding.m_entryPointBuffer.m_data; CPPPrelude::ComputeVaryingInput varying; varying.groupID = {}; @@ -659,7 +661,7 @@ static SlangResult _doCPUCompute(SlangSession* session, const String& sourcePath { varying.groupThreadID.x = x; - func(&varying, uniformState); + func(&varying, params, uniformState); } } } -- cgit v1.2.3