On Thu, 2014-06-19 at 17:12 +0200, Bruno Jimenez wrote:
> Hi,
> 
> To which failure are you refering? Could you please send me a
> test/program that I can try to track this down?

well, the compute_memory_finalize_pending() function can possibly return
-1 so it's prudent to check for it.

as for the testcase, I replaced the inside of 'if (need <= 0)' in the
previous patch with return -1 (to simulate failure). The I used GEGL
test op colors.xml to trigger the situation.

but gegl needs some extra patches to get working on current mesa/clover.
I can send you log with R600_DEBUG=compute if it helps.


regards,
Jan


> 
> Thanks!
> Bruno
> 
> On Thu, 2014-06-19 at 10:21 -0400, Jan Vesely wrote:
> > Signed-off-by: Jan Vesely <jan.ves...@rutgers.edu>
> > CC: Bruno Jimenez <brunoji...@gmail.com>
> > ---
> > 
> > The failure now hits assertion compute_memory_pool.c:408, instead of
> > u_inlines.h:275:pipe_buffer_map_range: Assertion `offset < buffer->width0'
> > 
> >  src/gallium/drivers/r600/evergreen_compute.c | 9 +++++++--
> >  1 file changed, 7 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/gallium/drivers/r600/evergreen_compute.c 
> > b/src/gallium/drivers/r600/evergreen_compute.c
> > index a2abf15..bd6e720 100644
> > --- a/src/gallium/drivers/r600/evergreen_compute.c
> > +++ b/src/gallium/drivers/r600/evergreen_compute.c
> > @@ -659,7 +659,10 @@ static void evergreen_set_global_binding(
> >             return;
> >     }
> >  
> > -   compute_memory_finalize_pending(pool, ctx_);
> > +   if (compute_memory_finalize_pending(pool, ctx_) == -1) {
> > +           /* XXX: Unset */
> > +           return;
> > +   }
> >  
> >     for (int i = 0; i < n; i++)
> >     {
> > @@ -967,7 +970,9 @@ void *r600_compute_global_transfer_map(
> >             "%u (box.x)\n", buffer->chunk->id, box->x);
> >  
> > 
> > -   compute_memory_finalize_pending(pool, ctx_);
> > +   if (compute_memory_finalize_pending(pool, ctx_) == -1) {
> > +           return NULL;
> > +   }
> >  
> >     assert(resource->target == PIPE_BUFFER);
> >     assert(resource->bind & PIPE_BIND_GLOBAL);
> 
> 

-- 
Jan Vesely <jan.ves...@rutgers.edu>

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to