[Mesa-dev] [PATCH 15/21] i965: Define consistent interface to predicate an instruction.
Francisco Jerez
currojerez at riseup.net
Thu Apr 30 06:47:03 PDT 2015
Matt Turner <mattst88 at gmail.com> writes:
> On Tue, Apr 28, 2015 at 10:08 AM, Francisco Jerez <currojerez at riseup.net> wrote:
>> ---
>> src/mesa/drivers/dri/i965/brw_ir_fs.h | 22 ++++++++++++++++++++++
>> src/mesa/drivers/dri/i965/brw_ir_svec4.h | 26 ++++++++++++++++++++++++++
>> src/mesa/drivers/dri/i965/brw_ir_vec4.h | 22 ++++++++++++++++++++++
>> 3 files changed, 70 insertions(+)
>>
>> diff --git a/src/mesa/drivers/dri/i965/brw_ir_fs.h b/src/mesa/drivers/dri/i965/brw_ir_fs.h
>> index 1bbe164..b2dfa00 100644
>> --- a/src/mesa/drivers/dri/i965/brw_ir_fs.h
>> +++ b/src/mesa/drivers/dri/i965/brw_ir_fs.h
>> @@ -329,4 +329,26 @@ exec_all(fs_inst *inst)
>> return inst;
>> }
>>
>> +/**
>> + * Make the execution of \p inst dependent on the evaluation of a possibly
>> + * inverted predicate.
>> + */
>> +static inline fs_inst *
>> +exec_predicate_inv(enum brw_predicate pred, bool inverse,
>> + fs_inst *inst)
>
> Is the order of the parameters for a particular reason? If not, I'd
> much rather this be
>
> exec_predicate_inv(fs_inst *inst, enum brw_predicate pred, bool inverse = false)
>
> since it feels more natural for inst to be first, and
> predicate-inverse is almost never true unless you start doing that a
> lot in later patches.
Hi Matt,
There is a reason indeed, it's not extremely important though so I'd be
okay with the argument order you propose. The reason is that the "inst"
argument is typically a complex (often multi-line) expression so having
the "control" arguments right next to the function being applied seemed
to improve readability of the code considerably. E.g.:
exec_predicate_inv(BRW_PREDICATE_NORMAL, true,
bld.OP(...,
...,
...));
Seemed more readable than:
exec_predicate_inv(bld.OP(...,
...,
...),
BRW_PREDICATE_NORMAL, true /* Where were these going
to again? */);
For the most common case where the predicate is not inverted there is a
separate convenience function exec_predicate() which just passes zero to
the "inverse" argument.
Thanks for your review!
-------------- 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/20150430/016c4ace/attachment.sig>
More information about the mesa-dev
mailing list