Pushed, thanks! Marek
On Sun, Feb 4, 2018 at 8:24 PM, Michal Navratil <f.jo...@email.cz> wrote: > Fix INVALID_OPERATION caused by BufferData with target > EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD when the buffer size is > not page aligned. > --- > src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > index 5d565ff..ba48cad 100644 > --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > @@ -1388,19 +1388,22 @@ static struct pb_buffer *amdgpu_bo_from_ptr(struct > radeon_winsys *rws, > struct amdgpu_winsys_bo *bo; > uint64_t va; > amdgpu_va_handle va_handle; > + /* Avoid failure when the size is not page aligned */ > + uint64_t aligned_size = align64(size, ws->info.gart_page_size); > > bo = CALLOC_STRUCT(amdgpu_winsys_bo); > if (!bo) > return NULL; > > - if (amdgpu_create_bo_from_user_mem(ws->dev, pointer, size, &buf_handle)) > + if (amdgpu_create_bo_from_user_mem(ws->dev, pointer, > + aligned_size, &buf_handle)) > goto error; > > if (amdgpu_va_range_alloc(ws->dev, amdgpu_gpu_va_range_general, > - size, 1 << 12, 0, &va, &va_handle, 0)) > + aligned_size, 1 << 12, 0, &va, &va_handle, 0)) > goto error_va_alloc; > > - if (amdgpu_bo_va_op(buf_handle, 0, size, va, 0, AMDGPU_VA_OP_MAP)) > + if (amdgpu_bo_va_op(buf_handle, 0, aligned_size, va, 0, > AMDGPU_VA_OP_MAP)) > goto error_va_map; > > /* Initialize it. */ > @@ -1416,7 +1419,7 @@ static struct pb_buffer *amdgpu_bo_from_ptr(struct > radeon_winsys *rws, > bo->initial_domain = RADEON_DOMAIN_GTT; > bo->unique_id = __sync_fetch_and_add(&ws->next_bo_unique_id, 1); > > - ws->allocated_gtt += align64(bo->base.size, ws->info.gart_page_size); > + ws->allocated_gtt += aligned_size; > > amdgpu_add_buffer_to_global_list(bo); > > -- > 2.7.4 > > _______________________________________________ > 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