dri/nouveau: add AllocTextureImageBuffer implementation

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>
This commit is contained in:
Ilia Mirkin
2013-10-04 04:28:58 -04:00
committed by Francisco Jerez
parent b3c04362b4
commit 7178d6ac59

View File

@@ -494,6 +494,14 @@ nouveau_compressed_teximage(struct gl_context *ctx, GLuint dims,
&ctx->Unpack, GL_TRUE); &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 static void
nouveau_texsubimage(struct gl_context *ctx, GLint dims, nouveau_texsubimage(struct gl_context *ctx, GLint dims,
struct gl_texture_image *ti, struct gl_texture_image *ti,
@@ -634,6 +642,7 @@ nouveau_texture_functions_init(struct dd_function_table *functions)
functions->DeleteTexture = nouveau_texture_free; functions->DeleteTexture = nouveau_texture_free;
functions->NewTextureImage = nouveau_teximage_new; functions->NewTextureImage = nouveau_teximage_new;
functions->FreeTextureImageBuffer = nouveau_teximage_free; functions->FreeTextureImageBuffer = nouveau_teximage_free;
functions->AllocTextureImageBuffer = nouveau_teximage_alloc;
functions->ChooseTextureFormat = nouveau_choose_tex_format; functions->ChooseTextureFormat = nouveau_choose_tex_format;
functions->TexImage = nouveau_teximage_123d; functions->TexImage = nouveau_teximage_123d;
functions->TexSubImage = nouveau_texsubimage_123d; functions->TexSubImage = nouveau_texsubimage_123d;