> For the complete documentation index, see [llms.txt](https://flora.magneticarcade.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flora.magneticarcade.com/rendering/debugging.md).

# Debugging

Flora integrates with Unity’s [Rendering Debugger](https://docs.unity3d.com/6000.2/Documentation/Manual/urp/features/rendering-debugger.html) to provide tools for visualizing and inspecting **instance behavior**, **culling**, and **performance** in real time.

For Editor-only inspection of sources, templates, draws, graphics buffers, and culling-grid structure, use the [Rendering Inspector](/rendering/rendering-inspector.md).

<figure><img src="/files/Yc1H68wTC0p6NE0spzfE" alt="Rendering Debugger tab"><figcaption></figcaption></figure>

***

## Accessing the Rendering Debugger

Flora adds a dedicated tab to Unity’s **Rendering Debugger** window.

### Access Options

* From the menu bar:\
  **Window → Flora → Rendering Debugger**
* In a development build (Play Mode or standalone):\
  **Ctrl + Shift + Backspace**

<figure><img src="/files/VtnOomGjI0CVKNJaG7qK" alt="Flora debugger hotkey" width="563"><figcaption></figcaption></figure>

The Flora panel is available when a `FloraSystem` is active. If the system is not running, the panel shows a **Not Running** message.

***

## Debug Properties

### General

#### Debug Shading Mode

Visualizes internal instance data using shader debug colors:

* **None** - disables Flora debug shading.
* **LOD** - colors instances by selected LOD.
* **InstanceHandle** - colors instances by handle. Editor only.
* **RandomID** - colors instances by the per-instance random value, when allocated.
* **Template** - colors instances by Flora template.
* **Draw** - colors instances by draw entry.
* **DrawVariant** - colors instances by draw variant.
* **CullingBatch** - colors instances by culling-grid chunk.
* **BatchDomain** - colors instances by BatchRendererGroup batch domain.

#### Display Culling Stats

Enables collection and display of compact CPU and GPU culling stats in the **Culling Stats** section. GPU statistics use asynchronous readback and may affect performance.

#### Debug Shading Opacity

Blends Flora debug shading with the normally shaded surface. This control is shown when a debug shading mode is active.

#### Enable GPU Checks

Enables GPU validation checks in the culling system. This is intended for debugging rendering or culling issues and may affect performance.

#### Open Rendering Inspector

In the Editor, opens the snapshot-based [Rendering Inspector](/rendering/rendering-inspector.md) for source, template, draw, buffer, and culling-grid relationship diagnostics.

***

### LOD

Controls how Flora selects LODs while debugging:

* **None** - uses normal LOD selection.
* **ForceLOD** - forces all eligible instances to use the selected **LOD Index**.
* **OnlyLOD** - renders only the selected **LOD Index** and culls other LODs.

`LOD Index` is shown only when a LOD mode is active.

***

### GPU Occlusion

These controls are shown when GPU occlusion is available for the active Flora system. If GPU occlusion is disabled by [Runtime Settings](/scripts/runtime-settings.md), [Scene Settings](/scripts/scene-settings.md), or camera settings, the debugger shows an info message instead.

* **Occlusion Overlay** - draws the occlusion test overlay.
* **Opacity** - controls the occlusion overlay opacity.
* **Count Visible** - includes visible-instance counts in the occlusion overlay.
* **Depth Overlay** - displays the occluder depth pyramid debug view.
* **Range Min / Range Max** - remaps the depth-overlay display range.

***

### Culling Overrides

Temporarily bypasses individual culling stages to diagnose missing or unexpectedly sparse instances:

* **Disable Density Culling** - makes density culling pass every instance.
* **Disable GPU Occlusion Culling** - makes GPU occlusion tests pass every instance. This control is shown when GPU occlusion is available.

***

### Culling Grid

Displays Flora's culling grid as procedural debug lines.

**Mode**

* **Disabled** - no culling-grid overlay.
* **Heatmap** - visualizes occupancy/intensity.
* **Level** - visualizes culling-grid levels.

The debugger includes a color legend for the active mode. Heatmap colors progress from cyan at lower occupancy through orange, red, and burgundy at higher occupancy.

**Types**

* **Blocks** - top-level grid regions.
* **Cells** - mid-level grid cells.
* **Chunks** - instance chunks inside cells.

**Draw Distance** limits how far the overlay draws from the camera.

***

### Culling Stats

When **Display Culling Stats** is enabled, the debugger shows:

* **View Count**
* **Per View Stats**
  * View and view type
  * CPU-visible chunks and instances
  * CPU draw commands
  * GPU-visible and occluded instances
  * GPU-visible draws

These stats form a compact culling pipeline for checking whether Flora produces CPU draw work for each view and how GPU occlusion reduces it. Detailed Editor-only tables remain available in the Flora Scene Settings inspector.

***

## How To Verify

* Set **Debug Shading Mode** to **LOD** and confirm Flora instances are tinted by LOD.
* Enable **Display Culling Stats** and confirm view rows update while cameras render.
* Enable **Disable GPU Occlusion Culling** when GPU occlusion is active; missing instances that reappear were being occluded.
* Enable **Culling Grid > Cells** and confirm the culling grid overlay follows active Flora content.
