Browse Source

Improve debug markers

Panagiotis Christopoulos Charitos 2 years ago
parent
commit
1172682529

+ 4 - 0
AnKi/Gr/CommandBuffer.h

@@ -425,6 +425,10 @@ public:
 	void pushSecondLevelCommandBuffers(ConstWeakArray<CommandBuffer*> cmdbs);
 
 	Bool isEmpty() const;
+
+	void pushDebugMarker(CString name, Vec3 color);
+
+	void popDebugMarker();
 	/// @}
 
 protected:

+ 16 - 0
AnKi/Gr/RenderGraph.cpp

@@ -129,6 +129,8 @@ public:
 
 	FramebufferPtr m_framebuffer;
 
+	BaseString<MemoryPoolPtrWrapper<StackMemoryPool>> m_name;
+
 	U32 m_batchIdx ANKI_DEBUG_CODE(= kMaxU32);
 	Bool m_drawsToPresentable = false;
 
@@ -136,6 +138,7 @@ public:
 		: m_dependsOn(pool)
 		, m_consumedTextures(pool)
 		, m_secondLevelCmdbs(pool)
+		, m_name(pool)
 	{
 	}
 };
@@ -360,6 +363,7 @@ void RenderGraph::reset()
 		p.m_framebuffer.reset(nullptr);
 		p.m_secondLevelCmdbs.destroy();
 		p.m_callback.destroy();
+		p.m_name.destroy();
 	}
 
 	m_ctx->m_graphicsCmdbs.destroy();
@@ -788,6 +792,7 @@ void RenderGraph::initRenderPassesAndSetDeps(const RenderGraphDescription& descr
 		Pass& outPass = *ctx.m_passes.emplaceBack(ctx.m_as.getMemoryPool().m_pool);
 
 		outPass.m_callback = inPass.m_callback;
+		outPass.m_name = inPass.m_name;
 
 		// Create consumer info
 		outPass.m_consumedTextures.resize(inPass.m_rtDeps.getSize());
@@ -1341,11 +1346,20 @@ void RenderGraph::run() const
 		{
 			const Pass& pass = m_ctx->m_passes[passIdx];
 
+			Vec3 passColor;
 			if(pass.m_framebuffer)
 			{
 				cmdb.beginRenderPass(pass.m_framebuffer.get(), pass.m_colorUsages, pass.m_dsUsage, pass.m_fbRenderArea[0], pass.m_fbRenderArea[1],
 									 pass.m_fbRenderArea[2], pass.m_fbRenderArea[3]);
+
+				passColor = Vec3(0.0f, 1.0f, 0.0f);
 			}
+			else
+			{
+				passColor = Vec3(1.0f, 1.0f, 0.0f);
+			}
+
+			cmdb.pushDebugMarker(pass.m_name, passColor);
 
 			const U32 size = pass.m_secondLevelCmdbs.getSize();
 			if(size == 0)
@@ -1371,6 +1385,8 @@ void RenderGraph::run() const
 			{
 				cmdb.endRenderPass();
 			}
+
+			cmdb.popDebugMarker();
 		}
 	}
 }

+ 12 - 0
AnKi/Gr/Vulkan/CommandBuffer.cpp

@@ -426,4 +426,16 @@ void CommandBuffer::setLineWidth(F32 width)
 	self.setLineWidthInternal(width);
 }
 
+void CommandBuffer::pushDebugMarker(CString name, Vec3 color)
+{
+	ANKI_VK_SELF(CommandBufferImpl);
+	self.pushDebugMarkerInternal(name, color);
+}
+
+void CommandBuffer::popDebugMarker()
+{
+	ANKI_VK_SELF(CommandBufferImpl);
+	self.popDebugMarkerInternal();
+}
+
 } // end namespace anki

+ 6 - 3
AnKi/Gr/Vulkan/CommandBufferImpl.cpp

@@ -33,6 +33,10 @@ CommandBufferImpl::~CommandBufferImpl()
 	{
 		ANKI_VK_LOGW("Command buffer was not flushed");
 	}
+
+#if ANKI_EXTRA_CHECKS
+	ANKI_ASSERT(m_debugMarkersPushed == 0);
+#endif
 }
 
 Error CommandBufferImpl::init(const CommandBufferInitInfo& init)
@@ -62,6 +66,8 @@ Error CommandBufferImpl::init(const CommandBufferInitInfo& init)
 
 	m_state.setVrsCapable(getGrManagerImpl().getDeviceCapabilities().m_vrs);
 
+	m_debugMarkers = !!(getGrManagerImpl().getExtensions() & VulkanExtensions::kEXT_debug_utils);
+
 	return Error::kNone;
 }
 
@@ -205,8 +211,6 @@ void CommandBufferImpl::beginRenderPassInternal()
 	bi.renderArea.extent.width = m_renderArea[2];
 	bi.renderArea.extent.height = m_renderArea[3];
 
-	getGrManagerImpl().beginMarker(m_handle, impl.getName(), Vec3(0.0f, 1.0f, 0.0f));
-
 #if !ANKI_PLATFORM_MOBILE
 	// nVidia SRI cache workaround
 	if(impl.hasSri())
@@ -246,7 +250,6 @@ void CommandBufferImpl::endRenderPassInternal()
 	subpassEndInfo.sType = VK_STRUCTURE_TYPE_SUBPASS_END_INFO;
 
 	vkCmdEndRenderPass2KHR(m_handle, &subpassEndInfo);
-	getGrManagerImpl().endMarker(m_handle);
 
 	m_activeFb = nullptr;
 	m_state.endRenderPass();

+ 40 - 8
AnKi/Gr/Vulkan/CommandBufferImpl.h

@@ -34,10 +34,6 @@ public:
 	/// Default constructor
 	CommandBufferImpl(CString name)
 		: CommandBuffer(name)
-		, m_renderedToDefaultFb(false)
-		, m_finalized(false)
-		, m_empty(false)
-		, m_beganRecording(false)
 	{
 	}
 
@@ -430,6 +426,40 @@ public:
 #endif
 	}
 
+	ANKI_FORCE_INLINE void pushDebugMarkerInternal(CString name, Vec3 color)
+	{
+		if(m_debugMarkers) [[unlikely]]
+		{
+			commandCommon();
+
+			VkDebugUtilsLabelEXT label = {};
+			label.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
+			label.pLabelName = name.cstr();
+			label.color[0] = color[0];
+			label.color[1] = color[1];
+			label.color[2] = color[2];
+			label.color[3] = 1.0f;
+			vkCmdBeginDebugUtilsLabelEXT(m_handle, &label);
+		}
+
+#if ANKI_EXTRA_CHECKS
+		++m_debugMarkersPushed;
+#endif
+	}
+
+	ANKI_FORCE_INLINE void popDebugMarkerInternal()
+	{
+		if(m_debugMarkers) [[unlikely]]
+		{
+			commandCommon();
+			vkCmdEndDebugUtilsLabelEXT(m_handle);
+		}
+
+#if ANKI_EXTRA_CHECKS
+		ANKI_ASSERT(m_debugMarkersPushed > 0);
+#endif
+	}
+
 private:
 	StackMemoryPool* m_pool = nullptr;
 
@@ -437,13 +467,15 @@ private:
 	VkCommandBuffer m_handle = VK_NULL_HANDLE;
 	ThreadId m_tid = ~ThreadId(0);
 	CommandBufferFlag m_flags = CommandBufferFlag::kNone;
-	Bool m_renderedToDefaultFb : 1;
-	Bool m_finalized : 1;
-	Bool m_empty : 1;
-	Bool m_beganRecording : 1;
+	Bool m_renderedToDefaultFb : 1 = false;
+	Bool m_finalized : 1 = false;
+	Bool m_empty : 1 = true;
+	Bool m_beganRecording : 1 = false;
+	Bool m_debugMarkers : 1 = false;
 #if ANKI_EXTRA_CHECKS
 	U32 m_commandCount = 0;
 	U32 m_setPushConstantsSize = 0;
+	U32 m_debugMarkersPushed = 0;
 #endif
 
 	Framebuffer* m_activeFb = nullptr;

+ 0 - 8
AnKi/Gr/Vulkan/CommandBufferImpl.inl.h

@@ -114,8 +114,6 @@ ANKI_FORCE_INLINE void CommandBufferImpl::dispatchComputeInternal(U32 groupCount
 
 	commandCommon();
 
-	getGrManagerImpl().beginMarker(m_handle, m_computeProg->getName(), Vec3(1.0f, 1.0f, 0.0f));
-
 	// Bind descriptors
 	for(U32 i = 0; i < kMaxDescriptorSets; ++i)
 	{
@@ -149,8 +147,6 @@ ANKI_FORCE_INLINE void CommandBufferImpl::dispatchComputeInternal(U32 groupCount
 	}
 
 	vkCmdDispatch(m_handle, groupCountX, groupCountY, groupCountZ);
-
-	getGrManagerImpl().endMarker(m_handle);
 }
 
 ANKI_FORCE_INLINE void CommandBufferImpl::traceRaysInternal(Buffer* sbtBuffer, PtrSize sbtBufferOffset, U32 sbtRecordSize32,
@@ -172,8 +168,6 @@ ANKI_FORCE_INLINE void CommandBufferImpl::traceRaysInternal(Buffer* sbtBuffer, P
 
 	commandCommon();
 
-	getGrManagerImpl().beginMarker(m_handle, m_rtProg->getName(), Vec3(0.0f, 0.0f, 1.0f));
-
 	// Bind descriptors
 	for(U32 i = 0; i < kMaxDescriptorSets; ++i)
 	{
@@ -229,8 +223,6 @@ ANKI_FORCE_INLINE void CommandBufferImpl::traceRaysInternal(Buffer* sbtBuffer, P
 	regions[3] = VkStridedDeviceAddressRegionKHR();
 
 	vkCmdTraceRaysKHR(m_handle, &regions[0], &regions[1], &regions[2], &regions[3], width, height, depth);
-
-	getGrManagerImpl().endMarker(m_handle);
 }
 
 ANKI_FORCE_INLINE void CommandBufferImpl::pushSecondLevelCommandBuffersInternal(ConstWeakArray<CommandBuffer*> cmdbs)

+ 0 - 25
AnKi/Gr/Vulkan/GrManagerImpl.h

@@ -179,31 +179,6 @@ public:
 
 	/// @name Debug report
 	/// @{
-	void beginMarker(VkCommandBuffer cmdb, CString name, Vec3 color = Vec3(1.0f, 0.0f, 0.0f)) const
-	{
-		ANKI_ASSERT(cmdb);
-		if(!!(m_extensions & VulkanExtensions::kEXT_debug_utils))
-		{
-			VkDebugUtilsLabelEXT label = {};
-			label.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
-			label.pLabelName = name.cstr();
-			label.color[0] = color[0];
-			label.color[1] = color[1];
-			label.color[2] = color[2];
-			label.color[3] = 1.0f;
-			vkCmdBeginDebugUtilsLabelEXT(cmdb, &label);
-		}
-	}
-
-	void endMarker(VkCommandBuffer cmdb) const
-	{
-		ANKI_ASSERT(cmdb);
-		if(!!(m_extensions & VulkanExtensions::kEXT_debug_utils))
-		{
-			vkCmdEndDebugUtilsLabelEXT(cmdb);
-		}
-	}
-
 	void trySetVulkanHandleName(CString name, VkObjectType type, U64 handle) const;
 
 	void trySetVulkanHandleName(CString name, VkObjectType type, void* handle) const

+ 1 - 1
AnKi/Renderer/GBuffer.cpp

@@ -164,7 +164,7 @@ void GBuffer::populateRenderGraph(RenderingContext& ctx)
 	const Array<F32, kMaxLodCount - 1> lodDistances = {ConfigSet::getSingleton().getLod0MaxDistance(),
 													   ConfigSet::getSingleton().getLod1MaxDistance()};
 	GpuVisibilityOutput visOut;
-	getRenderer().getGpuVisibility().populateRenderGraph(RenderingTechnique::kGBuffer, matrices.m_viewProjection,
+	getRenderer().getGpuVisibility().populateRenderGraph("GBuffer visibility", RenderingTechnique::kGBuffer, matrices.m_viewProjection,
 														 matrices.m_cameraTransform.getTranslationPart().xyz(), lodDistances, &m_runCtx.m_hzbRt,
 														 rgraph, visOut);
 

+ 2 - 2
AnKi/Renderer/GpuVisibility.cpp

@@ -52,7 +52,7 @@ Error GpuVisibility::init()
 	return Error::kNone;
 }
 
-void GpuVisibility::populateRenderGraph(RenderingTechnique technique, const Mat4& viewProjectionMat, Vec3 lodReferencePoint,
+void GpuVisibility::populateRenderGraph(CString passesName, RenderingTechnique technique, const Mat4& viewProjectionMat, Vec3 lodReferencePoint,
 										const Array<F32, kMaxLodCount - 1> lodDistances, const RenderTargetHandle* hzbRt,
 										RenderGraphDescription& rgraph, GpuVisibilityOutput& out) const
 {
@@ -85,7 +85,7 @@ void GpuVisibility::populateRenderGraph(RenderingTechnique technique, const Mat4
 													mdiDrawCounts.m_offset, mdiDrawCounts.m_range);
 
 	// Create the renderpass
-	ComputeRenderPassDescription& pass = rgraph.newComputeRenderPass("GPU occlusion");
+	ComputeRenderPassDescription& pass = rgraph.newComputeRenderPass(passesName);
 
 	pass.newBufferDependency(getRenderer().getGpuSceneBufferHandle(), BufferUsageBit::kStorageComputeRead);
 	pass.newBufferDependency(out.m_mdiDrawCountsHandle, BufferUsageBit::kStorageComputeWrite);

+ 1 - 1
AnKi/Renderer/GpuVisibility.h

@@ -38,7 +38,7 @@ public:
 	Error init();
 
 	/// Populate the rendergraph.
-	void populateRenderGraph(RenderingTechnique technique, const Mat4& viewProjectionMat, Vec3 lodReferencePoint,
+	void populateRenderGraph(CString passesName, RenderingTechnique technique, const Mat4& viewProjectionMat, Vec3 lodReferencePoint,
 							 const Array<F32, kMaxLodCount - 1> lodDistances, const RenderTargetHandle* hzbRt, RenderGraphDescription& rgraph,
 							 GpuVisibilityOutput& out) const;
 

+ 6 - 6
AnKi/Renderer/IndirectDiffuseProbes.cpp

@@ -192,7 +192,7 @@ void IndirectDiffuseProbes::populateRenderGraph(RenderingContext& rctx)
 	{
 		const RenderQueue& queue = *giCtx->m_probeToUpdateThisFrame->m_renderQueues[i];
 		Array<F32, kMaxLodCount - 1> lodDistances = {1000.0f, 1001.0f}; // Something far to force detailed LODs
-		getRenderer().getGpuVisibility().populateRenderGraph(RenderingTechnique::kGBuffer, queue.m_viewProjectionMatrix,
+		getRenderer().getGpuVisibility().populateRenderGraph("GI GBuffer visibility", RenderingTechnique::kGBuffer, queue.m_viewProjectionMatrix,
 															 queue.m_cameraTransform.getTranslationPart().xyz(), lodDistances, nullptr, rgraph,
 															 giCtx->m_gbufferVisOut[i]);
 	}
@@ -207,7 +207,7 @@ void IndirectDiffuseProbes::populateRenderGraph(RenderingContext& rctx)
 		giCtx->m_gbufferDepthRt = rgraph.newRenderTarget(m_gbuffer.m_depthRtDescr);
 
 		// Pass
-		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("GI gbuff");
+		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("GI GBuffer");
 		pass.setFramebufferInfo(m_gbuffer.m_fbDescr, giCtx->m_gbufferColorRts, giCtx->m_gbufferDepthRt);
 		pass.setWork(6, [this](RenderPassWorkContext& rgraphCtx) {
 			runGBufferInThread(rgraphCtx);
@@ -239,7 +239,7 @@ void IndirectDiffuseProbes::populateRenderGraph(RenderingContext& rctx)
 		{
 			const RenderQueue& queue = *giCtx->m_probeToUpdateThisFrame->m_renderQueues[i]->m_directionalLight.m_shadowRenderQueues[0];
 			Array<F32, kMaxLodCount - 1> lodDistances = {1000.0f, 1001.0f}; // Something far to force detailed LODs
-			getRenderer().getGpuVisibility().populateRenderGraph(RenderingTechnique::kDepth, queue.m_viewProjectionMatrix,
+			getRenderer().getGpuVisibility().populateRenderGraph("GI shadows visibility", RenderingTechnique::kDepth, queue.m_viewProjectionMatrix,
 																 queue.m_cameraTransform.getTranslationPart().xyz(), lodDistances, nullptr, rgraph,
 																 giCtx->m_shadowsVisOut[i]);
 		}
@@ -268,7 +268,7 @@ void IndirectDiffuseProbes::populateRenderGraph(RenderingContext& rctx)
 		giCtx->m_shadowsRt = rgraph.newRenderTarget(m_shadowMapping.m_rtDescr);
 
 		// Pass
-		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("GI SM");
+		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("GI shadows");
 		pass.setFramebufferInfo(m_shadowMapping.m_fbDescr, {}, giCtx->m_shadowsRt);
 		pass.setWork(6, [this](RenderPassWorkContext& rgraphCtx) {
 			runShadowmappingInThread(rgraphCtx);
@@ -296,7 +296,7 @@ void IndirectDiffuseProbes::populateRenderGraph(RenderingContext& rctx)
 		giCtx->m_lightShadingRt = rgraph.newRenderTarget(m_lightShading.m_rtDescr);
 
 		// Pass
-		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("GI LS");
+		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("GI light shading");
 		pass.setFramebufferInfo(m_lightShading.m_fbDescr, {giCtx->m_lightShadingRt});
 		pass.setWork(1, [this, giCtx](RenderPassWorkContext& rgraphCtx) {
 			runLightShading(rgraphCtx);
@@ -320,7 +320,7 @@ void IndirectDiffuseProbes::populateRenderGraph(RenderingContext& rctx)
 	{
 		m_giCtx->m_irradianceVolume = rgraph.importRenderTarget(m_giCtx->m_probeToUpdateThisFrame->m_volumeTexture, TextureUsageBit::kNone);
 
-		ComputeRenderPassDescription& pass = rgraph.newComputeRenderPass("GI IR");
+		ComputeRenderPassDescription& pass = rgraph.newComputeRenderPass("GI irradiance");
 
 		pass.setWork([this, giCtx](RenderPassWorkContext& rgraphCtx) {
 			runIrradiance(rgraphCtx);

+ 14 - 14
AnKi/Renderer/ProbeReflections.cpp

@@ -333,9 +333,9 @@ void ProbeReflections::populateRenderGraph(RenderingContext& rctx)
 	{
 		const RenderQueue& queue = *m_ctx.m_probe->m_renderQueues[i];
 		Array<F32, kMaxLodCount - 1> lodDistances = {1000.0f, 1001.0f}; // Something far to force detailed LODs
-		getRenderer().getGpuVisibility().populateRenderGraph(RenderingTechnique::kGBuffer, queue.m_viewProjectionMatrix,
-															 queue.m_cameraTransform.getTranslationPart().xyz(), lodDistances, nullptr, rgraph,
-															 visOuts[i]);
+		getRenderer().getGpuVisibility().populateRenderGraph("Cube refl GBuffer visibility", RenderingTechnique::kGBuffer,
+															 queue.m_viewProjectionMatrix, queue.m_cameraTransform.getTranslationPart().xyz(),
+															 lodDistances, nullptr, rgraph, visOuts[i]);
 	}
 
 	// GBuffer pass
@@ -350,7 +350,7 @@ void ProbeReflections::populateRenderGraph(RenderingContext& rctx)
 		m_ctx.m_gbufferDepthRt = rgraph.newRenderTarget(m_gbuffer.m_depthRtDescr);
 
 		// Pass
-		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("CubeRefl GBuffer");
+		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("Cube refl GBuffer");
 		pass.setFramebufferInfo(m_gbuffer.m_fbDescr, rts, m_ctx.m_gbufferDepthRt);
 		pass.setWork(6, [this, visOuts](RenderPassWorkContext& rgraphCtx) {
 			runGBuffer(visOuts, rgraphCtx);
@@ -384,9 +384,9 @@ void ProbeReflections::populateRenderGraph(RenderingContext& rctx)
 			const RenderQueue& queue = *m_ctx.m_probe->m_renderQueues[i]->m_directionalLight.m_shadowRenderQueues[0];
 			Array<F32, kMaxLodCount - 1> lodDistances = {1000.0f, 1001.0f}; // Something far to force detailed LODs
 
-			getRenderer().getGpuVisibility().populateRenderGraph(RenderingTechnique::kDepth, queue.m_viewProjectionMatrix,
-																 queue.m_cameraTransform.getTranslationPart().xyz(), lodDistances, nullptr, rgraph,
-																 shadowVisOuts[i]);
+			getRenderer().getGpuVisibility().populateRenderGraph("Cube refl shadows visibility", RenderingTechnique::kDepth,
+																 queue.m_viewProjectionMatrix, queue.m_cameraTransform.getTranslationPart().xyz(),
+																 lodDistances, nullptr, rgraph, shadowVisOuts[i]);
 		}
 	}
 
@@ -413,7 +413,7 @@ void ProbeReflections::populateRenderGraph(RenderingContext& rctx)
 		m_ctx.m_shadowMapRt = rgraph.newRenderTarget(m_shadowMapping.m_rtDescr);
 
 		// Pass
-		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("CubeRefl SM");
+		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("Cube refl shadows");
 		pass.setFramebufferInfo(m_shadowMapping.m_fbDescr, {}, m_ctx.m_shadowMapRt);
 		pass.setWork(6, [this, shadowVisOuts](RenderPassWorkContext& rgraphCtx) {
 			runShadowMapping(shadowVisOuts, rgraphCtx);
@@ -441,8 +441,8 @@ void ProbeReflections::populateRenderGraph(RenderingContext& rctx)
 		m_ctx.m_lightShadingRt = rgraph.importRenderTarget(m_ctx.m_probe->m_reflectionTexture, TextureUsageBit::kNone);
 
 		// Passes
-		static constexpr Array<CString, 6> passNames = {"CubeRefl LightShad #0", "CubeRefl LightShad #1", "CubeRefl LightShad #2",
-														"CubeRefl LightShad #3", "CubeRefl LightShad #4", "CubeRefl LightShad #5"};
+		static constexpr Array<CString, 6> passNames = {"Cube refl light shading #0", "Cube refl light shading #1", "Cube refl light shading #2",
+														"Cube refl light shading #3", "Cube refl light shading #4", "Cube refl light shading #5"};
 		for(U32 faceIdx = 0; faceIdx < 6; ++faceIdx)
 		{
 			GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass(passNames[faceIdx]);
@@ -472,7 +472,7 @@ void ProbeReflections::populateRenderGraph(RenderingContext& rctx)
 	{
 		m_ctx.m_irradianceDiceValuesBuffHandle = rgraph.importBuffer(m_irradiance.m_diceValuesBuff.get(), BufferUsageBit::kNone);
 
-		ComputeRenderPassDescription& pass = rgraph.newComputeRenderPass("CubeRefl Irradiance");
+		ComputeRenderPassDescription& pass = rgraph.newComputeRenderPass("Cube refl irradiance");
 
 		pass.setWork([this](RenderPassWorkContext& rgraphCtx) {
 			runIrradiance(rgraphCtx);
@@ -488,7 +488,7 @@ void ProbeReflections::populateRenderGraph(RenderingContext& rctx)
 
 	// Write irradiance back to refl
 	{
-		ComputeRenderPassDescription& pass = rgraph.newComputeRenderPass("CubeRefl apply indirect");
+		ComputeRenderPassDescription& pass = rgraph.newComputeRenderPass("Cube refl apply indirect");
 
 		pass.setWork([this](RenderPassWorkContext& rgraphCtx) {
 			runIrradianceToRefl(rgraphCtx);
@@ -508,8 +508,8 @@ void ProbeReflections::populateRenderGraph(RenderingContext& rctx)
 
 	// Mipmapping "passes"
 	{
-		static constexpr Array<CString, 6> passNames = {"CubeRefl Mip #0", "CubeRefl Mip #1", "CubeRefl Mip #2",
-														"CubeRefl Mip #3", "CubeRefl Mip #4", "CubeRefl Mip #5"};
+		static constexpr Array<CString, 6> passNames = {"Cube refl gen mips #0", "Cube refl gen mips #1", "Cube refl gen mips #2",
+														"Cube refl gen mips #3", "Cube refl gen mips #4", "Cube refl gen mips #5"};
 		for(U32 faceIdx = 0; faceIdx < 6; ++faceIdx)
 		{
 			GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass(passNames[faceIdx]);

+ 2 - 2
AnKi/Renderer/ShadowMapping.cpp

@@ -98,7 +98,7 @@ void ShadowMapping::populateRenderGraph(RenderingContext& ctx)
 		const U32 width = m_runCtx.m_fullViewport[2] - m_runCtx.m_fullViewport[0];
 		const U32 height = m_runCtx.m_fullViewport[3] - m_runCtx.m_fullViewport[1];
 
-		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("ShadowMapping");
+		GraphicsRenderPassDescription& pass = rgraph.newGraphicsRenderPass("Shadowmapping");
 
 		for(const ViewportWorkItem& work : m_runCtx.m_workItems)
 		{
@@ -235,7 +235,7 @@ void ShadowMapping::newWorkItem(const UVec4& atlasViewport, const RenderQueue& q
 
 	const Array<F32, kMaxLodCount - 1> lodDistances = {ConfigSet::getSingleton().getLod0MaxDistance(),
 													   ConfigSet::getSingleton().getLod1MaxDistance()};
-	getRenderer().getGpuVisibility().populateRenderGraph(RenderingTechnique::kDepth, queue.m_viewProjectionMatrix,
+	getRenderer().getGpuVisibility().populateRenderGraph("Shadowmapping visibility", RenderingTechnique::kDepth, queue.m_viewProjectionMatrix,
 														 queue.m_cameraTransform.getTranslationPart().xyz(), lodDistances, nullptr, rgraph,
 														 work.m_visOut);