HydraIssues

pyrowave: shader device features are not enabled on the compositor device
open unclassified Project: hydra Parent: #388 Reporter: 14 Sep 2026 23:06

Description

OPEN. Found with Vulkan validation on msi1060 (GTX 1060, Omarchy) during the first working pyrowave stream, 2026-09-14. 58 validation errors remain after the green-screen fix.

PyroWave's shaders declare capabilities the device was not created with:
VUID-RuntimeSpirv-storageBuffer16BitAccess-11161 (8 occurrences)
VUID-RuntimeSpirv-storageBuffer8BitAccess-06328 (6)
VUID-VkShaderModuleCreateInfo-pCode-08740 (10)
VUID-VkPipelineShaderStageCreateInfo-flags-02784/02785 (subgroup size control, 10 each)
VUID-vkUpdateDescriptorSets-None-03047 (10)

The GTX 1060 DOES support storageBuffer16BitAccess and storageBuffer8BitAccess (verified via vulkaninfo), so these should be enabled and are not. It does NOT support shaderFloat16, which is legitimate: pyrowave selects its non-fp16 shader variants in that case (pyrowave_encoder.cpp, feat12.shaderFloat16 ? "_fp16" : "").

The consolidated Monado patch (patches/monado/9901-a-vk-expose-...) DOES apply and DOES request the features in comp_vulkan.c create_device; verified in the build tree. So the request is not reaching device creation, or filter_device_features clears it. Note storage_buffer_8bit_access is Monado's own pre-existing feature and is also reported unenabled, which suggests the problem is not specific to our patch.

NVIDIA's driver tolerates this and the stream works, which is why it was not caught sooner. Another vendor may not. Investigate before running the pyrowave server on an AMD or Intel host.