From d107eef04f653cb6ca3c589815210b4e65e87093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 20 Dec 2020 02:52:52 -0500 Subject: [PATCH] st/mesa: don't use cso_context to restore VBs, etc. for PBO glTexSubImage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These cso_context capabilities will be removed. Reviewed-by: Eric Anholt Reviewed-by: Zoltán Böszörményi Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/mesa/state_tracker/st_cb_texture.c | 12 ++++++------ src/mesa/state_tracker/st_pbo.c | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index a5113bf0bdb..cce9d523e3f 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -1275,9 +1275,7 @@ try_pbo_upload_common(struct gl_context *ctx, if (!fs) return false; - cso_save_state(cso, (CSO_BIT_FRAGMENT_SAMPLER_VIEWS | - CSO_BIT_VERTEX_ELEMENTS | - CSO_BIT_AUX_VERTEX_BUFFER_SLOT | + cso_save_state(cso, (CSO_BIT_VERTEX_ELEMENTS | CSO_BIT_FRAMEBUFFER | CSO_BIT_VIEWPORT | CSO_BIT_BLEND | @@ -1289,7 +1287,6 @@ try_pbo_upload_common(struct gl_context *ctx, CSO_BIT_MIN_SAMPLES | CSO_BIT_RENDER_CONDITION | CSO_BITS_ALL_SHADERS)); - cso_save_constant_buffer_slot0(cso, PIPE_SHADER_FRAGMENT); cso_set_sample_mask(cso, ~0); cso_set_min_samples(cso, 1); @@ -1315,7 +1312,7 @@ try_pbo_upload_common(struct gl_context *ctx, if (sampler_view == NULL) goto fail; - cso_set_sampler_views(cso, PIPE_SHADER_FRAGMENT, 1, &sampler_view); + pipe->set_sampler_views(pipe, PIPE_SHADER_FRAGMENT, 0, 1, &sampler_view); pipe_sampler_view_reference(&sampler_view, NULL); } @@ -1351,7 +1348,10 @@ try_pbo_upload_common(struct gl_context *ctx, fail: cso_restore_state(cso); - cso_restore_constant_buffer_slot0(cso, PIPE_SHADER_FRAGMENT); + + st->dirty |= ST_NEW_VERTEX_ARRAYS | + ST_NEW_FS_CONSTANTS | + ST_NEW_FS_SAMPLER_VIEWS; return success; } diff --git a/src/mesa/state_tracker/st_pbo.c b/src/mesa/state_tracker/st_pbo.c index 70dbf554a34..e20de8baada 100644 --- a/src/mesa/state_tracker/st_pbo.c +++ b/src/mesa/state_tracker/st_pbo.c @@ -194,6 +194,7 @@ st_pbo_draw(struct st_context *st, const struct st_pbo_addresses *addr, unsigned surface_width, unsigned surface_height) { struct cso_context *cso = st->cso_context; + struct pipe_context *pipe = st->pipe; /* Setup vertex and geometry shaders */ if (!st->pbo.vs) { @@ -268,7 +269,7 @@ st_pbo_draw(struct st_context *st, const struct st_pbo_addresses *addr, cb.buffer_offset = 0; cb.buffer_size = sizeof(addr->constants); - cso_set_constant_buffer(cso, PIPE_SHADER_FRAGMENT, 0, &cb); + pipe->set_constant_buffer(pipe, PIPE_SHADER_FRAGMENT, 0, &cb); pipe_resource_reference(&cb.buffer, NULL); }