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
