Iago Toral <ito...@igalia.com> 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 mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev