Matt Turner <matts...@gmail.com> writes:

> On Wed, Mar 11, 2015 at 1:07 PM, Kenneth Graunke <kenn...@whitecape.org> 
> wrote:
>> On Wednesday, March 11, 2015 07:25:14 PM Francisco Jerez wrote:
>>> "Pohjolainen, Topi" <topi.pohjolai...@intel.com> writes:
>>> > On Fri, Feb 27, 2015 at 05:34:44PM +0200, Francisco Jerez wrote:
>>> >> @@ -1218,17 +1198,6 @@ 
>>> >> fs_generator::generate_varying_pull_constant_load_gen7(fs_inst *inst,
>>> >>                                false /* header */,
>>> >>                                simd_mode,
>>> >>                                0);
>>> >> -      brw_inst_set_exec_size(p->brw, insn_or, BRW_EXECUTE_1);
>>> >> -      brw_inst_set_src1_reg_type(p->brw, insn_or, BRW_REGISTER_TYPE_UD);
>>> >> -      brw_set_src0(p, insn_or, addr);
>>> >> -      brw_set_dest(p, insn_or, addr);
>>> >> -
>>> >> -
>>> >> -      /* dst = send(offset, a0.0) */
>>> >> -      brw_inst *insn_send = brw_next_insn(p, BRW_OPCODE_SEND);
>>> >> -      brw_set_dest(p, insn_send, retype(dst, BRW_REGISTER_TYPE_UW));
>>> >
>>> > I'm just reading this through again and noticed that the destination type
>>> > changes here to BRW_REGISTER_TYPE_UD (set in brw_send_indirect_message()).
>>>
>>> Ah, yes, that change is intentional.  The type being set to UW was a
>>> remnant from Gen4-5 times -- Those used to require the destination type
>>> of SEND to be W/UW when doing 16-wide (even if the message was actually
>>> writing dwords back...).  None of the codepaths modified in this patch
>>> (or in the rest of the series) should be executed on Gen4 or 5.
>>>
>>> Anyway good catch. :)
>>
>> I'm pretty sure this does still apply on Gen7 - notably, BLORP uses UW
>> destinations for SIMD16 sends, and I believe Paul Berry tracked actual
>> issues down to that.  BLORP only exists on Gen6+.
>>
>> I also seem to recall Chris Forbes hitting an issue relating to that
>> which he and Paul fixed during XDC 2013.
>>
>> CC'ing Chris and Matt in case they remember any details.
>
> I believe he was helping Abdiel track down a hang when using the
> resource streamer, and it turned out that using UW typed-destinations
> on sends in blorp fixed it:
>
> commit 4c4934636cb286e7d7836afc26e9d392e2f0f155
> Author: Paul Berry <stereotype...@gmail.com>
> Date:   Tue Sep 24 15:18:52 2013 -0700
>
>     i965/blorp: retype destination register for texture SEND instruction to 
> UW.
>
> The resource streamer only exists on HSW+, so the UW dest is certainly
> needed for things after Gen5.

Odd, I haven't seen a mention of that restriction in the hardware specs
(at least not on reasonably recent ones -- the Gen4 and 5 specs do
mention it and they actually hang if you send a message with compression
enabled and anything bigger than a W as destination type).  Is this a
purely empirical finding?  If so, doesn't it deserve a big fat warning
comment?  Is this only a problem for some interaction with the resource
streamer or has it ever been observed to fix something else?

Attachment: signature.asc
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to