Re: pbuffers

Brian Paul <brian-CdwZJljFklH+2FeEXyspIVaTQe2KTcn/@public.gmane.org>
Newsgroups gmane.comp.freedesktop.xserver
Organization Tungsten Graphics, Inc.
Message-ID <[email protected]>
Keith Whitwell wrote:
> Brian Paul wrote:
> 
>> Jon Smirl wrote:
>>
>>> It's going to take Brian, Keithw and myself another month or two to 
>>> get a full
>>> standalone OpenGL running. We are missing two major pieces of code, 
>>> pbuffers and
>>> mode support.
>>
>>
>>
>> I started looking at what it would take to get pbuffers going with 
>> mesa-solo, in the r200 driver.  It looks like it'll be some work.
>>
>> For rendering to off-screen color/depth/stencil buffers we need to 
>> pass the buffer's start and stride to the kernel module.  Luckily, it 
>> looks like that's transferred in the drm_radeon_context_regs_t 
>> structure, and not fixed at initialization time.
>>
>> However, this info seems to be ignored in the 
>> radeon_cp_dispatch_clear() function; it seems to assume you're always 
>> clearing the front/back color and depth/stencil buffers.
>>
>> A work-around would be to draw a filled polygon to implement the 
>> clear, but I'm wondering where else there might be similar assumptions 
>> to trip us up.
> 
> 
> Why not just fix the ioctl?

I'm not going to touch it until I understand things better.

It seems that we'd need the drm_radeon_context_regs_t *ctx pointer in 
that function, but I'm not sure how to get it.

Then, drm_radeon_context_regs_t *ctx doesn't have the offset/pitch 
info for both the front and back color buffers.  So doing simultaneous 
front/back clears might not work anymore.

Looks like we're drawing a filled quad to do depth/stencil clears on 
the r200 anyway.


>> The other thing we need is a mechanism to allocate the memory for 
>> pbuffers.  My first guess is that this would have to be allocated out 
>> of the space used for textures.  I think the DRI texture memory 
>> allocator could be adapted to do this.
> 
> 
> Correct.  There's a memory manager there for AGP space, but it's not 
> integrated with the texture manager.  In the i830 driver, particularly 
> the one on the agp-i865-0-1-branch, I have a kernel memory manager which 
> integrates fairly smoothly with the client-driver's texture memory 
> manager.  This is probably a decent starting point.

OK.

-Brian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.