[Mesa-dev] [PATCH 3/4] ac/llvm: set xnack like radeonsi does.

Alex Deucher alexdeucher at gmail.com
Thu Jul 6 21:18:24 UTC 2017


On Thu, Jul 6, 2017 at 4:56 PM, Marek Olšák <maraeo at gmail.com> wrote:
> On Thu, Jul 6, 2017 at 8:12 PM, Alex Deucher <alexdeucher at gmail.com> wrote:
>> On Thu, Jul 6, 2017 at 1:13 PM, Jan Vesely <jan.vesely at rutgers.edu> wrote:
>>> On Thu, 2017-07-06 at 12:09 +1000, Dave Airlie wrote:
>>>> From: Dave Airlie <airlied at redhat.com>
>>>>
>>>> Use family, but only set xnack+ for gfx9.
>>>>
>>>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>>>> ---
>>>>  src/amd/common/ac_llvm_util.c | 4 +++-
>>>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c
>>>> index 4f32d4b..84ed73f 100644
>>>> --- a/src/amd/common/ac_llvm_util.c
>>>> +++ b/src/amd/common/ac_llvm_util.c
>>>> @@ -126,7 +126,9 @@ LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family, enum ac
>>>>       LLVMTargetRef target = ac_get_llvm_target(triple);
>>>>
>>>>       snprintf(features, sizeof(features),
>>>> -              "+DumpCode,+vgpr-spilling,-fp32-denormals,-xnack");
>>>> +              "+DumpCode,+vgpr-spilling,-fp32-denormals%s",
>>>> +              family >= CHIP_VEGA10 ? ",+xnack" : ",-xnack");
>>>
>>> isn't xnack also supported on carrizo?
>>
>> Only on memory mapped via ATC which we only use with ROCm at the moment.
>
> xnack is currently enabled on all compute rings on Carrizo and Stoney.
> ATC or not, can the hw update the xnack SGPR pair? If yes, the
> compiler should reserve it to make sure the registers aren't used as
> general purpose registers.
>
> With current LLVM, the following applies: If you use a compute ring,
> use the default LLVM setting. If not, set -xnack.

That's a question for John or Felix.  As far as I know, on CZ/ST xnack
only works on requests that go through iommuv2.

Alex


More information about the mesa-dev mailing list