svga: store shared_mem_size in svga_compute_shader instead of svga_context

When new context was created, shared_mem_size was getting overwritten.
This fixes glretrace failure seen with manhattan, aztec and BASS2_intro
apitraces

Fixes: 247c61f2d0 ('svga: Add support for compute shader, shader buffers and image views')

Tested with glretrace, piglit

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
(cherry picked from commit dd6793ec9218782b1b716a87582d7219bae4e75f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14870>
This commit is contained in:
Neha Bhende
2022-02-03 14:48:09 -08:00
committed by Marge Bot
parent c7a357787f
commit 9230b28533
4 changed files with 3 additions and 3 deletions
-1
View File
@@ -374,7 +374,6 @@ struct svga_state
struct pipe_resource *indirect;
} grid_info;
unsigned shared_mem_size;
};
struct svga_prescale {
+1 -1
View File
@@ -61,7 +61,7 @@ svga_create_compute_state(struct pipe_context *pipe,
cs->base.id = svga->debug.shader_id++;
svga->curr.shared_mem_size = templ->req_local_mem;
cs->shared_mem_size = templ->req_local_mem;
SVGA_STATS_TIME_POP(svga_sws(svga));
return cs;
+1
View File
@@ -380,6 +380,7 @@ struct svga_tes_shader
struct svga_compute_shader
{
struct svga_shader base;
unsigned shared_mem_size;
};
+1 -1
View File
@@ -80,7 +80,7 @@ make_cs_key(struct svga_context *svga,
key->cs.grid_size[0] = svga->curr.grid_info.size[0];
key->cs.grid_size[1] = svga->curr.grid_info.size[1];
key->cs.grid_size[2] = svga->curr.grid_info.size[2];
key->cs.mem_size = svga->curr.shared_mem_size;
key->cs.mem_size = cs->shared_mem_size;
if (svga->curr.grid_info.indirect && cs->base.info.uses_grid_size) {
struct pipe_transfer *transfer = NULL;