book/12-troubleshooting-faq.md

12. Troubleshooting / FAQ

Summarizes frequently encountered symptoms and causes/solution procedures in URP/RenderGraph/Forward+/SRP Batcher.

12. Troubleshooting / FAQ

This chapter organizes frequently encountered problems while using URP/SRP/shader into “Symptoms → Causes → Resolution Procedures.”

Q1. I created a Render Feature, but nothing happens.

check

  • Is Feature added to the Renderer Asset (Forward Renderer, etc.)?
  • Does the camera use a URP Asset that uses the Renderer?
  • Is the pass EnqueuePass (breakpoint/log)?

Common Causes

  • AddRenderPasses is not executed due to conditional statements.
  • Pass event is too early/late and not at the expected timing.

Q2. Texture comes out black in RenderGraph / always 0

check

  • Is the read/write declaration in builder correct? (UseTexture/SetRenderAttachment)
  • Is the render target actually bound?
  • Is the sampling/bullet correct in the pass function?

Common Causes

  • Sample texture without “read declaration” → missing resource preparation/barrier
  • Setting source and destination to the same texture (especially bullets) → undefined behavior

Q3. Additional light is not used in Forward+

check

  • Includes #pragma multi_compile _ _CLUSTER_LIGHT_LOOP
  • Whether to activate Forward+ (URP Asset settings)
  • Whether to include additional light keywords (_ADDITIONAL_LIGHTS*)

Related: 07. Forward/Forward+/Lights

Q4. Missing Depth/Normals textures (or zero samples) breaks screen-based effects

Symptoms

  • Outline/SSAO always appears off or the edges are strange.
  • Depth-based calculations always come out as 0 or 1.
  • Normal-based calculations result in meaningless values.

Check (Priority)

  1. Is Depth/Normals generation really turned on in that camera/renderer?
    • If Full Screen Pass Renderer Feature, check Depth/Normal in Requirements.
    • If it is a custom pass, check the source/document to see what the request/creation flow is in URP.
  2. Are Depth/Normals resources actually created in RenderGraph Viewer?
  3. Are the include/sampling/linearization correct in the shader?
    • Did you convert Raw depth to Linear depth?

Related: 08. URP HLSL 라이브러리 지도, 10. 포스트/풀스크린 패스

Q5. SRP Batcher seems to be turned off / performance suddenly drops

check

  • Are the material properties organized in UnityPerMaterial CBUFFER?
  • Doesn’t the CBUFFER layout change with conditional compilation?
  • Did you excessively mix instancing/batching-related keywords such as UNITY_DOTS_INSTANCING_*?

Related: 09. URP 호환 셰이더 작성

Q6. My pass only works in scene view/game view/specific cameras

check

  • CameraType Aren't you doing filtering?
  • Are the URP Asset settings the same in scene view and game view?
  • If you are using camera stacking/overlay cameras, which camera did you apply the pass to?

Related: 03. URP 아키텍처

Q7. Resolution/scale is incorrect (shake, blur, pixel offset)

Candidate cause

  • Generate RT without considering whether or not to apply URP Render Scale (dynamic resolution)
  • Ignores target size differences by XR/camera
  • Set RTHandle/TextureHandle desc differently from camera color

Resolution Procedure

  • Create temporary texture based on camera color texture desc (RenderGraph)
  • If possible, use RTHandle to match URP scale.

Related: 05. 텍스처/ID/핸들