[Mesa-dev] [PATCH v3 19/42] intel/compiler: don't compact 3-src instructions with Src1Type or Src2Type bits
Jason Ekstrand
jason at jlekstrand.net
Fri Jan 18 12:50:36 UTC 2019
On January 18, 2019 04:12:44 Iago Toral <itoral at igalia.com> wrote:
> On Thu, 2019-01-17 at 14:14 -0600, Jason Ekstrand wrote:
>> On Tue, Jan 15, 2019 at 7:55 AM Iago Toral Quiroga <itoral at igalia.com> wrote:
>>> We are now using these bits, so don't assert that they are not set, just
>>> avoid compaction in that case.
>>>
>>> Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
>>> ---
>>> src/intel/compiler/brw_eu_compact.c | 5 ++++-
>>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/intel/compiler/brw_eu_compact.c
>>> b/src/intel/compiler/brw_eu_compact.c
>>> index ae14ef10ec0..20fed254331 100644
>>> --- a/src/intel/compiler/brw_eu_compact.c
>>> +++ b/src/intel/compiler/brw_eu_compact.c
>>> @@ -928,8 +928,11 @@ has_3src_unmapped_bits(const struct gen_device_info
>>> *devinfo,
>>> assert(!brw_inst_bits(src, 127, 126) &&
>>> !brw_inst_bits(src, 105, 105) &&
>>> !brw_inst_bits(src, 84, 84) &&
>>> - !brw_inst_bits(src, 36, 35) &&
>>> !brw_inst_bits(src, 7, 7));
>>> +
>>> + /* Src1Type and Src2Type, used for mixed-precision floating point */
>>> + if (brw_inst_bits(src, 36, 35))
>>> + return true;
>>
>> You're only doing this in the broadwell case. What about SKL+ and CHV?
>> Can we compact mixed-precision stuff there? Looks like maybe we can but
>> there should be at least something in the commit message about that.
>
> In these platforms compaction is possible in some cases and
> set_3src_control_index() takes
> care of this by including these bits in a tablre lookup for accepted
> combinations. I can add this
> to the commit message:
>
> "We are now using these bits, so don't assert that they are not set. In
> gen8, if these bits are set
> compaction is not possible. On gen9 and CHV platforms
> set_3src_control_index() checks these
> bits (and others) against a table to validate if the particular bit
> combination is eligible for
> compaction or not."
>
> With that said, if I am reading this correctly, it looks like all entries
> in gen8_3src_control_index_table that allow compaction require these bits
> to be zero at present, so I guess that right now we could also just extend
> the check I am adding here for BDW to other platforms, however, I guess
> that relying on the array with accepted bit combinations for compaction is
> more reliable should any future platforms allow for more combinations.
Sounds good. With that commit message update, r-b me.
>
>>> }
>>>
>>> return false;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190118/7f80a227/attachment.html>
More information about the mesa-dev
mailing list