Lines Matching refs:variant

451 			 struct radv_shader_variant *variant,
455 bool scratch_enabled = variant->config.scratch_bytes_per_wave > 0;
456 struct radv_shader_info *info = &variant->info.info;
459 variant->code_size = radv_get_shader_binary_size(binary);
460 variant->rsrc2 = S_00B12C_USER_SGPR(variant->info.num_user_sgprs) |
461 S_00B12C_USER_SGPR_MSB(variant->info.num_user_sgprs >> 5) |
469 variant->rsrc1 = S_00B848_VGPRS((variant->config.num_vgprs - 1) / 4) |
470 S_00B848_SGPRS((variant->config.num_sgprs - 1) / 8) |
472 S_00B848_FLOAT_MODE(variant->config.float_mode);
477 variant->rsrc2 |= S_00B12C_OC_LDS_EN(1);
481 vgpr_comp_cnt = variant->info.vs.vgpr_comp_cnt;
483 variant->rsrc2 |= S_00B12C_OC_LDS_EN(1);
488 vgpr_comp_cnt = variant->info.vs.vgpr_comp_cnt;
493 variant->rsrc2 |=
500 S_00B84C_LDS_SIZE(variant->config.lds_size);
509 unsigned es_type = variant->info.gs.es_type;
513 es_vgpr_comp_cnt = variant->info.vs.vgpr_comp_cnt;
527 } else if (variant->info.gs.vertices_in >= 3) {
533 variant->rsrc1 |= S_00B228_GS_VGPR_COMP_CNT(gs_vgpr_comp_cnt);
534 variant->rsrc2 |= S_00B22C_ES_VGPR_COMP_CNT(es_vgpr_comp_cnt) |
538 variant->rsrc1 |= S_00B428_LS_VGPR_COMP_CNT(vgpr_comp_cnt);
540 variant->rsrc1 |= S_00B128_VGPR_COMP_CNT(vgpr_comp_cnt);
543 void *ptr = radv_alloc_shader_memory(device, variant);
605 struct radv_shader_variant *variant;
609 variant = calloc(1, sizeof(struct radv_shader_variant));
610 if (!variant)
640 &variant->config, &variant->info,
643 radv_compile_nir_shader(&ac_llvm, &binary, &variant->config,
644 &variant->info, shaders, shader_count,
650 radv_fill_shader_variant(device, variant, &binary, stage);
661 variant->ref_count = 1;
664 variant->disasm_string = binary.disasm_string;
665 variant->llvm_ir_string = binary.llvm_ir_string;
667 variant->nir = *shaders;
668 variant->spirv = (uint32_t *)module->data;
669 variant->spirv_size = module->size;
675 return variant;
718 struct radv_shader_variant *variant)
720 if (!p_atomic_dec_zero(&variant->ref_count))
724 list_del(&variant->slab_list);
727 ralloc_free(variant->nir);
728 free(variant->disasm_string);
729 free(variant->llvm_ir_string);
730 free(variant);
750 struct radv_shader_variant *variant,
762 conf = &variant->config;
766 align(variant->info.fs.num_interp * 48,
770 radv_nir_get_max_workgroup_size(chip_class, stage, variant->nir);
811 variant->info.private_mem_vgprs, variant->code_size,
818 struct radv_shader_variant *variant,
824 generate_shader_stats(device, variant, stage, buf);
826 fprintf(file, "\n%s:\n", radv_get_shader_name(variant, stage));
843 struct radv_shader_variant *variant = pipeline->shaders[stage];
849 if (!variant)
858 struct ac_shader_config *conf = &variant->config;
867 unsigned *local_size = variant->nir->info.cs.local_size;
899 _mesa_string_buffer_printf(buf, "%s:\n", radv_get_shader_name(variant, stage));
900 _mesa_string_buffer_printf(buf, "%s\n\n", variant->llvm_ir_string);
901 _mesa_string_buffer_printf(buf, "%s\n\n", variant->disasm_string);
902 generate_shader_stats(device, variant, stage, buf);