• Home
  • Raw
  • Download

Lines Matching refs:prog

137 …ct zink_context *ctx, struct zink_shader *stages[ZINK_SHADER_COUNT], struct zink_gfx_program *prog)  in update_shader_modules()  argument
153 prog->modules[type] = CALLOC_STRUCT(zink_shader_module); in update_shader_modules()
154 assert(prog->modules[type]); in update_shader_modules()
155 pipe_reference_init(&prog->modules[type]->reference, 1); in update_shader_modules()
157 prog->modules[type]->shader = zink_shader_compile(zink_screen(ctx->base.screen), dirty[i], in update_shader_modules()
158prog->shader_slot_map, &prog->shader_slots_reserved); in update_shader_modules()
160 …zink_shader_module_reference(zink_screen(ctx->base.screen), &prog->modules[type], ctx->curr_progra… in update_shader_modules()
161 prog->shaders[type] = stages[type]; in update_shader_modules()
179 init_slot_map(struct zink_context *ctx, struct zink_gfx_program *prog) in init_slot_map() argument
192 memset(prog->shader_slot_map, -1, sizeof(prog->shader_slot_map)); in init_slot_map()
195 … memcpy(prog->shader_slot_map, ctx->curr_program->shader_slot_map, sizeof(prog->shader_slot_map)); in init_slot_map()
196 prog->shader_slots_reserved = ctx->curr_program->shader_slots_reserved; in init_slot_map()
205 struct zink_gfx_program *prog = CALLOC_STRUCT(zink_gfx_program); in zink_create_gfx_program() local
206 if (!prog) in zink_create_gfx_program()
209 pipe_reference_init(&prog->reference, 1); in zink_create_gfx_program()
211 init_slot_map(ctx, prog); in zink_create_gfx_program()
213 update_shader_modules(ctx, stages, prog); in zink_create_gfx_program()
215 for (int i = 0; i < ARRAY_SIZE(prog->pipelines); ++i) { in zink_create_gfx_program()
216 prog->pipelines[i] = _mesa_hash_table_create(NULL, in zink_create_gfx_program()
219 if (!prog->pipelines[i]) in zink_create_gfx_program()
224 if (prog->modules[i]) { in zink_create_gfx_program()
225 _mesa_set_add(stages[i]->programs, prog); in zink_create_gfx_program()
226 zink_gfx_program_reference(screen, NULL, prog); in zink_create_gfx_program()
230 prog->dsl = create_desc_set_layout(screen->dev, stages, in zink_create_gfx_program()
231 &prog->num_descriptors); in zink_create_gfx_program()
232 if (!prog->dsl) in zink_create_gfx_program()
235 prog->layout = create_pipeline_layout(screen->dev, prog->dsl); in zink_create_gfx_program()
236 if (!prog->layout) in zink_create_gfx_program()
239 prog->render_passes = _mesa_set_create(NULL, _mesa_hash_pointer, in zink_create_gfx_program()
241 if (!prog->render_passes) in zink_create_gfx_program()
244 return prog; in zink_create_gfx_program()
247 if (prog) in zink_create_gfx_program()
248 zink_destroy_gfx_program(screen, prog); in zink_create_gfx_program()
253 gfx_program_remove_shader(struct zink_gfx_program *prog, struct zink_shader *shader) in gfx_program_remove_shader() argument
257 assert(prog->shaders[p_stage] == shader); in gfx_program_remove_shader()
258 prog->shaders[p_stage] = NULL; in gfx_program_remove_shader()
259 _mesa_set_remove_key(shader->programs, prog); in gfx_program_remove_shader()
264 struct zink_gfx_program *prog) in zink_destroy_gfx_program() argument
266 if (prog->layout) in zink_destroy_gfx_program()
267 vkDestroyPipelineLayout(screen->dev, prog->layout, NULL); in zink_destroy_gfx_program()
269 if (prog->dsl) in zink_destroy_gfx_program()
270 vkDestroyDescriptorSetLayout(screen->dev, prog->dsl, NULL); in zink_destroy_gfx_program()
273 if (prog->shaders[i]) in zink_destroy_gfx_program()
274 gfx_program_remove_shader(prog, prog->shaders[i]); in zink_destroy_gfx_program()
275 if (prog->modules[i]) in zink_destroy_gfx_program()
276 zink_shader_module_reference(screen, &prog->modules[i], NULL); in zink_destroy_gfx_program()
280 if (prog->render_passes) { in zink_destroy_gfx_program()
281 set_foreach(prog->render_passes, entry) { in zink_destroy_gfx_program()
285 _mesa_set_destroy(prog->render_passes, NULL); in zink_destroy_gfx_program()
288 for (int i = 0; i < ARRAY_SIZE(prog->pipelines); ++i) { in zink_destroy_gfx_program()
289 hash_table_foreach(prog->pipelines[i], entry) { in zink_destroy_gfx_program()
295 _mesa_hash_table_destroy(prog->pipelines[i], NULL); in zink_destroy_gfx_program()
298 FREE(prog); in zink_destroy_gfx_program()
342 struct zink_gfx_program *prog, in reference_render_pass() argument
345 struct set_entry *entry = _mesa_set_search(prog->render_passes, in reference_render_pass()
348 entry = _mesa_set_add(prog->render_passes, render_pass); in reference_render_pass()
355 struct zink_gfx_program *prog, in zink_get_gfx_pipeline() argument
360 assert(vkmode <= ARRAY_SIZE(prog->pipelines)); in zink_get_gfx_pipeline()
370 entry = _mesa_hash_table_search_pre_hashed(prog->pipelines[vkmode], state->hash, state); in zink_get_gfx_pipeline()
373 VkPipeline pipeline = zink_create_gfx_pipeline(screen, prog, in zink_get_gfx_pipeline()
386 … entry = _mesa_hash_table_insert_pre_hashed(prog->pipelines[vkmode], state->hash, state, pc_entry); in zink_get_gfx_pipeline()
389 reference_render_pass(screen, prog, state->render_pass); in zink_get_gfx_pipeline()