Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12:Update
Mesa
U_swrast-allocate-swrast_texture_image-ImageSli...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File U_swrast-allocate-swrast_texture_image-ImageSlices-array-if-needed.patch of Package Mesa
From: Brian Paul <brianp@vmware.com> Date: Wed Apr 23 09:49:58 2014 -0600 Subject: [PATCH]swrast: allocate swrast_texture_image::ImageSlices array if needed Patch-mainline: Upstream Git-commit: 7cc2e2e99d857617178ce01f52ae2a9b04da3275 Git-repo: git://anongit.freedesktop.org/git/mesa/mesa References: bnc#899106 Signed-off-by: Egbert Eich <eich@suse.com> Fixes a segmentation fault in conform divzero.c test. This happens when glTexImage(level, width=0, height=0) is called. We don't allocate texture memory in that case so the ImageSlices array was never allocated. Cc: "10.1" <mesa-stable@lists.freedesktop.org> Reviewed-by: José Fonseca <jfonseca@vmware.com> --- src/mesa/swrast/s_texture.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mesa/swrast/s_texture.c b/src/mesa/swrast/s_texture.c index c08a4e9..1d449a2 100644 --- a/src/mesa/swrast/s_texture.c +++ b/src/mesa/swrast/s_texture.c @@ -279,6 +279,13 @@ _swrast_map_texture(struct gl_context *ctx, struct gl_texture_object *texObj) continue; } + if (!swImage->ImageSlices) { + swImage->ImageSlices = + calloc(texture_slices(texImage), sizeof(void *)); + if (!swImage->ImageSlices) + continue; + } + for (i = 0; i < texture_slices(texImage); i++) { GLubyte *map; GLint rowStride; @@ -325,6 +332,9 @@ _swrast_unmap_texture(struct gl_context *ctx, struct gl_texture_object *texObj) if (swImage->Buffer) return; + if (!swImage->ImageSlices) + continue; + for (i = 0; i < texture_slices(texImage); i++) { if (swImage->ImageSlices[i]) { ctx->Driver.UnmapTextureImage(ctx, texImage, i);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor