On 12.02.2009 15:10, Roland Scheidegger wrote:
> On 12.02.2009 13:48, Roland Scheidegger wrote:
>> On 12.02.2009 06:29, Dave Airlie wrote:
>>> Hi,
>>>
>>> So I have a goal to get a radeon driver that works on a bufmgr and that 
>>> then can be used on non-mm/mm, and also where I can make DRI2 and FBOs 
>>> work.
>>>
>>> So with that in mind and not wanting to write this 3 times, I've done a 
>>> major refactoring of the radeon/r200/r300 drivers.
>>>
>>> I've refactored all the:
>>> buffer management,
>>> buffer swap + copy,
>>> texture and mipmap management,
>>> command submission handling,
>>> state + atom emission
>>> dma buffers,
>>> lock code,
>>>
>>> into common files for all 3 drivers, and re-used the same code in nearly 
>>> the same ways across all 3.
>>>
>>> So far I've been working on getting the legacy buffer/command code into 
>>> shape so I can merge this in place of the current drivers without 
>>> suffering any major regressions. Then start adding the code necessary for 
>>> DRI2/GEM/FBOs on top of it. I think this code is pretty close to read to 
>>> merge, I'd like people to bash on it, and report any major regressions 
>>> above the current r100/r200/r300 codebases with these drivers.
>>>
>>> In order to get the mm/dri2 stuff working, I mainly need to 
>>> 1. get libdrm_radeon into a happy place. You don't require libdrm_radeon
>>> for this stuff at all I've made wrappers that I just need to use some 
>>> magic to hook up.
>>> 2. add userspace clear paths for r100/r200.
>>> 3. fix lockups from DRI2 lockless :)
>>> 4. make it go fast.
>>>
>>> Most of the code was written by Nicolai and Jerome, I've just spent 2-3 
>>> weeks moving it around the place until it works!!
>>>
>>> I've done a series of piglit regressions and I have one or two to fix, but 
>>> it seems to be only a couple left.
>>>
>>> Also any suggestions for things I should use to test this? I've mainly 
>>> been doing piglit + gears + ipers + openarena when I can.
>>>
>>> Dave. 
>> Quite impressive!
>> Not spent too much time on it, but a couple of comments:
>> Are you sure the tiling patterns for r100/r200/r300 are really the same
>> for depth buffers in the span code? I thought they were different,
>> though maybe just the code was different...
>> Also, texture tiling is gone for now? A pity as it really makes some
>> performance difference (for uncompressed textures at least). Well if it
>> can be added back easily later (though IIRC there were some gruesome
>> differences between r100/r200 there) I don't care too much.
>> I think that you should not allow passing texture formats to
>> radeonChooseTextureFormats the hardware can't handle (float formats on
>> r100/r200) and return an error instead.
> 
> Compressed textures also seem to be broken, since they'll raise a FPE:
> Program received signal SIGFPE, Arithmetic exception.
> [Switching to Thread -1480239424 (LWP 11180)]
> 0x9c80da1d in radeon_miptree_create (rmesa=0x9499c48, t=0x9909e80,
> target=3553, firstLevel=0,
>     lastLevel=10, width0=1024, height0=1024, depth0=1, bpp=0,
> tilebits=0, compressed=38)
>     at radeon_mipmap_tree.c:79
> 79                              align = 32 / mt->bpp;
> 
> bpp is derived initially from TexelBytes, which is always 0 for
> compressed textures.

Hmm more bugs, pretty much everything I try on r200 (that includes
glxgears) gets infinitely stuck in legacy_wait_pending after a frame or two.

Roland


------------------------------------------------------------------------------
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to