From: Jerome G. <gl...@fr...> - 2009-11-05 21:20:56
|
On Thu, 2009-11-05 at 20:04 +0200, Pekka Paalanen wrote: > On Wed, 4 Nov 2009 17:42:26 +0000 > Jakob Bornecrantz <ja...@vm...> 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). |