[Mesa-dev] [PATCH 04/12] i965/fs: Pass a BAD_FILE header source to LOAD_PAYLOAD in emit_texture_gen7().

Francisco Jerez currojerez at riseup.net
Wed Jul 22 10:26:13 PDT 2015


Jason Ekstrand <jason at jlekstrand.net> writes:

> On Wed, Jul 22, 2015 at 12:43 AM, Francisco Jerez <currojerez at riseup.net> wrote:
>> Jason Ekstrand <jason at jlekstrand.net> writes:
>>
>>> On Sat, Jul 18, 2015 at 7:34 AM, Francisco Jerez <currojerez at riseup.net> wrote:
>>>> So that it's left uninitialized by LOAD_PAYLOAD, we only need to
>>>> reserve space for it in the message since it will be initialized
>>>> implicitly by the generator.
>>>> ---
>>>>  src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 7 ++++---
>>>>  1 file changed, 4 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
>>>> index 522e13e..89fcc49 100644
>>>> --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
>>>> +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
>>>> @@ -473,8 +473,9 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode op, fs_reg dst,
>>>>     if (op == ir_tg4 || offset_value.file != BAD_FILE ||
>>>>         is_high_sampler(devinfo, sampler)) {
>>>>        /* For general texture offsets (no txf workaround), we need a header to
>>>> -       * put them in.  Note that for SIMD16 we're making space for two actual
>>>> -       * hardware registers here, so the emit will have to fix up for this.
>>>> +       * put them in.  Note that we're only reserving space for it in the
>>>> +       * message payload as it will be initialized implicitly by the
>>>> +       * generator.
>>>
>>> Mind splitting this in two?  Fixing the comment above is really
>>> unrelated to passing BAD_FILE below.
>>
>> It seemed like the sentence I changed was trying to explain what the
>> line of code I changed was doing.  It may sound unrelated because the
>> comment was completely misleading (or just outdated), but it can only
>> refer to the three lines of code below...
>
> It does refer to the three lines of code below, but the fact that it's
> bogus has nothing to do with the change below.  It's been wrong for
> probably 8 months and I've just never noticed.  Register allocation
> used to, in SIMD16 mode, work in terms of pairs of physical registers.
> In the texturing code, we needed a 1-register header so in SIMD16, we
> got 2 registers and then the generator knew to put the header in the
> second half.  About 8 months ago, I changed RA to work in terms of
> single hardware registers even on SIMD16 and this comment has been
> stale ever since.

Alright...  I'll drop the comment from this patch and change it as a
follow-up.

>
>>> --Jason
>>>
>>>>         *
>>>>         * * ir4_tg4 needs to place its channel select in the header,
>>>>         * for interaction with ARB_texture_swizzle
>>>> @@ -483,7 +484,7 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode op, fs_reg dst,
>>>>         * need to offset the Sampler State Pointer in the header.
>>>>         */
>>>>        header_size = 1;
>>>> -      sources[0] = fs_reg(GRF, alloc.allocate(1), BRW_REGISTER_TYPE_UD);
>>>> +      sources[0] = fs_reg();
>>>>        length++;
>>>>     }
>>>>
>>>> --
>>>> 2.4.3
>>>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150722/b3640c7f/attachment-0001.sig>


More information about the mesa-dev mailing list