[Mesa-dev] [PATCH v2] ac: Use DPP for build_ddxy where possible.
Bas Nieuwenhuizen
bas at basnieuwenhuizen.nl
Wed May 23 17:41:29 UTC 2018
On Wed, May 23, 2018 at 6:37 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> On 23.05.2018 15:30, Bas Nieuwenhuizen wrote:
>>
>> WQM is pretty reliable now on LLVM 7, so let us just use
>> DPP + WQM.
>>
>> This gives approximately a 1.5% performance increase on the
>> vrcompositor built-in benchmark.
>>
>> v2: Use ac_build_quad_swizzle.
>> ---
>> src/amd/common/ac_llvm_build.c | 16 +++++++++++++++-
>> 1 file changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/amd/common/ac_llvm_build.c
>> b/src/amd/common/ac_llvm_build.c
>> index 36c1d62637b..0c0228fe9c7 100644
>> --- a/src/amd/common/ac_llvm_build.c
>> +++ b/src/amd/common/ac_llvm_build.c
>> @@ -1170,7 +1170,21 @@ ac_build_ddxy(struct ac_llvm_context *ctx,
>> LLVMValueRef tl, trbl, args[2];
>> LLVMValueRef result;
>> - if (ctx->chip_class >= VI) {
>> + if (ctx->chip_class >= VI && HAVE_LLVM >= 0x0700) {
>
>
> Do you really need the chip_class check here? ac_build_quad_swizzle should
> just use ds_swizzle on the older chips, right?
>
> So all the code below can be removed once we drop support for LLVM < 7
> (which will of course be quite some time in the future, but hey!)
Fair enough, removed the check locally.
>
> Apart from that,
>
> Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
>> + unsigned tl_lanes[4], trbl_lanes[4];
>> +
>> + for (unsigned i = 0; i < 4; ++i) {
>> + tl_lanes[i] = i & mask;
>> + trbl_lanes[i] = (i & mask) + idx;
>> + }
>> +
>> + tl = ac_build_quad_swizzle(ctx, val,
>> + tl_lanes[0], tl_lanes[1],
>> + tl_lanes[2], tl_lanes[3]);
>> + trbl = ac_build_quad_swizzle(ctx, val,
>> + trbl_lanes[0], trbl_lanes[1],
>> + trbl_lanes[2],
>> trbl_lanes[3]);
>> + } else if (ctx->chip_class >= VI) {
>> LLVMValueRef thread_id, tl_tid, trbl_tid;
>> thread_id = ac_get_thread_id(ctx);
>>
>
>
>
> --
> Lerne, wie die Welt wirklich ist,
> Aber vergiss niemals, wie sie sein sollte.
More information about the mesa-dev
mailing list