@ -30,7 +30,6 @@
# define SWIZZLE_INVALID 0xff
# define SWIZZLE_INVALID 0xff
# define NO_SWIZZLE { SWIZZLE_INVALID, SWIZZLE_INVALID, SWIZZLE_INVALID, SWIZZLE_INVALID }
# define NO_SWIZZLE { SWIZZLE_INVALID, SWIZZLE_INVALID, SWIZZLE_INVALID, SWIZZLE_INVALID }
# define RRR1_SWIZZLE { PIPE_SWIZZLE_RED, PIPE_SWIZZLE_RED, PIPE_SWIZZLE_RED, PIPE_SWIZZLE_ONE }
# define RRR1_SWIZZLE { PIPE_SWIZZLE_RED, PIPE_SWIZZLE_RED, PIPE_SWIZZLE_RED, PIPE_SWIZZLE_ONE }
# define RRRG_SWIZZLE { PIPE_SWIZZLE_RED, PIPE_SWIZZLE_RED, PIPE_SWIZZLE_RED, PIPE_SWIZZLE_GREEN }
# define RGB1_SWIZZLE { PIPE_SWIZZLE_RED, PIPE_SWIZZLE_GREEN, PIPE_SWIZZLE_BLUE, PIPE_SWIZZLE_ONE }
# define RGB1_SWIZZLE { PIPE_SWIZZLE_RED, PIPE_SWIZZLE_GREEN, PIPE_SWIZZLE_BLUE, PIPE_SWIZZLE_ONE }
/* fill the format table */
/* fill the format table */
@ -80,10 +79,10 @@ static struct vrend_format_table base_depth_formats[] =
static struct vrend_format_table base_la_formats [ ] = {
static struct vrend_format_table base_la_formats [ ] = {
{ VIRGL_FORMAT_A8_UNORM , GL_ALPHA8 , GL_ALPHA , GL_UNSIGNED_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A8_UNORM , GL_ALPHA8 , GL_ALPHA , GL_UNSIGNED_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L8_UNORM , GL_R8 , GL_RED , GL_UNSIGNED_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8_UNORM , GL_R8 , GL_RED , GL_UNSIGNED_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_UNORM , GL_RG8 , GL_RG , GL_UNSIGNED_BYTE , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_UNORM , GL_LUMINANCE8_ALPHA8 , GL_LUMINANCE_ALPHA , GL_UNSIGNED_BYTE , NO _SWIZZLE } ,
{ VIRGL_FORMAT_A16_UNORM , GL_ALPHA16 , GL_ALPHA , GL_UNSIGNED_SHORT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A16_UNORM , GL_ALPHA16 , GL_ALPHA , GL_UNSIGNED_SHORT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L16_UNORM , GL_R16 , GL_RED , GL_UNSIGNED_SHORT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16_UNORM , GL_R16 , GL_RED , GL_UNSIGNED_SHORT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_UNORM , GL_RG16 , GL_RG , GL_UNSIGNED_SHORT , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_UNORM , GL_LUMINANCE16_ALPHA16 , GL_LUMINANCE_ALPHA , GL_UNSIGNED_SHORT , NO _SWIZZLE } ,
} ;
} ;
static struct vrend_format_table rg_base_formats [ ] = {
static struct vrend_format_table rg_base_formats [ ] = {
@ -121,11 +120,11 @@ static struct vrend_format_table float_base_formats[] = {
static struct vrend_format_table float_la_formats [ ] = {
static struct vrend_format_table float_la_formats [ ] = {
{ VIRGL_FORMAT_A16_FLOAT , GL_ALPHA16F_ARB , GL_ALPHA , GL_HALF_FLOAT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A16_FLOAT , GL_ALPHA16F_ARB , GL_ALPHA , GL_HALF_FLOAT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L16_FLOAT , GL_R16F , GL_RED , GL_HALF_FLOAT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16_FLOAT , GL_R16F , GL_RED , GL_HALF_FLOAT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_FLOAT , GL_RG16F , GL_RG , GL_HALF_FLOAT , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_FLOAT , GL_LUMINANCE_ALPHA16F_ARB , GL_LUMINANCE_ALPHA , GL_HALF_FLOAT , NO _SWIZZLE } ,
{ VIRGL_FORMAT_A32_FLOAT , GL_ALPHA32F_ARB , GL_ALPHA , GL_FLOAT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A32_FLOAT , GL_ALPHA32F_ARB , GL_ALPHA , GL_FLOAT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L32_FLOAT , GL_R32F , GL_RED , GL_FLOAT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L32_FLOAT , GL_R32F , GL_RED , GL_FLOAT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L32A32_FLOAT , GL_RG32F , GL_RG , GL_FLOAT , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L32A32_FLOAT , GL_LUMINANCE_ALPHA32F_ARB , GL_LUMINANCE_ALPHA , GL_FLOAT , NO _SWIZZLE } ,
} ;
} ;
static struct vrend_format_table integer_rg_formats [ ] = {
static struct vrend_format_table integer_rg_formats [ ] = {
@ -161,26 +160,26 @@ static struct vrend_format_table float_3comp_formats[] = {
static struct vrend_format_table integer_la_formats [ ] = {
static struct vrend_format_table integer_la_formats [ ] = {
{ VIRGL_FORMAT_A8_UINT , GL_ALPHA8UI_EXT , GL_ALPHA_INTEGER , GL_UNSIGNED_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A8_UINT , GL_ALPHA8UI_EXT , GL_ALPHA_INTEGER , GL_UNSIGNED_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L8_UINT , GL_R8UI , GL_RED_INTEGER , GL_UNSIGNED_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8_UINT , GL_R8UI , GL_RED_INTEGER , GL_UNSIGNED_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_UINT , GL_RG8UI , GL_RG_INTEGER , GL_UNSIGNED_BYTE , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_UINT , GL_LUMINANCE_ALPHA8UI_EXT , GL_LUMINANCE_ALPHA_INTEGER_EXT , GL_UNSIGNED_BYTE , NO _SWIZZLE } ,
{ VIRGL_FORMAT_A8_SINT , GL_ALPHA8I_EXT , GL_ALPHA_INTEGER , GL_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A8_SINT , GL_ALPHA8I_EXT , GL_ALPHA_INTEGER , GL_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L8_SINT , GL_R8I , GL_RED_INTEGER , GL_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8_SINT , GL_R8I , GL_RED_INTEGER , GL_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_SINT , GL_RG8I , GL_RG_INTEGER , GL_BYTE , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_SINT , GL_LUMINANCE_ALPHA8I_EXT , GL_LUMINANCE_ALPHA_INTEGER_EXT , GL_BYTE , NO _SWIZZLE } ,
{ VIRGL_FORMAT_A16_UINT , GL_ALPHA16UI_EXT , GL_ALPHA_INTEGER , GL_UNSIGNED_SHORT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A16_UINT , GL_ALPHA16UI_EXT , GL_ALPHA_INTEGER , GL_UNSIGNED_SHORT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L16_UINT , GL_R16UI , GL_RED_INTEGER , GL_UNSIGNED_SHORT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16_UINT , GL_R16UI , GL_RED_INTEGER , GL_UNSIGNED_SHORT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_UINT , GL_RG16UI , GL_RG_INTEGER , GL_UNSIGNED_SHORT , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_UINT , GL_LUMINANCE_ALPHA16UI_EXT , GL_LUMINANCE_ALPHA_INTEGER_EXT , GL_UNSIGNED_SHORT , NO _SWIZZLE } ,
{ VIRGL_FORMAT_A16_SINT , GL_ALPHA16I_EXT , GL_ALPHA_INTEGER , GL_SHORT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A16_SINT , GL_ALPHA16I_EXT , GL_ALPHA_INTEGER , GL_SHORT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L16_SINT , GL_R16I , GL_RED_INTEGER , GL_SHORT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16_SINT , GL_R16I , GL_RED_INTEGER , GL_SHORT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_SINT , GL_RG16I , GL_RG_INTEGER , GL_SHORT , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_SINT , GL_LUMINANCE_ALPHA16I_EXT , GL_LUMINANCE_ALPHA_INTEGER_EXT , GL_SHORT , NO _SWIZZLE } ,
{ VIRGL_FORMAT_A32_UINT , GL_ALPHA32UI_EXT , GL_ALPHA_INTEGER , GL_UNSIGNED_INT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A32_UINT , GL_ALPHA32UI_EXT , GL_ALPHA_INTEGER , GL_UNSIGNED_INT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L32_UINT , GL_R32UI , GL_RED_INTEGER , GL_UNSIGNED_INT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L32_UINT , GL_R32UI , GL_RED_INTEGER , GL_UNSIGNED_INT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L32A32_UINT , GL_RG16UI , GL_RG_INTEGER , GL_UNSIGNED_INT , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L32A32_UINT , GL_LUMINANCE_ALPHA32UI_EXT , GL_LUMINANCE_ALPHA_INTEGER_EXT , GL_UNSIGNED_INT , NO _SWIZZLE } ,
{ VIRGL_FORMAT_A32_SINT , GL_ALPHA32I_EXT , GL_ALPHA_INTEGER , GL_INT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A32_SINT , GL_ALPHA32I_EXT , GL_ALPHA_INTEGER , GL_INT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L32_SINT , GL_R32I , GL_RED_INTEGER , GL_INT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L32_SINT , GL_R32I , GL_RED_INTEGER , GL_INT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L32A32_SINT , GL_RG32I , GL_RG_INTEGER , GL_INT , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L32A32_SINT , GL_LUMINANCE_ALPHA32I_EXT , GL_LUMINANCE_ALPHA_INTEGER_EXT , GL_INT , NO _SWIZZLE } ,
} ;
} ;
@ -202,10 +201,10 @@ static struct vrend_format_table snorm_formats[] = {
static struct vrend_format_table snorm_la_formats [ ] = {
static struct vrend_format_table snorm_la_formats [ ] = {
{ VIRGL_FORMAT_A8_SNORM , GL_ALPHA8_SNORM , GL_ALPHA , GL_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A8_SNORM , GL_ALPHA8_SNORM , GL_ALPHA , GL_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L8_SNORM , GL_R8_SNORM , GL_RED , GL_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8_SNORM , GL_R8_SNORM , GL_RED , GL_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_SNORM , GL_RG8_SNORM , GL_RG , GL_BYTE , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_SNORM , GL_LUMINANCE8_ALPHA8_SNORM , GL_LUMINANCE_ALPHA , GL_BYTE , NO _SWIZZLE } ,
{ VIRGL_FORMAT_A16_SNORM , GL_ALPHA16_SNORM , GL_ALPHA , GL_SHORT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_A16_SNORM , GL_ALPHA16_SNORM , GL_ALPHA , GL_SHORT , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L16_SNORM , GL_R16_SNORM , GL_RED , GL_SHORT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16_SNORM , GL_R16_SNORM , GL_RED , GL_SHORT , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_SNORM , GL_RG16_SNORM , GL_RG , GL_SHORT , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L16A16_SNORM , GL_LUMINANCE16_ALPHA16_SNORM , GL_LUMINANCE_ALPHA , GL_SHORT , NO _SWIZZLE } ,
} ;
} ;
static struct vrend_format_table dxtn_formats [ ] = {
static struct vrend_format_table dxtn_formats [ ] = {
@ -235,7 +234,7 @@ static struct vrend_format_table srgb_formats[] = {
{ VIRGL_FORMAT_R8G8B8A8_SRGB , GL_SRGB8_ALPHA8 , GL_RGBA , GL_UNSIGNED_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_R8G8B8A8_SRGB , GL_SRGB8_ALPHA8 , GL_RGBA , GL_UNSIGNED_BYTE , NO_SWIZZLE } ,
{ VIRGL_FORMAT_L8_SRGB , GL_SR8_EXT , GL_RED , GL_UNSIGNED_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8_SRGB , GL_SR8_EXT , GL_RED , GL_UNSIGNED_BYTE , RRR1_SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_SRGB , GL_SRG8_EXT , GL_RG , GL_UNSIGNED_BYTE , RRRG _SWIZZLE } ,
{ VIRGL_FORMAT_L8A8_SRGB , GL_SLUMINANCE8_ALPHA8_EXT , GL_LUMINANCE_ALPHA , GL_UNSIGNED_BYTE , NO _SWIZZLE } ,
} ;
} ;
static struct vrend_format_table gl_srgb_formats [ ] =
static struct vrend_format_table gl_srgb_formats [ ] =