D905 - A grid given in threads runs the groups covering it

Status: decided Date: 2026-10-19

When a dispatch initiator sets USE_THREAD_DIMENSIONS, its dimensions count threads, not groups. It runs, along each dimension, the groups that cover the grid. Where the group size does not divide the grid, the last group runs the remainder: PARTIAL_TG_EN, and COMPUTE_NUM_THREAD_*'s partial count equal to that remainder. This is how radv sets up an unaligned dispatch (radv_cmd_buffer.c:14795-14863), and it reuses the partial last group already modelled.

A remainder with no partial group is refused, and so is a partial count that is not the remainder. What the hardware does in either case is unmeasured.

Why: Grand Theft Auto V's first loading-screen dispatch gives 0x4800 threads in groups of 64 under initiator 0x61, and was refused.