[Mesa-dev] [PATCH v2 16/19] i965/fs: Use the builder dispatch_width for computing register offsets
Jason Ekstrand
jason at jlekstrand.net
Tue Jun 30 16:16:14 PDT 2015
On Fri, Jun 26, 2015 at 11:51 AM, Francisco Jerez <currojerez at riseup.net> wrote:
> Jason Ekstrand <jason at jlekstrand.net> writes:
>
>> On Fri, Jun 26, 2015 at 8:52 AM, Francisco Jerez <currojerez at riseup.net> wrote:
>>> Jason Ekstrand <jason at jlekstrand.net> writes:
>>>
>>>> Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
>>>> ---
>>>> src/mesa/drivers/dri/i965/brw_fs.h | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
>>>> index d4cc43d..d94a842 100644
>>>> --- a/src/mesa/drivers/dri/i965/brw_fs.h
>>>> +++ b/src/mesa/drivers/dri/i965/brw_fs.h
>>>> @@ -72,7 +72,7 @@ offset(fs_reg reg, const brw::fs_builder& bld, unsigned delta)
>>>> case MRF:
>>>> case ATTR:
>>>> return byte_offset(reg,
>>>> - delta * MAX2(reg.width * reg.stride, 1) *
>>>> + delta * bld.dispatch_width() * reg.stride *
>>>
>>> Er... This doesn't look right for stride == 0. If you keep the
>>> MAX2(.., 1) expression this patch is:
>>
>> I don't think offset() even makes sense for something with stride ==
>> 0. I added "assert(stride != 0)" right above the byte_offset() call
>> and it passed Jenkins. Would that be an acceptable alternative?
>
> stride == 0 implies that each logical component of your vector takes 1
> scalar component (because all the N channels of your SIMDN value are one
> and the same scalar in your register file), that means that logically
> independent components of a vector or array are stored 1 scalar apart,
> and the previous code was doing the right thing.
I still think offset() is bogus for stride == 0. However, I don't
really feel like arguing the point, so I added the MAX2().
--Jason
>> --Jason
>>
>>> Reviewed-by: Francisco Jerez <currojerez at riseup.net>
>>>
>>>> type_sz(reg.type));
>>>> case UNIFORM:
>>>> reg.reg_offset += delta;
>>>> --
>>>> 2.4.3
>>>>
>>>> _______________________________________________
>>>> mesa-dev mailing list
>>>> mesa-dev at lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list