gallium/radeon: re-enable unsafe math for graphics shaders
authorMarek Olšák <marek.olsak@amd.com>
Sat, 25 Jul 2015 10:01:07 +0000 (12:01 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 31 Jul 2015 14:49:16 +0000 (16:49 +0200)
This reverts commit 4db985a5fa9ea985616a726b1770727309502d81.

The grass no longer disappears, which was the reason the commit was reverted.
This might affect tessellation. We'll see.

Totals from affected shaders:
SGPRS: 151672 -> 150232 (-0.95 %)
VGPRS: 90620 -> 89776 (-0.93 %)
Code Size: 3980472 -> 3920836 (-1.50 %) bytes
LDS: 67 -> 67 (0.00 %) blocks
Scratch: 1357824 -> 1202176 (-11.46 %) bytes per wave

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
src/gallium/drivers/radeon/radeon_llvm_emit.c

index 973d6edff8a2c2ce8638f4f0e8cda9a79891c8df..c442c6566dc6466544e1e5b203ab2a40ee1e092b 100644 (file)
@@ -82,6 +82,10 @@ void radeon_llvm_shader_type(LLVMValueRef F, unsigned type)
        sprintf(Str, "%1d", llvm_type);
 
        LLVMAddTargetDependentFunctionAttr(F, "ShaderType", Str);
+
+       if (type != TGSI_PROCESSOR_COMPUTE) {
+               LLVMAddTargetDependentFunctionAttr(F, "unsafe-fp-math", "true");
+       }
 }
 
 static void init_r600_target()