As discussed on Discord:
ftou/ftoi behaviour would require us to open-code the conversion instructions with at least three OpFCompare+OpSelect, which drivers for hardware that already behaves this way would have to optimize away. This is kind of problematic for common operations like this.Makes sense. I will se what I can do on the lavapipe side.
Nothing extracted yet.
Float to integer conversions
The SPIR_V spec states:
test_shader_instructions expects the conversions to saturate and map NAN to 0. The issue can be reproduced when running on lavapipe.
Texture sampling level selection
The Vulkan spec allows lod=0.5 to be rounded to 1 or 0: https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection with 0 being preferred. test_sample_instructions test 23 expects it to be ceiled.