vrend: Don't expect TCS to be present in first shader pass

The shaders are issued backwards starting from the fragment
shader and, therefore, in the first pass when we fill out
the shader keys for the TES no TCS will be present.

So don't bail out in this case and assume there is a VS.
Later, when the VS shader is compiled it will check whether
a TES is present without a TCS and report the error.

Fixes: 956a6ceb8d
shader: Pass information about the layout of generics and patches to the next stage

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: <Gurchetan Singh gurchetansingh@chromium.org>
macos/master
Gert Wollny 6 years ago
parent db0ac81910
commit f8840c1a4b
  1. 5
      src/vrend_renderer.c

@ -2954,10 +2954,7 @@ static inline void vrend_fill_shader_key(struct vrend_context *ctx,
if (key->tcs_present) if (key->tcs_present)
prev_type = PIPE_SHADER_TESS_CTRL; prev_type = PIPE_SHADER_TESS_CTRL;
else else
if (!ctx->shader_cfg.use_gles) prev_type = PIPE_SHADER_VERTEX;
prev_type = PIPE_SHADER_VERTEX;
else
report_context_error(ctx, VIRGL_ERROR_CTX_GLES_HAVE_TES_BUT_MISS_TCS, 0);
break; break;
case PIPE_SHADER_TESS_CTRL: case PIPE_SHADER_TESS_CTRL:
prev_type = PIPE_SHADER_VERTEX; prev_type = PIPE_SHADER_VERTEX;

Loading…
Cancel
Save