}
struct zink_shader *
-zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
- const struct pipe_stream_output_info *so_info)
+zink_shader_create(struct zink_screen *screen, struct nir_shader *nir)
{
struct zink_shader *ret = rzalloc(NULL, struct zink_shader);
bool have_psiz = false;
if (!nir->info.internal)
nir_foreach_shader_out_variable(var, nir)
var->data.explicit_xfb_buffer = 0;
- if (so_info && so_info->num_outputs && nir->info.outputs_written)
+ if (nir->xfb_info && nir->xfb_info->output_count && nir->info.outputs_written)
update_so_info(ret, nir, nir->info.outputs_written, have_psiz);
else if (have_psiz) {
bool have_fake_psiz = false;
struct zink_shader_object
zink_shader_compile_separate(struct zink_screen *screen, struct zink_shader *zs);
struct zink_shader *
-zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
- const struct pipe_stream_output_info *so_info);
+zink_shader_create(struct zink_screen *screen, struct nir_shader *nir);
char *
zink_shader_finalize(struct pipe_screen *pscreen, void *nirptr);
struct zink_compute_program *comp = data;
struct zink_screen *screen = gdata;
- comp->shader = zink_shader_create(screen, comp->nir, NULL);
+ comp->shader = zink_shader_create(screen, comp->nir);
comp->curr = comp->module = CALLOC_STRUCT(zink_shader_module);
assert(comp->module);
comp->module->shobj = false;
if (nir->info.uses_bindless)
zink_descriptors_init_bindless(zink_context(pctx));
- void *ret = zink_shader_create(zink_screen(pctx->screen), nir, &shader->stream_output);
+ void *ret = zink_shader_create(zink_screen(pctx->screen), nir);
if (nir->info.separate_shader && zink_descriptor_mode == ZINK_DESCRIPTOR_MODE_DB &&
(screen->info.have_EXT_shader_object ||
zink_add_inline_uniform(nir, ZINK_INLINE_VAL_FLAT_MASK);
zink_add_inline_uniform(nir, ZINK_INLINE_VAL_PV_LAST_VERT);
ralloc_free(prev_stage);
- struct zink_shader *shader = zink_shader_create(screen, nir, NULL);
+ struct zink_shader *shader = zink_shader_create(screen, nir);
shader->needs_inlining = true;
ctx->gfx_stages[prev_vertex_stage]->non_fs.generated_gs[ctx->gfx_pipeline_state.gfx_prim_mode][zink_prim_type] = shader;
shader->non_fs.is_generated = true;