> On Oct 3, 2017, at 13:58, Dave Airlie <airl...@gmail.com> wrote: > > From: Dave Airlie <airl...@redhat.com> > > So it appears the Vulkan SPIR-V fma opcode can be equivalent to a > mad operation, and the fma hw opcode on AMD hw is issued like a double > opcode so is slower. Also the radeonsi stack does this. > > This appears to improve performance on a number of games from Feral, > and thanks to Feral for noticing the problem. > > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/amd/vulkan/radv_shader.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c > index ca0ad2d..a37345b 100644 > --- a/src/amd/vulkan/radv_shader.c > +++ b/src/amd/vulkan/radv_shader.c > @@ -64,6 +64,7 @@ static const struct nir_shader_compiler_options nir_options > = { > .lower_unpack_unorm_4x8 = true, > .lower_extract_byte = true, > .lower_extract_word = true, > + .lower_ffma = true, > .max_unroll_iterations = 32 > }; > > -- > 2.9.5 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
If it doesn’t matter this should emit llvm.fmuladd. The backend decides what’s best to do based on the specific target whether it’s an FMA or MAD. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev