llvmpipe/cs: fix image/sampler binding for compute
The compute shader dirtying is a bit wrong here, since we don't have a second stage like for fragment shaders, so dirty the compute shader whenever a sampler or image changes, (ssbo/contexts don't needs this). Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5835>
This commit is contained in:
parent
54232bee06
commit
05e23cb23d
|
@ -1210,9 +1210,6 @@ update_csctx_ssbo(struct llvmpipe_context *llvmpipe)
|
|||
static void
|
||||
llvmpipe_cs_update_derived(struct llvmpipe_context *llvmpipe, void *input)
|
||||
{
|
||||
if (llvmpipe->cs_dirty & (LP_CSNEW_CS))
|
||||
llvmpipe_update_cs(llvmpipe);
|
||||
|
||||
if (llvmpipe->cs_dirty & LP_CSNEW_CONSTANTS) {
|
||||
lp_csctx_set_cs_constants(llvmpipe->csctx,
|
||||
ARRAY_SIZE(llvmpipe->constants[PIPE_SHADER_COMPUTE]),
|
||||
|
@ -1248,6 +1245,13 @@ llvmpipe_cs_update_derived(struct llvmpipe_context *llvmpipe, void *input)
|
|||
csctx->cs.current.jit_context.kernel_args = input;
|
||||
}
|
||||
|
||||
if (llvmpipe->cs_dirty & (LP_CSNEW_CS |
|
||||
LP_CSNEW_IMAGES |
|
||||
LP_CSNEW_SAMPLER_VIEW |
|
||||
LP_CSNEW_SAMPLER))
|
||||
llvmpipe_update_cs(llvmpipe);
|
||||
|
||||
|
||||
llvmpipe->cs_dirty = 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue