|
@@ -1531,6 +1531,16 @@ ANKI_TEST(Gr, 3DTextures)
|
|
|
COMMON_END()
|
|
COMMON_END()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+static RenderTargetDescription newRTDescr(CString name)
|
|
|
|
|
+{
|
|
|
|
|
+ RenderTargetDescription texInf(name);
|
|
|
|
|
+ texInf.m_width = texInf.m_height = 16;
|
|
|
|
|
+ texInf.m_usage = TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE | TextureUsageBit::SAMPLED_FRAGMENT;
|
|
|
|
|
+ texInf.m_format = PixelFormat(ComponentFormat::R8G8B8A8, TransformFormat::UNORM);
|
|
|
|
|
+ texInf.bake();
|
|
|
|
|
+ return texInf;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
ANKI_TEST(Gr, RenderGraph)
|
|
ANKI_TEST(Gr, RenderGraph)
|
|
|
{
|
|
{
|
|
|
COMMON_BEGIN()
|
|
COMMON_BEGIN()
|
|
@@ -1541,16 +1551,16 @@ ANKI_TEST(Gr, RenderGraph)
|
|
|
|
|
|
|
|
const U GI_MIP_COUNT = 4;
|
|
const U GI_MIP_COUNT = 4;
|
|
|
|
|
|
|
|
- TextureInitInfo texInf("dummy tex");
|
|
|
|
|
- texInf.m_width = texInf.m_height = 16;
|
|
|
|
|
- texInf.m_usage = TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE | TextureUsageBit::SAMPLED_FRAGMENT;
|
|
|
|
|
- texInf.m_format = PixelFormat(ComponentFormat::R8G8B8A8, TransformFormat::UNORM);
|
|
|
|
|
- TexturePtr dummyTex = gr->newInstance<Texture>(texInf);
|
|
|
|
|
|
|
+ TextureInitInfo texI("dummy");
|
|
|
|
|
+ texI.m_width = texI.m_height = 16;
|
|
|
|
|
+ texI.m_usage = TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE | TextureUsageBit::SAMPLED_FRAGMENT;
|
|
|
|
|
+ texI.m_format = PixelFormat(ComponentFormat::R8G8B8A8, TransformFormat::UNORM);
|
|
|
|
|
+ TexturePtr dummyTex = gr->newInstance<Texture>(texI);
|
|
|
|
|
|
|
|
// SM
|
|
// SM
|
|
|
- RenderTargetHandle smScratchRt = descr.newRenderTarget("SM", texInf);
|
|
|
|
|
|
|
+ RenderTargetHandle smScratchRt = descr.newRenderTarget(newRTDescr("SM scratch"));
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("SM");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("SM");
|
|
|
pass.newConsumer({smScratchRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_READ_WRITE});
|
|
pass.newConsumer({smScratchRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_READ_WRITE});
|
|
|
pass.newProducer({smScratchRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_READ_WRITE});
|
|
pass.newProducer({smScratchRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_READ_WRITE});
|
|
|
}
|
|
}
|
|
@@ -1558,18 +1568,18 @@ ANKI_TEST(Gr, RenderGraph)
|
|
|
// SM to exponential SM
|
|
// SM to exponential SM
|
|
|
RenderTargetHandle smExpRt = descr.importRenderTarget("ESM", dummyTex, TextureUsageBit::SAMPLED_FRAGMENT);
|
|
RenderTargetHandle smExpRt = descr.importRenderTarget("ESM", dummyTex, TextureUsageBit::SAMPLED_FRAGMENT);
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("ESM");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("ESM");
|
|
|
pass.newConsumer({smScratchRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass.newConsumer({smScratchRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass.newConsumer({smExpRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({smExpRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newProducer({smExpRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newProducer({smExpRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// GI gbuff
|
|
// GI gbuff
|
|
|
- RenderTargetHandle giGbuffNormRt = descr.newRenderTarget("GI GBuff norm", texInf);
|
|
|
|
|
- RenderTargetHandle giGbuffDiffRt = descr.newRenderTarget("GI GBuff diff", texInf);
|
|
|
|
|
- RenderTargetHandle giGbuffDepthRt = descr.newRenderTarget("GI GBuff depth", texInf);
|
|
|
|
|
|
|
+ RenderTargetHandle giGbuffNormRt = descr.newRenderTarget(newRTDescr("GI GBuff norm"));
|
|
|
|
|
+ RenderTargetHandle giGbuffDiffRt = descr.newRenderTarget(newRTDescr("GI GBuff diff"));
|
|
|
|
|
+ RenderTargetHandle giGbuffDepthRt = descr.newRenderTarget(newRTDescr("GI GBuff depth"));
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("GI gbuff");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("GI gbuff");
|
|
|
pass.newConsumer({giGbuffNormRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({giGbuffNormRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer({giGbuffDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({giGbuffDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer({giGbuffDiffRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({giGbuffDiffRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
@@ -1583,7 +1593,7 @@ ANKI_TEST(Gr, RenderGraph)
|
|
|
RenderTargetHandle giGiLightRt = descr.importRenderTarget("GI light", dummyTex, TextureUsageBit::SAMPLED_FRAGMENT);
|
|
RenderTargetHandle giGiLightRt = descr.importRenderTarget("GI light", dummyTex, TextureUsageBit::SAMPLED_FRAGMENT);
|
|
|
for(U faceIdx = 0; faceIdx < 6; ++faceIdx)
|
|
for(U faceIdx = 0; faceIdx < 6; ++faceIdx)
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass =
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass =
|
|
|
descr.newGraphicsRenderPass(StringAuto(alloc).sprintf("GI lp%u", faceIdx).toCString());
|
|
descr.newGraphicsRenderPass(StringAuto(alloc).sprintf("GI lp%u", faceIdx).toCString());
|
|
|
pass.newConsumer(
|
|
pass.newConsumer(
|
|
|
{giGiLightRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE, TextureSurfaceInfo(0, 0, faceIdx, 0)});
|
|
{giGiLightRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE, TextureSurfaceInfo(0, 0, faceIdx, 0)});
|
|
@@ -1599,7 +1609,7 @@ ANKI_TEST(Gr, RenderGraph)
|
|
|
{
|
|
{
|
|
|
for(U faceIdx = 0; faceIdx < 6; ++faceIdx)
|
|
for(U faceIdx = 0; faceIdx < 6; ++faceIdx)
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass =
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass =
|
|
|
descr.newGraphicsRenderPass(StringAuto(alloc).sprintf("GI mip%u", faceIdx).toCString());
|
|
descr.newGraphicsRenderPass(StringAuto(alloc).sprintf("GI mip%u", faceIdx).toCString());
|
|
|
|
|
|
|
|
for(U mip = 0; mip < GI_MIP_COUNT; ++mip)
|
|
for(U mip = 0; mip < GI_MIP_COUNT; ++mip)
|
|
@@ -1612,12 +1622,12 @@ ANKI_TEST(Gr, RenderGraph)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Gbuffer
|
|
// Gbuffer
|
|
|
- RenderTargetHandle gbuffRt0 = descr.newRenderTarget("GBuff RT0", texInf);
|
|
|
|
|
- RenderTargetHandle gbuffRt1 = descr.newRenderTarget("GBuff RT1", texInf);
|
|
|
|
|
- RenderTargetHandle gbuffRt2 = descr.newRenderTarget("GBuff RT2", texInf);
|
|
|
|
|
- RenderTargetHandle gbuffDepth = descr.newRenderTarget("GBuff RT2", texInf);
|
|
|
|
|
|
|
+ RenderTargetHandle gbuffRt0 = descr.newRenderTarget(newRTDescr("GBuff RT0"));
|
|
|
|
|
+ RenderTargetHandle gbuffRt1 = descr.newRenderTarget(newRTDescr("GBuff RT1"));
|
|
|
|
|
+ RenderTargetHandle gbuffRt2 = descr.newRenderTarget(newRTDescr("GBuff RT2"));
|
|
|
|
|
+ RenderTargetHandle gbuffDepth = descr.newRenderTarget(newRTDescr("GBuff RT2"));
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("G-Buffer");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("G-Buffer");
|
|
|
pass.newConsumer({gbuffRt0, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({gbuffRt0, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer({gbuffRt1, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({gbuffRt1, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer({gbuffRt2, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({gbuffRt2, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
@@ -1630,68 +1640,68 @@ ANKI_TEST(Gr, RenderGraph)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Half depth
|
|
// Half depth
|
|
|
- RenderTargetHandle halfDepthRt = descr.newRenderTarget("Depth/2", texInf);
|
|
|
|
|
|
|
+ RenderTargetHandle halfDepthRt = descr.newRenderTarget(newRTDescr("Depth/2"));
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("HalfDepth");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("HalfDepth");
|
|
|
pass.newConsumer({gbuffDepth, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass.newConsumer({gbuffDepth, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass.newConsumer({halfDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({halfDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newProducer({halfDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newProducer({halfDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Quarter depth
|
|
// Quarter depth
|
|
|
- RenderTargetHandle quarterDepthRt = descr.newRenderTarget("Depth/4", texInf);
|
|
|
|
|
|
|
+ RenderTargetHandle quarterDepthRt = descr.newRenderTarget(newRTDescr("Depth/4"));
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("QuarterDepth");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("QuarterDepth");
|
|
|
pass.newConsumer({quarterDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({quarterDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer({halfDepthRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass.newConsumer({halfDepthRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass.newProducer({quarterDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newProducer({quarterDepthRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// SSAO
|
|
// SSAO
|
|
|
- RenderTargetHandle ssaoRt = descr.newRenderTarget("SSAO", texInf);
|
|
|
|
|
|
|
+ RenderTargetHandle ssaoRt = descr.newRenderTarget(newRTDescr("SSAO"));
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("SSAO main");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("SSAO main");
|
|
|
pass.newConsumer({ssaoRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({ssaoRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer({quarterDepthRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass.newConsumer({quarterDepthRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass.newConsumer({gbuffRt2, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass.newConsumer({gbuffRt2, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass.newProducer({ssaoRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newProducer({ssaoRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
|
|
|
|
|
- RenderTargetHandle ssaoVBlurRt = descr.newRenderTarget("SSAO tmp", texInf);
|
|
|
|
|
- GraphicsRenderPassInfo& pass2 = descr.newGraphicsRenderPass("SSAO vblur");
|
|
|
|
|
|
|
+ RenderTargetHandle ssaoVBlurRt = descr.newRenderTarget(newRTDescr("SSAO tmp"));
|
|
|
|
|
+ GraphicsRenderPassDescription& pass2 = descr.newGraphicsRenderPass("SSAO vblur");
|
|
|
pass2.newConsumer({ssaoRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass2.newConsumer({ssaoRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass2.newConsumer({ssaoVBlurRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass2.newConsumer({ssaoVBlurRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass2.newProducer({ssaoVBlurRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass2.newProducer({ssaoVBlurRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
|
|
|
|
|
- GraphicsRenderPassInfo& pass3 = descr.newGraphicsRenderPass("SSAO hblur");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass3 = descr.newGraphicsRenderPass("SSAO hblur");
|
|
|
pass3.newConsumer({ssaoRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass3.newConsumer({ssaoRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass3.newProducer({ssaoRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass3.newProducer({ssaoRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass3.newConsumer({ssaoVBlurRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass3.newConsumer({ssaoVBlurRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Volumetric
|
|
// Volumetric
|
|
|
- RenderTargetHandle volRt = descr.newRenderTarget("Vol", texInf);
|
|
|
|
|
|
|
+ RenderTargetHandle volRt = descr.newRenderTarget(newRTDescr("Vol"));
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("Vol main");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("Vol main");
|
|
|
pass.newConsumer({volRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({volRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer({quarterDepthRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass.newConsumer({quarterDepthRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass.newProducer({volRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newProducer({volRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
|
|
|
|
|
- RenderTargetHandle volVBlurRt = descr.newRenderTarget("Vol tmp", texInf);
|
|
|
|
|
- GraphicsRenderPassInfo& pass2 = descr.newGraphicsRenderPass("Vol vblur");
|
|
|
|
|
|
|
+ RenderTargetHandle volVBlurRt = descr.newRenderTarget(newRTDescr("Vol tmp"));
|
|
|
|
|
+ GraphicsRenderPassDescription& pass2 = descr.newGraphicsRenderPass("Vol vblur");
|
|
|
pass2.newConsumer({volRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass2.newConsumer({volRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass2.newConsumer({volVBlurRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass2.newConsumer({volVBlurRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass2.newProducer({volVBlurRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass2.newProducer({volVBlurRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
|
|
|
|
|
- GraphicsRenderPassInfo& pass3 = descr.newGraphicsRenderPass("Vol hblur");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass3 = descr.newGraphicsRenderPass("Vol hblur");
|
|
|
pass3.newConsumer({volRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass3.newConsumer({volRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass3.newProducer({volRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass3.newProducer({volRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass3.newConsumer({volVBlurRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass3.newConsumer({volVBlurRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Forward shading
|
|
// Forward shading
|
|
|
- RenderTargetHandle fsRt = descr.newRenderTarget("FS", texInf);
|
|
|
|
|
|
|
+ RenderTargetHandle fsRt = descr.newRenderTarget(newRTDescr("FS"));
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("Forward shading");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("Forward shading");
|
|
|
pass.newConsumer({fsRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({fsRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newProducer({fsRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newProducer({fsRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer(
|
|
pass.newConsumer(
|
|
@@ -1702,7 +1712,7 @@ ANKI_TEST(Gr, RenderGraph)
|
|
|
// Light shading
|
|
// Light shading
|
|
|
RenderTargetHandle lightRt = descr.importRenderTarget("Light", dummyTex, TextureUsageBit::NONE);
|
|
RenderTargetHandle lightRt = descr.importRenderTarget("Light", dummyTex, TextureUsageBit::NONE);
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("Light shading");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("Light shading");
|
|
|
|
|
|
|
|
pass.newConsumer({lightRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({lightRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
|
pass.newConsumer({gbuffRt0, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass.newConsumer({gbuffRt0, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
@@ -1721,7 +1731,7 @@ ANKI_TEST(Gr, RenderGraph)
|
|
|
RenderTargetHandle taaHistoryRt = descr.importRenderTarget("TAA hist", dummyTex, TextureUsageBit::SAMPLED_FRAGMENT);
|
|
RenderTargetHandle taaHistoryRt = descr.importRenderTarget("TAA hist", dummyTex, TextureUsageBit::SAMPLED_FRAGMENT);
|
|
|
RenderTargetHandle taaRt = descr.importRenderTarget("TAA", dummyTex, TextureUsageBit::NONE);
|
|
RenderTargetHandle taaRt = descr.importRenderTarget("TAA", dummyTex, TextureUsageBit::NONE);
|
|
|
{
|
|
{
|
|
|
- GraphicsRenderPassInfo& pass = descr.newGraphicsRenderPass("Temporal AA");
|
|
|
|
|
|
|
+ GraphicsRenderPassDescription& pass = descr.newGraphicsRenderPass("Temporal AA");
|
|
|
|
|
|
|
|
pass.newConsumer({lightRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
pass.newConsumer({lightRt, TextureUsageBit::SAMPLED_FRAGMENT});
|
|
|
pass.newConsumer({taaRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|
|
pass.newConsumer({taaRt, TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE});
|