Roland Scheidegger wrote: > 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).
I wonder if the rasterization of the textured quad isn't hitting the expected pixels. Perhaps you could use 'xmag' to get a look at the rendering and see if it's the expected 16x16 pattern with the upper-right 8x8 being black. Or maybe a ReadPixels problem? > 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 I just fixed that. I was accidentally testing for format==GL_HALF instead of type==GL_HALF. -Brian ------------------------------------------------------------------------- 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 Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev