diff options
| author | Yong He <yonghe@outlook.com> | 2020-12-03 08:23:05 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-03 08:23:05 -0800 |
| commit | 44c0a56974b664e50b2cb8cb6f10740b19c4e02f (patch) | |
| tree | d6141003be376bdb2c0037178b649b6b2aae673e /tools/render-test/slang-support.h | |
| parent | ad5dda9261bae63e32bcb914b109fcb5c92faf25 (diff) | |
Add shader object parameter binding to renderer_test. (#1622)
* Add shader object parameter binding to renderer_test.
* remove multiple-definitions.hlsl
* Fix cuda implementation.
Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'tools/render-test/slang-support.h')
| -rw-r--r-- | tools/render-test/slang-support.h | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/tools/render-test/slang-support.h b/tools/render-test/slang-support.h index 5e38c8c69..a0a7ef276 100644 --- a/tools/render-test/slang-support.h +++ b/tools/render-test/slang-support.h @@ -10,6 +10,8 @@ namespace renderer_test { +gfx::StageType translateStage(SlangStage slangStage); + struct ShaderCompilerUtil { struct Input @@ -42,19 +44,21 @@ struct ShaderCompilerUtil } kernelDescs.clear(); - if (request && session) + if (m_requestForKernels && session) + { + spDestroyCompileRequest(m_requestForKernels); + } + if (m_extraRequestForReflection && session) { - spDestroyCompileRequest(request); + spDestroyCompileRequest(m_extraRequestForReflection); } session = nullptr; - request = nullptr; + m_requestForKernels = nullptr; + m_extraRequestForReflection = nullptr; } ~Output() { - if (request && session) - { - spDestroyCompileRequest(request); - } + reset(); } Slang::Index findKernelDescIndex(gfx::StageType stage) const @@ -71,7 +75,16 @@ struct ShaderCompilerUtil List<ShaderProgram::KernelDesc> kernelDescs; ShaderProgram::Desc desc; - SlangCompileRequest* request = nullptr; + + /// Compile request that owns the lifetime of compiled kernel code. + SlangCompileRequest* m_requestForKernels = nullptr; + + /// Compile request that owns the lifetime of reflection information. + SlangCompileRequest* m_extraRequestForReflection = nullptr; + + SlangCompileRequest* getRequestForKernels() const { return m_requestForKernels; } + SlangCompileRequest* getRequestForReflection() const { return m_extraRequestForReflection ? m_extraRequestForReflection : m_requestForKernels; } + SlangSession* session = nullptr; }; @@ -87,6 +100,7 @@ struct ShaderCompilerUtil static SlangResult readSource(const Slang::String& inSourcePath, List<char>& outSourceText); + static SlangResult _compileProgramImpl(SlangSession* session, const Options& options, const Input& input, const ShaderCompileRequest& request, Output& out); static SlangResult compileProgram(SlangSession* session, const Options& options, const Input& input, const ShaderCompileRequest& request, Output& out); }; |
