aco: implement VK_KHR_shader_float_controls
authorRhys Perry <pendingchaos02@gmail.com>
Sat, 9 Nov 2019 20:51:45 +0000 (20:51 +0000)
committerRhys Perry <pendingchaos02@gmail.com>
Fri, 15 Nov 2019 17:36:21 +0000 (17:36 +0000)
commitdf645fa369d12be4d5e0fd9e4f6d4455caf2f4c3
treeedf4d5e28906aecb23581908f3e5bdb430570770
parentbe1d11249bde1e041f6eb9c0acedb041ab450c4b
aco: implement VK_KHR_shader_float_controls

This actually supports more of the extension than the LLVM backend but we
can't enable it because ACO doesn't work with all stages yet.

With more of it enabled, some CTS tests fail because our 64-bit sqrt
is very imprecise. I can't find any precision requirements for it
anywhere, so I'm thinking it might be a CTS issue.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
src/amd/compiler/aco_assembler.cpp
src/amd/compiler/aco_instruction_selection.cpp
src/amd/compiler/aco_instruction_selection_setup.cpp
src/amd/compiler/aco_ir.h
src/amd/compiler/aco_lower_to_hw_instr.cpp
src/amd/compiler/aco_opt_value_numbering.cpp
src/amd/compiler/aco_optimizer.cpp
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_extensions.py