softpipe: piglit swapbuffer behavior
In the course of !16224 (closed) I discovered that some tests can be fixed with the following:
diff --git a/src/gallium/winsys/sw/dri/dri_sw_winsys.c b/src/gallium/winsys/sw/dri/dri_sw_winsys.c
index 5b0dc947a0b..4deee852c82 100644
--- a/src/gallium/winsys/sw/dri/dri_sw_winsys.c
+++ b/src/gallium/winsys/sw/dri/dri_sw_winsys.c
@@ -293,10 +293,9 @@ dri_sw_displaytarget_unmap(struct sw_winsys *ws,
{
struct dri_sw_displaytarget *dri_sw_dt = dri_sw_displaytarget(dt);
- if (dri_sw_dt->unbacked) {
- dri_sw_dt->map_flags = 0;
+ dri_sw_dt->map_flags = 0;
+ if (dri_sw_dt->unbacked)
return;
- }
#if DETECT_OS_UNIX
if (dri_sw_dt->fd > -1) {
munmap(dri_sw_dt->data, dri_sw_dt->size);
@@ -307,7 +306,6 @@ dri_sw_displaytarget_unmap(struct sw_winsys *ws,
struct dri_sw_winsys *dri_sw_ws = dri_sw_winsys(ws);
dri_sw_ws->lf->put_image2((void *)dri_sw_dt->front_private, dri_sw_dt->data, 0, 0, dri_sw_dt->width, dri_sw_dt->height, dri_sw_dt->stride);
}
- dri_sw_dt->map_flags = 0;
dri_sw_dt->mapped = NULL;
}
yields
glx@glx-tfp,UnexpectedPass
spec@!opengl 1.0@gl-1.0-front-invalidate-back,Fail
spec@!opengl 1.0@gl-1.0-swapbuffers-behavior,UnexpectedPass
spec@ext_framebuffer_blit@fbo-sys-blit,Fail
Dunno if interesting, but I figured I'd make a ticket in case someone felt like looking.