zink: fix streamout for tess stage

the tess shader needs to actually emit xfb stuff in order for it to work

Fixes: 2891e0b74e ("zink: pull xfb info from tess shader when applicable")

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9013>
(cherry picked from commit 8721a6cbf2)
This commit is contained in:
Mike Blumenkrantz 2021-02-12 10:22:43 -05:00 committed by Dylan Baker
parent 93be7a0aee
commit f9a57d53c9
3 changed files with 4 additions and 4 deletions

View file

@ -3253,7 +3253,7 @@
"description": "zink: fix streamout for tess stage",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "2891e0b74e6c6dc4a93bc73536949dbb93c2bb50"
},

View file

@ -2931,8 +2931,8 @@ nir_to_spirv(struct nir_shader *s, const struct zink_so_info *so_info,
emit_cf_list(&ctx, &entry->body);
/* vertex shader emits copied xfb outputs at the end of the shader */
if (so_info && ctx.stage == MESA_SHADER_VERTEX)
/* vertex/tess shader emits copied xfb outputs at the end of the shader */
if (so_info && (ctx.stage == MESA_SHADER_VERTEX || ctx.stage == MESA_SHADER_TESS_EVAL))
emit_so_outputs(&ctx, so_info);
spirv_builder_return(&ctx.builder); // doesn't belong here, but whatevz

View file

@ -691,7 +691,7 @@ zink_create_tes_state(struct pipe_context *pctx,
else
nir = (struct nir_shader *)shader->ir.nir;
return zink_shader_create(zink_screen(pctx->screen), nir, NULL);
return zink_shader_create(zink_screen(pctx->screen), nir, &shader->stream_output);
}
static void