From: Marek Olšák <marek.ol...@amd.com> v2: restore the state
Cc: 13.0 17.0 <mesa-sta...@lists.freedesktop.org> --- src/mesa/state_tracker/st_cb_readpixels.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c index 5ce2421..78ea0c7 100644 --- a/src/mesa/state_tracker/st_cb_readpixels.c +++ b/src/mesa/state_tracker/st_cb_readpixels.c @@ -124,20 +124,21 @@ try_pbo_readpixels(struct st_context *st, struct st_renderbuffer *strb, addr.yoffset = y; addr.width = width; addr.height = height; addr.depth = 1; if (!st_pbo_addresses_pixelstore(st, GL_TEXTURE_2D, false, pack, pixels, &addr)) return false; cso_save_state(cso, (CSO_BIT_FRAGMENT_SAMPLER_VIEWS | CSO_BIT_FRAGMENT_SAMPLERS | CSO_BIT_FRAGMENT_IMAGE0 | + CSO_BIT_BLEND | CSO_BIT_VERTEX_ELEMENTS | CSO_BIT_AUX_VERTEX_BUFFER_SLOT | CSO_BIT_FRAMEBUFFER | CSO_BIT_VIEWPORT | CSO_BIT_RASTERIZER | CSO_BIT_DEPTH_STENCIL_ALPHA | CSO_BIT_STREAM_OUTPUTS | CSO_BIT_PAUSE_QUERIES | CSO_BIT_SAMPLE_MASK | CSO_BIT_MIN_SAMPLES | @@ -206,20 +207,25 @@ try_pbo_readpixels(struct st_context *st, struct st_renderbuffer *strb, } /* Set up no-attachment framebuffer */ memset(&fb, 0, sizeof(fb)); fb.width = surface->width; fb.height = surface->height; fb.samples = 1; fb.layers = 1; cso_set_framebuffer(cso, &fb); + /* Any blend state would do. Set this just to prevent drivers having + * blend == NULL. + */ + cso_set_blend(cso, &st->pbo.upload_blend); + cso_set_viewport_dims(cso, fb.width, fb.height, invert_y); if (invert_y) st_pbo_addresses_invert_y(&addr, fb.height); { struct pipe_depth_stencil_alpha_state dsa; memset(&dsa, 0, sizeof(dsa)); cso_set_depth_stencil_alpha(cso, &dsa); } -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev