You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.8 KiB
44 lines
1.8 KiB
using UnityEngine.Rendering.RenderGraphModule.NativeRenderPassCompiler;
|
|
|
|
namespace UnityEngine.Rendering.RenderGraphModule
|
|
{
|
|
public partial class RenderGraph
|
|
{
|
|
//TODO(ddebaets) move old compile func/members over
|
|
|
|
NativePassCompiler nativeCompiler = null;
|
|
|
|
internal NativePassCompiler CompileNativeRenderGraph(int graphHash)
|
|
{
|
|
using (new ProfilingScope(m_RenderGraphContext.cmd, ProfilingSampler.Get(RenderGraphProfileId.CompileRenderGraph)))
|
|
{
|
|
if (nativeCompiler == null)
|
|
nativeCompiler = new NativePassCompiler(m_CompilationCache);
|
|
|
|
bool compilationIsCached = nativeCompiler.Initialize(m_Resources, m_RenderPasses, m_DebugParameters, name, m_EnableCompilationCaching, graphHash, m_ExecutionCount, m_renderTextureUVOriginStrategy);
|
|
if (!compilationIsCached)
|
|
nativeCompiler.Compile(m_Resources);
|
|
|
|
ref var passData = ref nativeCompiler.contextData.passData;
|
|
int numPasses = passData.Length;
|
|
for (int i = 0; i < numPasses; ++i)
|
|
{
|
|
if (!passData.ElementAt(i).culled)
|
|
m_RendererLists.AddRange(m_RenderPasses[i].usedRendererListList);
|
|
}
|
|
|
|
m_Resources.CreateRendererLists(m_RendererLists, m_RenderGraphContext.renderContext, m_RendererListCulling);
|
|
|
|
return nativeCompiler;
|
|
}
|
|
}
|
|
|
|
void ExecuteNativeRenderGraph()
|
|
{
|
|
using (new ProfilingScope(m_RenderGraphContext.cmd, ProfilingSampler.Get(RenderGraphProfileId.ExecuteRenderGraph)))
|
|
{
|
|
nativeCompiler.ExecuteGraph(m_RenderGraphContext, m_Resources, m_RenderPasses);
|
|
}
|
|
}
|
|
}
|
|
}
|