D939 - A depth surface no draw targeted is read from guest memory

Status: decided Date: 2026-10-21 known_by: assumed

A draw may sample a flat depth surface (a depth swizzle and a depth image format, D817) that no draw in the run has yet bound as its depth target, nor cleared through one. The console's sampler reads whatever its memory holds. Here it is read the same way: one level of 16_UNORM or 32_FLOAT, detiled by the swizzle equation for its mode (D923) and bound as f32 depths, compared through the sampler where the module compares. A surface a draw has targeted is the backend's attachment, as before (D817), and a cleared one its clear value (D935).

Why: Grand Theft Auto V's loading-screen lighting samples a 512x512 16_UNORM shadow map per light beside the 1024x1536 one it draws. Nothing in the run draws the smaller ones before that pass, and the backend refused the segment for binding a depth target it never drew. Every later submission waited behind it.

Rejected: