[Mesa-dev] [PATCH] i965: Make exec_size 16 word/byte registers use exec_size halving again.

Francisco Jerez currojerez at riseup.net
Fri May 13 19:08:30 UTC 2016


Kenneth Graunke <kenneth at whitecape.org> writes:

> On Friday, May 13, 2016 3:39:29 AM PDT Connor Abbott wrote:
>> My understanding is that compression isn't necessary here, at least on
>> newer gens (I don't know much about gen4/5). Could you explain why a
>> <16,16,1>:w region is illegal? It would be nice to get a PRM citation
>> in the comment below.
>
> Matt mentioned it was illegal in a bugzilla comment, but it certainly
> seems legal to me, at least with W types.  However,  we /are/ using
> compression...and using both together seems wrong...
>
> fs_generator::generate_code() contains:
>
>    if (dispatch_width == 16)
>       brw_set_default_compression_control(p, BRW_COMPRESSION_COMPRESSED);
>
That seems pretty bogus (and Connor's patch looks correct to me).  For
SIMD32 I had to fix the generator to set compression control to
BRW_COMPRESSION_COMPRESSED for instructions that write multiple
registers *only* -- Do you want me to try if that alone fixes the
regressions on 965GM?

> It looks like we also have code a little ways down to set compression
> control based on the register region, so maybe we don't the above code.
> But I'm kind of hesitant to delete it - we might need it for some
> instructions like IF which don't have sources/destinations.
>

Control flow instruction have to be uncompressed anyway.  :)

> --Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160513/00f22ff2/attachment.sig>


More information about the mesa-dev mailing list