Static Meshes that draw into RVTs and have "Draw In Main Pass" is set to "From Virtual Texture" (ERuntimeVirtualTextureMainPassType::Exclusive) will still draw in Occlusion Queries.
This can be traced to `FStaticMeshSceneProxy::CanBeOccluded()`, which uses the function "FPrimitiveSceneProxy::IsRuntimeVirtualTextureOnly()" to check if the primitive should only render in RVTs.
This function only considers `ERuntimeVirtualTextureMainPassType::Never` (via `bVirtualTextureMainPassDrawNever`), unlike the similar function `FPrimitiveSceneProxy::DrawInRuntimeVirtualTextureOnly(…)`, which is used for other passes (BasePass, ShadowDepths, etc).
This issue might be shared with "FLandscapeComponentSceneProxy::CanBeOccluded()" as well.
1. Download the Licensee's test project and open (see addl info URL)
2. Open the map "/Game/TestScene"
3. Observe the three meshes:
4. Take a RenderDoc or other graphics capture.
5. In the capture, navigate to the HZB pass, with BeginOcclusionTests. Find the draw event under "Grouped Queries"
6. Using the "Highlight Drawcall" overlay (or equivalent), observe that both the "Cube" and "RVTWrite" are rendering in the pass.
7. Back in the editor, move the camera and use Unlit mode to view where "RVTWrite" should be
8. Observe that it correctly does not appear in the main view.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-366909 in the post.