summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/softpipe/sp_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/pipe/softpipe/sp_context.c')
-rw-r--r--src/mesa/pipe/softpipe/sp_context.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/mesa/pipe/softpipe/sp_context.c b/src/mesa/pipe/softpipe/sp_context.c
index ebc994670a..0794d9a888 100644
--- a/src/mesa/pipe/softpipe/sp_context.c
+++ b/src/mesa/pipe/softpipe/sp_context.c
@@ -84,12 +84,15 @@ static void map_surfaces(struct softpipe_context *sp)
GLuint i;
for (i = 0; i < sp->framebuffer.num_cbufs; i++) {
- struct softpipe_surface *sps = softpipe_surface(sp->framebuffer.cbufs[i]); pipe->region_map(pipe, sps->surface.region);
+ struct softpipe_surface *sps = softpipe_surface(sp->framebuffer.cbufs[i]);
+ if (sps->surface.region)
+ pipe->region_map(pipe, sps->surface.region);
}
if (sp->framebuffer.zbuf) {
struct softpipe_surface *sps = softpipe_surface(sp->framebuffer.zbuf);
- pipe->region_map(pipe, sps->surface.region);
+ if (sps->surface.region)
+ pipe->region_map(pipe, sps->surface.region);
}
/* textures */
@@ -111,12 +114,14 @@ static void unmap_surfaces(struct softpipe_context *sp)
for (i = 0; i < sp->framebuffer.num_cbufs; i++) {
struct softpipe_surface *sps = softpipe_surface(sp->framebuffer.cbufs[i]);
- pipe->region_unmap(pipe, sps->surface.region);
+ if (sps->surface.region)
+ pipe->region_unmap(pipe, sps->surface.region);
}
if (sp->framebuffer.zbuf) {
struct softpipe_surface *sps = softpipe_surface(sp->framebuffer.zbuf);
- pipe->region_unmap(pipe, sps->surface.region);
+ if (sps->surface.region)
+ pipe->region_unmap(pipe, sps->surface.region);
}
/* textures */