Lines Matching refs:mod
369 fill_SV_param_nodes(struct dxil_module *mod, unsigned record_id,
378 flattened_semantics[i] = dxil_get_metadata_int32(mod, semantic->index + i);
380 SV_params_nodes[0] = dxil_get_metadata_int32(mod, (int)record_id); // Unique element ID
381 SV_params_nodes[1] = dxil_get_metadata_string(mod, semantic->name); // Element name
382 SV_params_nodes[2] = dxil_get_metadata_int8(mod, semantic->sig_comp_type); // Element type
383 SV_params_nodes[3] = dxil_get_metadata_int8(mod, (int8_t)semantic->kind); // Effective system value
384 SV_params_nodes[4] = dxil_get_metadata_node(mod, flattened_semantics,
386 SV_params_nodes[5] = dxil_get_metadata_int8(mod, semantic->interpolation); // Interpolation mode
387 SV_params_nodes[6] = dxil_get_metadata_int32(mod, semantic->rows); // Number of rows
388 SV_params_nodes[7] = dxil_get_metadata_int8(mod, semantic->cols); // Number of columns
389 SV_params_nodes[8] = dxil_get_metadata_int32(mod, semantic->start_row); // Element packing start row
390 SV_params_nodes[9] = dxil_get_metadata_int8(mod, semantic->start_col); // Element packing start column
393 return dxil_get_metadata_node(mod, SV_params_nodes, ARRAY_SIZE(SV_params_nodes));
417 struct semantic_info *semantic, struct dxil_module *mod)
443 copy_semantic_name_to_string(mod->sem_string_table, semantic->name);
451 append_semantic_index_to_table(&mod->sem_index_table, semantic->index, semantic->rows);
457 fill_io_signature(struct dxil_module *mod, int id,
464 *io = fill_SV_param_nodes(mod, id, semantic);
467 return fill_psv_signature_element(psv_elm, semantic, mod);
471 get_input_signature_group(struct dxil_module *mod, const struct dxil_mdnode **inputs,
480 mod->inputs[num_inputs].sysvalue = semantic.sysvalue_name;
483 mod->inputs[num_inputs].name = ralloc_strdup(mod->ralloc_ctx,
485 mod->inputs[num_inputs].num_elements = semantic.rows;
486 struct dxil_signature_element *elm = mod->inputs[num_inputs].elements;
487 struct dxil_psv_signature_element *psv_elm = &mod->psv_inputs[num_inputs];
489 if (!fill_io_signature(mod, num_inputs, &semantic,
493 mod->num_psv_inputs = MAX2(mod->num_psv_inputs,
496 mod->info.has_per_sample_input |=
508 get_input_signature(struct dxil_module *mod, nir_shader *s, bool vulkan)
517 mod->num_sig_inputs = get_input_signature_group(mod, inputs, 0,
526 mod->num_sig_inputs = get_input_signature_group(mod, inputs, mod->num_sig_inputs,
532 if (!mod->num_sig_inputs && !mod->num_sig_inputs)
535 const struct dxil_mdnode *retval = mod->num_sig_inputs ?
536 dxil_get_metadata_node(mod, inputs, mod->num_sig_inputs) : NULL;
559 get_output_signature(struct dxil_module *mod, nir_shader *s, bool vulkan)
569 mod->outputs[num_outputs].sysvalue = "TARGET";
572 mod->outputs[num_outputs].sysvalue = out_sysvalue_name(var);
576 mod->info.has_out_position |= semantic.kind== DXIL_SEM_POSITION;
577 mod->info.has_out_depth |= semantic.kind == DXIL_SEM_DEPTH;
579 mod->outputs[num_outputs].name = ralloc_strdup(mod->ralloc_ctx,
581 mod->outputs[num_outputs].num_elements = semantic.rows;
582 struct dxil_signature_element *elm = mod->outputs[num_outputs].elements;
584 struct dxil_psv_signature_element *psv_elm = &mod->psv_outputs[num_outputs];
586 if (!fill_io_signature(mod, num_outputs, &semantic,
596 mod->num_psv_outputs = MAX2(mod->num_psv_outputs,
605 const struct dxil_mdnode *retval = dxil_get_metadata_node(mod, outputs, num_outputs);
606 mod->num_sig_outputs = num_outputs;
611 get_signatures(struct dxil_module *mod, nir_shader *s, bool vulkan)
614 mod->sem_string_table = _mesa_string_buffer_create(mod->ralloc_ctx, 1024);
615 copy_semantic_name_to_string(mod->sem_string_table, "");
617 const struct dxil_mdnode *input_signature = get_input_signature(mod, s, vulkan);
618 const struct dxil_mdnode *output_signature = get_output_signature(mod, s, vulkan);
626 return dxil_get_metadata_node(mod, SV_nodes, ARRAY_SIZE(SV_nodes));