diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_tex_image.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c b/src/mesa/drivers/dri/i965/intel_tex_image.c index 6eebfc4bd4b..da42fdd8a08 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_image.c +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c @@ -103,11 +103,20 @@ intelTexImage(struct gl_context * ctx, _mesa_lookup_enum_by_nr(format), _mesa_lookup_enum_by_nr(type), texImage->Level, texImage->Width, texImage->Height, texImage->Depth); + /* Allocate storage for texture data. */ + if (!ctx->Driver.AllocTextureImageBuffer(ctx, texImage)) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage%uD", dims); + return; + } + + assert(intelImage->mt); + ok = _mesa_meta_pbo_TexSubImage(ctx, dims, texImage, 0, 0, 0, texImage->Width, texImage->Height, texImage->Depth, format, type, pixels, - true, tex_busy, unpack); + false /*allocate_storage*/, + tex_busy, unpack); if (ok) return; @@ -117,7 +126,7 @@ intelTexImage(struct gl_context * ctx, texImage->Height, texImage->Depth, format, type, pixels, unpack, - true /*for_glTexImage*/); + false /*allocate_storage*/); if (ok) return; |