On Thu, 2009-11-05 at 20:04 +0200, Pekka Paalanen wrote:> On Wed, 4 Nov 2009 17:42:26 +0000
> Jakob Bornecrantz <jakob at vmware.com> wrote:
>
> > Hi Jerome
> >
> > On 4 nov 2009, at 15.58, Jerome Glisse wrote:
> > >
> > > Note: For reference my issue is with cursor on old radeon hw,
> > > cursor must be in the next 128M from the crtc scanout buffer. We
> > > got issue when someone start to resize their screen at which
> > > point the scanout buffer can endup after the cursor in vram.
> > > Other solution would be to add multiple bo adjacent validation
> > > function to ttm (likely less ttm change).
> >
> > Can you solve your problem by being able to place the buffer at
> > certain location? We had the same need but managed to work around
> > it with a quick and dirty hack.
> >
> > Implementing that would mostly be about changing drm_mm.c to
> > handle placing buffers at certain locations. And in TTM core
> > being able to evict buffers that are in that place.
>
> That sounds like something that could solve an issue in Nouveau
> with nv04 card family. The following is hearsay, but I try to
> describe it.
>
> Of 32 MB of VRAM, the scanout buffer must reside within the
> first 16 MB. Any(?) other buffers do not have this limitation
> e.g. textures. Setting up separate memory spaces for these
> halves, say, TTM VRAM and TTM PRIV1, would be inconvenient,
> because buffers could not be laid accross the boundary.
>
> Does this make sense?
> Nouveau people, did I get this right?
>
Here is the API i was thinking of:
ttm_bo_validate_in_range(usualvalidateparameter,
unsigned long minoffset,
unsigned long maxoffset)
This function will try to validate the buffer at an offset
btw min & max. Will either fail of succeed and could return
-EINVAL if max-min < bo->size.
I think it's flexible enough and should full feel nouveau,
radeon & poulsbo needs.
Cheers,
Jerome
I am bit busy with bugs right now but i will look into doing
the actual code soon (one my bug need this).