On Mon, 2010-05-03 at 10:29 -0700, José Fonseca wrote: > On Mon, 2010-05-03 at 09:44 -0700, Brian Paul wrote: > > Jose Fonseca wrote: > > > I read the extension and it is not crystal clear, but it seems to imply > > > the swizzles are orthogonal to the format, and applied as the very last > > > step before being used in a shader. That is, the semantics are the same > > > of adding a swizzle instruction after a TEX opcode, regardless of the > > > format. At least this is my interpretation of > > > > > > The values of the texture parameters TEXTURE_SWIZZLE_R_EXT, > > > TEXTURE_SWIZZLE_G_EXT, TEXTURE_SWIZZLE_B_EXT, and > > > TEXTURE_SWIZZLE_A_EXT, are applied after the swizzling described > > > in Table 3.20 (p. 186). The swizzle parameter > > > TEXTURE_SWIZZLE_R_EXT affects the first component of Cs as: > > > > Correct. > > > > > > > BGRA extension does not specify additions to the 3.20 table though (it's > > > against spec 1.1) so this is why the guess work. > > > > > > So my expectaction is that swizzling a BGRA with a .rgba swizzle will get > > > bgra. > > > > Mmm, I don't think so. > > > > Regardless of the original user texture component ordering and > > regardless of the actually hardware texture format, when the shader > > calls texture2D(sampler, coord), for example, it _always_ returns a > > vector of (R, G, B, A) in that order. Similarly for ARB_vp/fp and > > fixed-function texture sampling. > > > > We'd have a miserable time writing shaders if we texture2D(sampler, > > coord) returned different component orderings depending on the actual > > texture format (which could vary from one system to another). > > Actually, this is what I meant, but I see now I explained miserably! > (@_@) > > What I meant is that if the user specifies a BGRA texture with the > _bytes_: > > X Y Z W > > and we specify the TEXTURE_SWIZZLEs as (R, G, B, A) then we'd obtain > > W Z W X.
I must be getting dyslexic. Z Y X W should be the answer. > in the shader (normalized by 1/255). > > What I mean is that the format swizzles have to be composed with the > shader swizzles. > > > An extenstion like GL_EXT_bgra is used to describe the incoming/user > > texture data to glTexImage2D, nothing about the internal/actual > > texture layout. > > Yes. > > Jose > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev