Mesa (master): radeonsi/gfx9: compile shaders with +xnack
Marek Olšák
mareko at kemper.freedesktop.org
Mon May 22 17:23:55 UTC 2017
Module: Mesa
Branch: master
Commit: 2beb31bd7c186641a2bb9abf6d2e13d42e43d944
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2beb31bd7c186641a2bb9abf6d2e13d42e43d944
Author: Marek Olšák <marek.olsak at amd.com>
Date: Fri Apr 7 18:30:28 2017 +0200
radeonsi/gfx9: compile shaders with +xnack
so that LLVM doesn't allocate SGPRs where XNACK is.
Cc: 17.1 <mesa-stable at lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
---
src/gallium/drivers/radeonsi/si_pipe.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index eaa3348bcb..6f82e294bd 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -33,9 +33,6 @@
#include "vl/vl_decoder.h"
#include "../ddebug/dd_util.h"
-#define SI_LLVM_DEFAULT_FEATURES \
- "+DumpCode,+vgpr-spilling,-fp32-denormals,-xnack"
-
/*
* pipe_context
*/
@@ -127,12 +124,16 @@ static LLVMTargetMachineRef
si_create_llvm_target_machine(struct si_screen *sscreen)
{
const char *triple = "amdgcn--";
+ char features[256];
+
+ snprintf(features, sizeof(features),
+ "+DumpCode,+vgpr-spilling,-fp32-denormals,+fp64-denormals%s%s",
+ sscreen->b.chip_class >= GFX9 ? ",+xnack" : ",-xnack",
+ sscreen->b.debug_flags & DBG_SI_SCHED ? ",+si-scheduler" : "");
return LLVMCreateTargetMachine(si_llvm_get_amdgpu_target(triple), triple,
r600_get_llvm_processor_name(sscreen->b.family),
- sscreen->b.debug_flags & DBG_SI_SCHED ?
- SI_LLVM_DEFAULT_FEATURES ",+si-scheduler" :
- SI_LLVM_DEFAULT_FEATURES,
+ features,
LLVMCodeGenLevelDefault,
LLVMRelocDefault,
LLVMCodeModelDefault);
More information about the mesa-commit
mailing list