i965: add support for signed rgba texture format
authorRoland Scheidegger <sroland@vmware.com>
Fri, 27 Mar 2009 21:42:19 +0000 (22:42 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Sat, 28 Mar 2009 01:06:18 +0000 (02:06 +0100)
src/mesa/drivers/dri/i965/brw_wm_surface_state.c
src/mesa/drivers/dri/intel/intel_extensions.c
src/mesa/drivers/dri/intel/intel_tex_format.c

index e6113eff87e0703831d6c8769f11c0cd0f310bf9..66ce928955889ef9a176d2a469eef287251930b2 100644 (file)
@@ -142,6 +142,7 @@ static GLuint translate_tex_format( GLuint mesa_format, GLenum internal_format,
 
    case MESA_FORMAT_SRGBA8:
       return BRW_SURFACEFORMAT_R8G8B8A8_UNORM_SRGB;
+
    case MESA_FORMAT_SRGB_DXT1:
       return BRW_SURFACEFORMAT_BC1_UNORM_SRGB;
 
@@ -159,6 +160,9 @@ static GLuint translate_tex_format( GLuint mesa_format, GLenum internal_format,
    case MESA_FORMAT_DUDV8:
       return BRW_SURFACEFORMAT_R8G8_SNORM;
 
+   case MESA_FORMAT_SIGNED_RGBA8888_REV:
+      return BRW_SURFACEFORMAT_R8G8B8A8_SNORM;
+
    default:
       assert(0);
       return 0;
index 8dd0b2461bde3a826f242e0db3fcefedc63d6588..9ec1b4ec2f469ca24bd525829bd9725bd85a83de 100644 (file)
@@ -132,6 +132,7 @@ static const struct dri_extension brw_extensions[] = {
    { "GL_ARB_shading_language_100",       GL_VERSION_2_0_functions },
    { "GL_ARB_shading_language_120",       GL_VERSION_2_1_functions },
    { "GL_ARB_shadow",                     NULL },
+   { "GL_MESA_texture_signed_rgba",       NULL },
    { "GL_ARB_texture_non_power_of_two",   NULL },
    { "GL_ARB_vertex_shader",              GL_ARB_vertex_shader_functions },
    { "GL_EXT_shadow_funcs",               NULL },
index 8732354e7a5c42eff2da528dbfee76282a7d08a3..ce33cdc218bc5155eedacc403acbbb4c5b06e616 100644 (file)
@@ -175,9 +175,13 @@ intelChooseTextureFormat(GLcontext * ctx, GLint internalFormat,
    case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
       return &_mesa_texformat_srgb_dxt1;
 
+   /* i915 could also do this */
    case GL_DUDV_ATI:
    case GL_DU8DV8_ATI:
       return &_mesa_texformat_dudv8;
+   case GL_RGBA_SNORM:
+   case GL_RGBA8_SNORM:
+      return &_mesa_texformat_signed_rgba8888_rev;
 #endif
 
    default: