Brian Paul wrote:
>> I've looked at that and indeed, chances that we actually hit a fast 
>> memcopy path when using rgba8888 is about as big as hell freezing, at 
>> least on little endian. Even after modifying texstore_rgba8888 (see 
>> patch), it'll just never happen. Everyone and their uncle uses just 
>> GL_UNSIGNED_BYTE as type, and since we're using 
>> _mesa_texformat_rgba8888 (not the _rev type) that will cause a slow 
>> path. Not sure what applications tend to use on big endian, but if 
>> they are doing the same they won't hit the fast path neither.
>> So, it looks to me like radeon/r200/r300 should always just use 
>> argb8888 instead (patch for r200 attached), not least because there is 
>> much more optimization in mesa's texstore function for this (all 
>> normal component swapping requires a temporary image with 
>> texstore_rgba8888, but does not with texstore_argb8888), and it would 
>> not only help for tfp, but some other apps could benefit too (ut2k3 
>> uses GL_BGRA src format and should hit the memcopy path too - not that 
>> it would really make a performance difference).
>> In theory it might be possible to configure the chip to do endianness 
>> swapping on its own (so we could use the rgba8888_rev format in cases 
>> the src format is rgba8888), but it's probably not worth the effort. 
>> Not for r300 though, I think it could easily do better, as the chip 
>> supports free swizzling of texture components it seems.
> 
> Roland, I'd say your patches looks good.
> 
> I just added a new Glean test that exercises all the different 
> combinations of format/type/internalFormat parameters for glTexImage2D 
> (and glDrawPixels).  You should test the r200 driver with it to be sure 
> all the conversions are working correctly.
Unfortunately, there seems to be some fundamental problem, as (after 
removing the abort()) it fails almost every single test... (roughly two 
third of all, including very common and uncommon cases).
Oh, and I get very few GL errors too, where type is GL_HALF, like:
testing 301:
   Format:    GL_RGBA
   Type:      GL_HALF
   IntFormat: glDrawPixels
GL Error: invalid enumerant (0x500) in glDrawPixels
   Format: GL_RGBA
   Type: GL_HALF
   Internal Format: glDrawPixels
testing 302:
   Format:    GL_RGBA
   Type:      GL_HALF
   IntFormat: 4
GL Error: invalid operation (0x502) in glTexImage2D
   Format: GL_RGBA
   Type: GL_HALF
   Internal Format: 4

Roland

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to