util: Helper function to determined whether two formats can be memcpy'ed.
authorJosé Fonseca <jfonseca@vmware.com>
Sat, 4 Sep 2010 10:53:28 +0000 (11:53 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 5 Sep 2010 09:17:51 +0000 (10:17 +0100)
commitb8684b2458bc9bdcfd6b43dc7c2b8c2d485105fd
treee1ce0bd91ab5ec2ba11e1ce1d3deeacf6d679d6f
parent00989d5bfc29f632886066d048a366ff4d2d03bc
util: Helper function to determined whether two formats can be memcpy'ed.

These are the non-trivial conversions that this function recognizes,
which was produced by u_format_compatible_test.c:

  b8g8r8a8_unorm -> b8g8r8x8_unorm
  a8r8g8b8_unorm -> x8r8g8b8_unorm
  b5g5r5a1_unorm -> b5g5r5x1_unorm
  b4g4r4a4_unorm -> b4g4r4x4_unorm
  l8_unorm -> r8_unorm
  i8_unorm -> l8_unorm
  i8_unorm -> a8_unorm
  i8_unorm -> r8_unorm
  l16_unorm -> r16_unorm
  z24_unorm_s8_uscaled -> z24x8_unorm
  s8_uscaled_z24_unorm -> x8z24_unorm
  r8g8b8a8_unorm -> r8g8b8x8_unorm
  a8b8g8r8_srgb -> x8b8g8r8_srgb
  b8g8r8a8_srgb -> b8g8r8x8_srgb
  a8r8g8b8_srgb -> x8r8g8b8_srgb
  a8b8g8r8_unorm -> x8b8g8r8_unorm
  r10g10b10a2_uscaled -> r10g10b10x2_uscaled
  r10sg10sb10sa2u_norm -> r10g10b10x2_snorm

State trackers and pipe drivers should be updated to take advantage of
this knowledge, e.g., in surface_copy.
src/gallium/auxiliary/util/u_format.c
src/gallium/auxiliary/util/u_format.h
src/gallium/tests/unit/Makefile
src/gallium/tests/unit/SConscript
src/gallium/tests/unit/u_format_compatible_test.c [new file with mode: 0644]