1.4: null image/buffer descriptors written when the upscaler / render scale changes (known bug, fixed in 1.5) #1083

Open
opened 2026-10-25 21:15:18 +00:00 by sky_line · 0 comments
Owner

Found by the automated validation run of the 1.4.2 candidate (f4533da713, GTX 1080). Not present in 1.5 (clean at the same step on the same machine; 1.5 restructured this area).

At the step that sets RenderVKUpscaler 2 (render-scale change), one descriptor set (13 writes) is updated before the split-lighting intermediates are re-created: writes 9, 11, 12 are STORAGE_IMAGE with a null image view and write 10 a STORAGE_BUFFER with a null buffer. The log shows ensureDeferSplitTargets re-creating the intermediates immediately after the write. Twice in the run (10 errors):

VUID-VkWriteDescriptorSet-descriptorType-02997: pDescriptorWrites[9].pImageInfo[0].imageView is VK_NULL_HANDLE (STORAGE_IMAGE)
VUID-VkDescriptorBufferInfo-buffer-02998: pDescriptorWrites[10].pBufferInfo[0].buffer is VK_NULL_HANDLE (STORAGE_BUFFER)

NVIDIA tolerates it; without the nullDescriptor feature it is undefined behaviour and could fault on other drivers. Not introduced by 1.4.2's changes (none touch this code); 1.4.1 very likely has it.

Owner decision (2026-10-25): ship 1.4.2 with it as a known bug on 1.4; fix only if a 1.4.3 happens (defer the descriptor write until the split targets exist, or skip it while they are null).

Found by the automated validation run of the 1.4.2 candidate (f4533da713, GTX 1080). Not present in 1.5 (clean at the same step on the same machine; 1.5 restructured this area). At the step that sets `RenderVKUpscaler` 2 (render-scale change), one descriptor set (13 writes) is updated **before** the split-lighting intermediates are re-created: writes 9, 11, 12 are STORAGE_IMAGE with a null image view and write 10 a STORAGE_BUFFER with a null buffer. The log shows `ensureDeferSplitTargets` re-creating the intermediates immediately after the write. Twice in the run (10 errors): ``` VUID-VkWriteDescriptorSet-descriptorType-02997: pDescriptorWrites[9].pImageInfo[0].imageView is VK_NULL_HANDLE (STORAGE_IMAGE) VUID-VkDescriptorBufferInfo-buffer-02998: pDescriptorWrites[10].pBufferInfo[0].buffer is VK_NULL_HANDLE (STORAGE_BUFFER) ``` NVIDIA tolerates it; without the nullDescriptor feature it is undefined behaviour and could fault on other drivers. Not introduced by 1.4.2's changes (none touch this code); 1.4.1 very likely has it. **Owner decision (2026-10-25):** ship 1.4.2 with it as a known bug on 1.4; fix only if a 1.4.3 happens (defer the descriptor write until the split targets exist, or skip it while they are null).
sky_line added this to the Slipstream project 2026-10-25 21:15:18 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#1083
No description provided.