dri/nouveau: add AllocTextureImageBuffer implementation
authorIlia Mirkin <imirkin@alum.mit.edu>
Fri, 4 Oct 2013 08:28:58 +0000 (04:28 -0400)
committerFrancisco Jerez <currojerez@riseup.net>
Sun, 6 Oct 2013 19:59:18 +0000 (12:59 -0700)
This fixes issues where get_rt_format would see a 0 format because the
nouveau_surface had not been properly initialized. Fixes crash on
supertuxkart startup (which still fails due to out-of-vram issues).

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
src/mesa/drivers/dri/nouveau/nouveau_texture.c

index da74e8f4207a6463c72e3f6921b5721552cedd67..8904389d198ed27829926a5d2c8fb37438a58163 100644 (file)
@@ -494,6 +494,14 @@ nouveau_compressed_teximage(struct gl_context *ctx, GLuint dims,
                         &ctx->Unpack, GL_TRUE);
 }
 
+static GLboolean
+nouveau_teximage_alloc(struct gl_context *ctx, struct gl_texture_image *ti)
+{
+       nouveau_teximage(ctx, 3, ti, 0, 0, 0, NULL,
+                        &ctx->DefaultPacking, GL_FALSE);
+       return GL_TRUE;
+}
+
 static void
 nouveau_texsubimage(struct gl_context *ctx, GLint dims,
                    struct gl_texture_image *ti,
@@ -634,6 +642,7 @@ nouveau_texture_functions_init(struct dd_function_table *functions)
        functions->DeleteTexture = nouveau_texture_free;
        functions->NewTextureImage = nouveau_teximage_new;
        functions->FreeTextureImageBuffer = nouveau_teximage_free;
+       functions->AllocTextureImageBuffer = nouveau_teximage_alloc;
        functions->ChooseTextureFormat = nouveau_choose_tex_format;
        functions->TexImage = nouveau_teximage_123d;
        functions->TexSubImage = nouveau_texsubimage_123d;