vrend: Don't synchronize compute shader IO interfaces

Compute shader don't have in- or outputs, so don't try to
sync the interfaces with the shaders that are still bound.

This fixes a state leak where non-compute shaders are still
bound when a compute shader is compiled.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Lepton Wu <lepton@chromium.org>
macos/master
Gert Wollny 3 years ago
parent 9eadf02311
commit 148e6c3d0d
  1. 3
      src/vrend_renderer.c

@ -3473,7 +3473,8 @@ static inline void vrend_fill_shader_key(struct vrend_sub_context *sub_ctx,
key->tcs_present = !!sub_ctx->shaders[PIPE_SHADER_TESS_CTRL]; key->tcs_present = !!sub_ctx->shaders[PIPE_SHADER_TESS_CTRL];
key->tes_present = !!sub_ctx->shaders[PIPE_SHADER_TESS_EVAL]; key->tes_present = !!sub_ctx->shaders[PIPE_SHADER_TESS_EVAL];
vrend_sync_shader_io(sub_ctx, sel, key); if (type != PIPE_SHADER_COMPUTE)
vrend_sync_shader_io(sub_ctx, sel, key);
} }
static int vrend_shader_create(struct vrend_context *ctx, static int vrend_shader_create(struct vrend_context *ctx,

Loading…
Cancel
Save