Lines Matching refs:sel

93 compile_nir(struct d3d12_context *ctx, struct d3d12_shader_selector *sel,
97 struct d3d12_shader *shader = rzalloc(sel, d3d12_shader);
100 sel->current = shader;
863 d3d12_shader_key *key, d3d12_shader_selector *sel,
866 pipe_shader_type stage = sel->stage;
959 } else if (sel_ctx->needs_vertex_reordering && !sel->is_variant) {
963 if (sel->is_variant && next && next->initial->info.inputs_read & VARYING_BIT_PRIMITIVE_ID)
999 if (sel->samples_int_textures) {
1000 key->samples_int_textures = sel->samples_int_textures;
1025 if (sel->compare_with_lod_bias_grad) {
1063 select_shader_variant(struct d3d12_selection_context *sel_ctx, d3d12_shader_selector *sel,
1071 d3d12_fill_shader_key(sel_ctx, &key, sel, prev, next);
1074 for (d3d12_shader *variant = sel->first; variant;
1078 sel->current = variant;
1084 new_nir_variant = nir_shader_clone(sel, sel->initial);
1134 if (sel->compare_with_lod_bias_grad) {
1150 if (sel->workgroup_size_variable) {
1190 if (sel->stage == PIPE_SHADER_TESS_EVAL) {
1211 if (sel->stage == PIPE_SHADER_TESS_CTRL) {
1223 d3d12_shader *new_variant = compile_nir(ctx, sel, &key, new_nir_variant);
1230 new_variant->next_variant = sel->first;
1231 sel->current = sel->first = new_variant;
1346 struct d3d12_shader_selector *sel,
1352 sel->samples_int_textures = (tex_scan_result & TEX_SAMPLE_INTEGER_TEXTURE) != 0;
1353 sel->compare_with_lod_bias_grad = (tex_scan_result & TEX_CMP_WITH_LOD_BIAS_GRAD) != 0;
1354 sel->workgroup_size_variable = nir->info.workgroup_size_variable;
1362 sel->initial = nir;
1383 select_shader_variant(&sel_ctx, sel, prev, next);
1385 if (!sel->current) {
1386 ralloc_free(sel);
1390 return sel;
1398 struct d3d12_shader_selector *sel = rzalloc(nullptr, d3d12_shader_selector);
1399 sel->stage = stage;
1411 memcpy(&sel->so_info, &shader->stream_output, sizeof(sel->so_info));
1412 update_so_info(&sel->so_info, nir->info.outputs_written);
1415 d3d12_shader_selector *prev = get_prev_shader(ctx, sel->stage);
1416 d3d12_shader_selector *next = get_next_shader(ctx, sel->stage);
1438 return d3d12_create_shader_impl(ctx, sel, nir, prev, next);
1445 struct d3d12_shader_selector *sel = rzalloc(nullptr, d3d12_shader_selector);
1446 sel->stage = PIPE_SHADER_COMPUTE;
1461 return d3d12_create_shader_impl(ctx, sel, nir, nullptr, nullptr);
1490 auto sel = ctx->gfx_stages[order[i]];
1491 if (!sel)
1494 d3d12_shader_selector *prev = get_prev_shader(ctx, sel->stage);
1495 d3d12_shader_selector *next = get_next_shader(ctx, sel->stage);
1497 select_shader_variant(&sel_ctx, sel, prev, next);
1522 d3d12_shader_free(struct d3d12_shader_selector *sel)
1524 auto shader = sel->first;
1529 ralloc_free(sel->initial);
1530 ralloc_free(sel);