Proposed conformance test for packed_pixel extension Michael Gold, Nvidia (gold@nvidia.com) The conformance test should verify the ability of the pixel path to read and write packed pixel data to and from the framebuffer and memory. We should test all four component orderings: RGBA, BGRA, ABGR (rev), and ARGB (rev). We should test all 12 packed types, byte swapping, row/pixel skipping, and error behavior. Testing pixel path to memory ---------------------------- For each format/type combination, download a texture with TexImage2D. If the format/type is a legal combination, read back the texture with GetTexImage (RGBA/FLOAT format) and verify that the texels are correct (within a reasonable precision--expect values implied by the type, and allow errors in that value of +-1). If the format/type is invalid, make sure INVALID_OPERATION is set. Testing pixel path from memory ------------------------------ Download a texture in RGBA/FLOAT format. For each format/type combination, retreive the texels with GetTexImage. If the format/type is a valid combination, verify the returned texels. Otherwise, verify that INVALID_OPERATION is set. Testing pixel path to framebuffer --------------------------------- For each format/type, draw an image with DrawPixels. If the format/type combination is valid, retrive the image with ReadPixels (RGBA/FLOAT format) and verify the result. Otherwise, check that INVALID_OPERATION is set. Testing pixel path from framebuffer ----------------------------------- Draw an image with RGBA/FLOAT format. For each format/type, retrieve the image. If the combination is valid, verify the result. Otherwise check that INVALID_OPERATION is set. Testing byte swapping --------------------- Repeat the above tests with (UN)PACK_SWAP_BYTES and verify the result Testing pixel/row skipping -------------------------- Test each packed type with (UN)PACK_SKIP_ROWS and (UN)PACK_SKIP_PIXELS Implementation details ---------------------- Rotate between several images to ensure results from one test do not affect the next test. Issues ------ Do we really need to test both framebuffer and textures, since we really just need to test the ability of the pixel path to pack/unpack data with the packed types? Do we need to test every type, or just a representative subset? What is a representative subset? Other pack/unpack modes?