mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 08:10:09 +01:00
tgsi/ureg: Add ureg_DECL_gs_input().
Allows one to declare GS input registers.
This commit is contained in:
parent
1778ddaf74
commit
c14be63c56
2 changed files with 33 additions and 2 deletions
|
|
@ -89,6 +89,11 @@ struct ureg_program
|
|||
|
||||
unsigned vs_inputs[UREG_MAX_INPUT/32];
|
||||
|
||||
struct {
|
||||
unsigned index;
|
||||
} gs_input[UREG_MAX_INPUT];
|
||||
unsigned nr_gs_inputs;
|
||||
|
||||
struct {
|
||||
unsigned semantic_name;
|
||||
unsigned semantic_index;
|
||||
|
|
@ -278,6 +283,22 @@ ureg_DECL_vs_input( struct ureg_program *ureg,
|
|||
}
|
||||
|
||||
|
||||
struct ureg_src
|
||||
ureg_DECL_gs_input(struct ureg_program *ureg,
|
||||
unsigned index)
|
||||
{
|
||||
if (ureg->nr_gs_inputs < UREG_MAX_INPUT) {
|
||||
ureg->gs_input[ureg->nr_gs_inputs].index = index;
|
||||
ureg->nr_gs_inputs++;
|
||||
} else {
|
||||
set_bad(ureg);
|
||||
}
|
||||
|
||||
/* XXX: Add suport for true 2D input registers. */
|
||||
return ureg_src_register(TGSI_FILE_INPUT, index);
|
||||
}
|
||||
|
||||
|
||||
struct ureg_dst
|
||||
ureg_DECL_output( struct ureg_program *ureg,
|
||||
unsigned name,
|
||||
|
|
@ -964,8 +985,7 @@ static void emit_decls( struct ureg_program *ureg )
|
|||
emit_decl_range( ureg, TGSI_FILE_INPUT, i, 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else if (ureg->processor == TGSI_PROCESSOR_FRAGMENT) {
|
||||
for (i = 0; i < ureg->nr_fs_inputs; i++) {
|
||||
emit_decl( ureg,
|
||||
TGSI_FILE_INPUT,
|
||||
|
|
@ -974,6 +994,13 @@ static void emit_decls( struct ureg_program *ureg )
|
|||
ureg->fs_input[i].semantic_index,
|
||||
ureg->fs_input[i].interp );
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < ureg->nr_gs_inputs; i++) {
|
||||
emit_decl_range(ureg,
|
||||
TGSI_FILE_INPUT,
|
||||
ureg->gs_input[i].index,
|
||||
1);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < ureg->nr_outputs; i++) {
|
||||
|
|
|
|||
|
|
@ -133,6 +133,10 @@ struct ureg_src
|
|||
ureg_DECL_vs_input( struct ureg_program *,
|
||||
unsigned index );
|
||||
|
||||
struct ureg_src
|
||||
ureg_DECL_gs_input(struct ureg_program *,
|
||||
unsigned index);
|
||||
|
||||
struct ureg_dst
|
||||
ureg_DECL_output( struct ureg_program *,
|
||||
unsigned semantic_name,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue