From 17c38eb9a597fa111908b302cc06a21ae98c185e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 19 Nov 2023 01:52:19 -0500 Subject: [PATCH] st/mesa: set pipe_framebuffer_state::layers for PBO blits It only worked with drivers that ignored it. Reviewed-by: Qiang Yu Reviewed-by: Alyssa Rosenzweig Part-of: --- src/mesa/state_tracker/st_cb_readpixels.c | 2 +- src/mesa/state_tracker/st_cb_texture.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c index f99140d7d74..f780c640f3f 100644 --- a/src/mesa/state_tracker/st_cb_readpixels.c +++ b/src/mesa/state_tracker/st_cb_readpixels.c @@ -219,7 +219,7 @@ try_pbo_readpixels(struct st_context *st, struct gl_renderbuffer *rb, fb.width = surface->width; fb.height = surface->height; fb.samples = 1; - fb.layers = 1; + fb.layers = addr.depth; cso_set_framebuffer(cso, &fb); /* Any blend state would do. Set this just to prevent drivers having diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 3b75d012301..6c9eda1a0b6 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -2014,7 +2014,7 @@ try_pbo_download(struct st_context *st, memset(&fb, 0, sizeof(fb)); fb.width = texture->width0; fb.height = texture->height0; - fb.layers = 1; + fb.layers = addr.depth; fb.samples = 1; cso_set_framebuffer(cso, &fb);