Iago Toral <[email protected]> writes: > On Wed, 2016-09-07 at 18:48 -0700, Francisco Jerez wrote: > (...) >> diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp >> b/src/mesa/drivers/dri/i965/brw_shader.cpp >> index ea39252..29435f6 100644 >> --- a/src/mesa/drivers/dri/i965/brw_shader.cpp >> +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp >> @@ -672,7 +672,7 @@ backend_shader::backend_shader(const struct >> brw_compiler *compiler, >> bool >> backend_reg::equals(const backend_reg &r) const >> { >> - return brw_regs_equal(this, &r) && reg_offset == r.reg_offset; >> + return brw_regs_equal(this, &r) && offset == r.offset; >> } >> >> bool >> @@ -750,7 +750,9 @@ backend_reg::in_range(const backend_reg &r, >> unsigned n) const >> return (file == r.file && >> nr == r.nr && >> reg_offset >= r.reg_offset && >> - reg_offset < r.reg_offset + n); >> + reg_offset < r.reg_offset + n && > > Are you keeping the checks with reg_offset here for a reason or is this > just an omission? I would expect that these would be replaced with the > checks below like we do everywhere else in this patch. > Yeah, the reason is that this code is shared between both back-ends, and the VEC4 back-end is still using the old reg_offset field until PATCH 2, so I left these lying around for the moment until PATCH 3 in order to avoid a temporary regression.
>> + offset >= r.offset &&
>> + offset < r.offset + n * REG_SIZE);
>> }
>>
>> bool
>> diff --git a/src/mesa/drivers/dri/i965/brw_shader.h
>> b/src/mesa/drivers/dri/i965/brw_shader.h
>> index 0102098..72b94b6 100644
>> --- a/src/mesa/drivers/dri/i965/brw_shader.h
>> +++ b/src/mesa/drivers/dri/i965/brw_shader.h
>> @@ -44,14 +44,14 @@ struct backend_reg : private brw_reg
>> const brw_reg &as_brw_reg() const
>> {
>> assert(file == ARF || file == FIXED_GRF || file == MRF || file
>> == IMM);
>> - assert(reg_offset == 0);
>> + assert(reg_offset == 0 && offset == 0);
>
> Same here.
>
>> return static_cast<const brw_reg &>(*this);
>> }
>>
>> brw_reg &as_brw_reg()
>> {
>> assert(file == ARF || file == FIXED_GRF || file == MRF || file
>> == IMM);
>> - assert(reg_offset == 0);
>> + assert(reg_offset == 0 && offset == 0);
>
> And here.
>
>
>> return static_cast<brw_reg &>(*this);
>> }
>>
>> @@ -75,6 +75,9 @@ struct backend_reg : private brw_reg
>> */
>> uint16_t reg_offset;
>>
>> + /** Offset from the start of the (virtual) register in bytes. */
>> + uint16_t offset;
>> +
>> using brw_reg::type;
>> using brw_reg::file;
>> using brw_reg::negate;
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
