ProfileGPU details

Hello everyone!

I use “profilegpu” very often to debug graphics of a scene, but there is some information that profiler gives me i do not have .

What I do know and what questions I have:

  • BasePass - How much it cost to render all the stuf on a scene.
  • StaticOpaqueNoLightmap - Cost of rendering meshes with Opaque material and dynamic light.
  • StaticMaskedNoLightmap - Cost of rendering meshes with Masked material and dynamic light.
  • StaticOpaqueLightmapped - Cost of rendering meshes with Opaque material and static lightmap textures.
  • StaticMaskedLightmapped - Cost of rendering meshes with Masked material and static lightmap textures.
  • Dynamic - ???
  • LightCompositionTasks_PreLighting
  • AmbientOcclusion - Well, AO.
  • Lights - The cost of lights and shadowing
  • NonShadowedLights - Cost of all dynamic lights with shadows turned off.
  • ShadowedLights - Cost of all dynamic lights with shadows turned on.
  • ScreenSpaceReflections - Render time of SSR real-time reflections.
  • Fog - Effects from Exponentioal or Atmospheric fog.
  • Translucency - Cost of rendering meshes with Transslucent material.
  • PostProcess - Effects from Postprocess settings.

Soo. Am I right, or not? And what is Dynamic? And what are other important stuff me and others should know a

Nice list man, also interessted to have more information about this. thx for this thread and yor list :slight_smile:

You can find more information about each of the items in the profiler hierachy by searching the engine source code for the corresponding occurrences of the SCOPED_DRAW_EVENT macro, which occurs within the block scope that the profiler time is attributed to.

Since you asked about “Dynamic” specifically, for example, that appears within the FDeferredShadingSceneRenderer::RenderBasePassDynamicData function here:
https://github.com/EpicGames/UnrealEngine/blob/4.11.2-release/Engine/Source/Runtime/Renderer/Private/DeferredShadingRenderer.cpp#L422

So it looks like it refers to the time taken to render all of the DynamicMeshElements batches in the base pass of a given view - and DynamicMeshElements, in turn, appears to be a catch-all for any renderable geometry that isn’t a static mesh.

Woah, this is more an answer than a question for me! Thanks for the info! :smiley:

I just finished a video in which I explain majority of the categories in GPU Visualizer / ProfileGPU.

What I was curious about is what precisely affects their costs. For example what makes the Base Pass or ReflectionEnvironment longer in the first place and what is secondary. I made my best to ensure this info is correct, i.e. read engine code, did tests.

The link from @Neverender was also helpful as a starting point for Base Pass - thanks.

The video: UE4 Graphics Profiling: All Categories Guide (Rendering Passes) - YouTube

137989-basepass.png