[Mesa-dev] EXT_tetxure_swizzle and BGRA textures : glean test enhancement
Brian Paul
brianp at vmware.com
Mon May 3 09:44:25 PDT 2010
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).
An extenstion like GL_EXT_bgra is used to describe the incoming/user
texture data to glTexImage2D, nothing about the internal/actual
texture layout.
-Brian
More information about the mesa-dev
mailing list