diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index ca914b3cdf5..17b46c8696c 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -5174,8 +5174,7 @@ zink_type_size(const struct glsl_type *type, bool bindless) } 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; @@ -5403,7 +5402,7 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir, 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; diff --git a/src/gallium/drivers/zink/zink_compiler.h b/src/gallium/drivers/zink/zink_compiler.h index 22bfb8c82fb..834084dbc51 100644 --- a/src/gallium/drivers/zink/zink_compiler.h +++ b/src/gallium/drivers/zink/zink_compiler.h @@ -73,8 +73,7 @@ zink_shader_compile(struct zink_screen *screen, bool can_shobj, struct zink_shad 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); diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 8cf52622e4e..ef4b56b67e1 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -1332,7 +1332,7 @@ precompile_compute_job(void *data, void *gdata, int thread_index) 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; @@ -2182,7 +2182,7 @@ zink_create_gfx_shader_state(struct pipe_context *pctx, const struct pipe_shader 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 || @@ -2466,7 +2466,7 @@ zink_set_primitive_emulation_keys(struct zink_context *ctx) 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;