On Mon, 2012-01-09 at 15:38 -0500, j.gli...@gmail.com wrote: > From: Jerome Glisse <jgli...@redhat.com> > > Virtual address space put the userspace in charge of their GPU > address space. It's up to userspace to bind bo into the virtual > address space. Command stream can them be executed using the > IB_VM chunck. > > This patch add support for this configuration. It doesn't remove > the 64K ib size limit thought this limit can be extanded up to > 1M for IB_VM chunk. > > v2: fix rendering > v3: fix rendering when using index buffer > v4: make vm conditional on kernel support add basic va management > v5: catch the case when we already have va for a bo > v6: agd5f: update on top of ioctl changes > v7: agd5f: further ioctl updates > v8: indentation cleanup + fix non cayman > v9: rebase against lastest mesa + improvement from Marek & Michel
[...] > diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c > b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c > index d4746ff..7b153b0 100644 > --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c > +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c [...] > + > +static void radeon_bomgr_force_va(struct radeon_bomgr *mgr, uint64_t va, > uint64_t size) > +{ > + pipe_mutex_lock(mgr->bo_va_mutex); > + if (va >= mgr->va_offset) { > + if (va > mgr->va_offset) { > + struct radeon_bo_va_hole *hole; > + hole = CALLOC_STRUCT(radeon_bo_va_hole); > + if (hole) { > + hole->size = va - mgr->va_offset; > + hole->offset = va; hole->offset = mgr->va_offset; Also, I was wondering if mgr->va_offset needs to be guarded against growing beyond 1 << 40. But AFAICT that's already handled by the kernel. The rest looks good to me. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev