Shader keyword LIGHTPROBE_SH is being used when rendering only a cube with no lighprobes

I have recently noticed that a single cube is using shader keyword LIGHTPROBE_SH when rendering in an empty scene.

My Setup:

  1. Create an empty project in Unity 2020.4.48 with 3D-Pipeline
  2. Create a new scene with a Cube with Standard Shader.
  3. Go to Cube → MeshRenderer and set “Light Probe=Off”
  4. Open Frame Debugger and see “Draw Mesh Cube” is being render with LIGHTPROBE_SH keyword.

In my larger project, I have skipped LIGHTPROBE_SH from every custom shader, but meshes are still being rendered with this keyword.

Tried Options:

  1. Check “Lighting” is not using LightProbs
  2. LightProbes are set to off for all MeshRenderers.
  3. In my custom shader added “multi compile skip LIGHTPROBE_SH”
  4. In shader code, added “if(LIGHTPROBE_SH) ndef(LIGHTPROBE_SH) endif”

None of the above methods prevented LIGHTPROBE_SH from being added.

Questions:

  1. Without adding Light Probe to scene, why this keyword is being used with every renderer?
  2. How can I prevent?

For my custom shaders, I don’t to keep two variants, one with LIGHTPROBE_SH and another without it.

This is a global keyword that is enabled by the engine. If your shader doesn’t use it, it won’t have any effect.