Alejandro Piñeiro <apinhe...@igalia.com> writes: > This can happens if using emit_untyped_atomic for an atomic dec/inc > --- > src/mesa/drivers/dri/i965/brw_vec4_surface_builder.cpp | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_vec4_surface_builder.cpp > b/src/mesa/drivers/dri/i965/brw_vec4_surface_builder.cpp > index 28002c5..ba1e670f 100644 > --- a/src/mesa/drivers/dri/i965/brw_vec4_surface_builder.cpp > +++ b/src/mesa/drivers/dri/i965/brw_vec4_surface_builder.cpp > @@ -131,9 +131,10 @@ namespace brw { > bld.MOV(offset(payload, n++), > offset(retype(addr, BRW_REGISTER_TYPE_UD), i)); > > - for (unsigned i = 0; i < src_sz; i++) > - bld.MOV(offset(payload, n++), > - offset(retype(src, BRW_REGISTER_TYPE_UD), i)); > + if (src.file != BAD_FILE) > + for (unsigned i = 0; i < src_sz; i++) > + bld.MOV(offset(payload, n++), > + offset(retype(src, BRW_REGISTER_TYPE_UD), i)); > I don't think this is right, the calculated message size will be off if src is invalid but src_sz is non-zero. In cases where the source is not present you need to make sure you pass src_sz=0 to emit_send() (e.g. in emit_untyped_atomic).
Thanks. > /* Reduce the dynamically uniform surface index to a single > * scalar. > -- > 2.5.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev