Cc stable? Reviewed-by: Marek Olšák <marek.ol...@amd.com>
Marek On Thu, Feb 2, 2017 at 6:40 PM, Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > cs can be NULL when it comes from r600_buffer_map_sync_with_rings() > to avoid doing the same checks. It was checked for write mappings > but not for read mappings. > > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> > --- > src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) > > diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > index 5ee27b8ede..5b9bd8c6dd 100644 > --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > @@ -254,14 +254,17 @@ static void *amdgpu_bo_map(struct pb_buffer *buf, > * (neither one is changing it). > * > * Only check whether the buffer is being used for write. */ > - if (cs && amdgpu_bo_is_referenced_by_cs_with_usage(cs, bo, > - > RADEON_USAGE_WRITE)) { > - cs->flush_cs(cs->flush_data, 0, NULL); > - } else { > - /* Try to avoid busy-waiting in amdgpu_bo_wait. */ > - if (p_atomic_read(&bo->num_active_ioctls)) > - amdgpu_cs_sync_flush(rcs); > + if (cs) { > + if (amdgpu_bo_is_referenced_by_cs_with_usage(cs, bo, > + > RADEON_USAGE_WRITE)) { > + cs->flush_cs(cs->flush_data, 0, NULL); > + } else { > + /* Try to avoid busy-waiting in amdgpu_bo_wait. */ > + if (p_atomic_read(&bo->num_active_ioctls)) > + amdgpu_cs_sync_flush(rcs); > + } > } > + > amdgpu_bo_wait((struct pb_buffer*)bo, PIPE_TIMEOUT_INFINITE, > RADEON_USAGE_WRITE); > } else { > -- > 2.11.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev