mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 20:00:10 +01:00
r300: remove ntr_tgsi_usage_mask
This is just u_bit_consecutive for non-64bit. Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com> Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Filip Gawin <filip.gawin@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23437>
This commit is contained in:
parent
e81c64f2fa
commit
c8ef840081
1 changed files with 5 additions and 47 deletions
|
|
@ -618,33 +618,6 @@ ntr_get_gl_varying_semantic(struct ntr_compile *c, unsigned location,
|
||||||
semantic_name, semantic_index);
|
semantic_name, semantic_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TGSI varying declarations have a component usage mask associated (used by
|
|
||||||
* r600 and svga).
|
|
||||||
*/
|
|
||||||
static uint32_t
|
|
||||||
ntr_tgsi_usage_mask(unsigned start_component, unsigned num_components,
|
|
||||||
bool is_64)
|
|
||||||
{
|
|
||||||
uint32_t usage_mask =
|
|
||||||
u_bit_consecutive(start_component, num_components);
|
|
||||||
|
|
||||||
if (is_64) {
|
|
||||||
if (start_component >= 2)
|
|
||||||
usage_mask >>= 2;
|
|
||||||
|
|
||||||
uint32_t tgsi_usage_mask = 0;
|
|
||||||
|
|
||||||
if (usage_mask & TGSI_WRITEMASK_X)
|
|
||||||
tgsi_usage_mask |= TGSI_WRITEMASK_XY;
|
|
||||||
if (usage_mask & TGSI_WRITEMASK_Y)
|
|
||||||
tgsi_usage_mask |= TGSI_WRITEMASK_ZW;
|
|
||||||
|
|
||||||
return tgsi_usage_mask;
|
|
||||||
} else {
|
|
||||||
return usage_mask;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TGSI varying declarations have a component usage mask associated (used by
|
/* TGSI varying declarations have a component usage mask associated (used by
|
||||||
* r600 and svga).
|
* r600 and svga).
|
||||||
*/
|
*/
|
||||||
|
|
@ -657,8 +630,7 @@ ntr_tgsi_var_usage_mask(const struct nir_variable *var)
|
||||||
if (num_components == 0) /* structs */
|
if (num_components == 0) /* structs */
|
||||||
num_components = 4;
|
num_components = 4;
|
||||||
|
|
||||||
return ntr_tgsi_usage_mask(var->data.location_frac, num_components,
|
return u_bit_consecutive(var->data.location_frac, num_components);
|
||||||
glsl_type_is_64bit(type_without_array));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct ureg_dst
|
static struct ureg_dst
|
||||||
|
|
@ -667,7 +639,6 @@ ntr_output_decl(struct ntr_compile *c, nir_intrinsic_instr *instr, uint32_t *fra
|
||||||
nir_io_semantics semantics = nir_intrinsic_io_semantics(instr);
|
nir_io_semantics semantics = nir_intrinsic_io_semantics(instr);
|
||||||
int base = nir_intrinsic_base(instr);
|
int base = nir_intrinsic_base(instr);
|
||||||
*frac = nir_intrinsic_component(instr);
|
*frac = nir_intrinsic_component(instr);
|
||||||
bool is_64 = nir_src_bit_size(instr->src[0]) == 64;
|
|
||||||
|
|
||||||
struct ureg_dst out;
|
struct ureg_dst out;
|
||||||
if (c->s->info.stage == MESA_SHADER_FRAGMENT) {
|
if (c->s->info.stage == MESA_SHADER_FRAGMENT) {
|
||||||
|
|
@ -694,9 +665,7 @@ ntr_output_decl(struct ntr_compile *c, nir_intrinsic_instr *instr, uint32_t *fra
|
||||||
ntr_get_gl_varying_semantic(c, semantics.location,
|
ntr_get_gl_varying_semantic(c, semantics.location,
|
||||||
&semantic_name, &semantic_index);
|
&semantic_name, &semantic_index);
|
||||||
|
|
||||||
uint32_t usage_mask = ntr_tgsi_usage_mask(*frac,
|
uint32_t usage_mask = u_bit_consecutive(*frac, instr->num_components);
|
||||||
instr->num_components,
|
|
||||||
is_64);
|
|
||||||
uint32_t gs_streams = semantics.gs_streams;
|
uint32_t gs_streams = semantics.gs_streams;
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
if (!(usage_mask & (1 << i)))
|
if (!(usage_mask & (1 << i)))
|
||||||
|
|
@ -736,13 +705,7 @@ ntr_output_decl(struct ntr_compile *c, nir_intrinsic_instr *instr, uint32_t *fra
|
||||||
else
|
else
|
||||||
write_mask = ((1 << instr->num_components) - 1) << *frac;
|
write_mask = ((1 << instr->num_components) - 1) << *frac;
|
||||||
|
|
||||||
if (is_64) {
|
|
||||||
write_mask = ntr_64bit_write_mask(write_mask);
|
|
||||||
if (*frac >= 2)
|
|
||||||
write_mask = write_mask << 2;
|
|
||||||
} else {
|
|
||||||
write_mask = write_mask << *frac;
|
write_mask = write_mask << *frac;
|
||||||
}
|
|
||||||
return ureg_writemask(out, write_mask);
|
return ureg_writemask(out, write_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1700,7 +1663,6 @@ ntr_emit_load_input(struct ntr_compile *c, nir_intrinsic_instr *instr)
|
||||||
unsigned base = nir_intrinsic_base(instr);
|
unsigned base = nir_intrinsic_base(instr);
|
||||||
struct ureg_src input;
|
struct ureg_src input;
|
||||||
nir_io_semantics semantics = nir_intrinsic_io_semantics(instr);
|
nir_io_semantics semantics = nir_intrinsic_io_semantics(instr);
|
||||||
bool is_64 = instr->def.bit_size == 64;
|
|
||||||
|
|
||||||
if (c->s->info.stage == MESA_SHADER_VERTEX) {
|
if (c->s->info.stage == MESA_SHADER_VERTEX) {
|
||||||
input = ureg_DECL_vs_input(c->ureg, base);
|
input = ureg_DECL_vs_input(c->ureg, base);
|
||||||
|
|
@ -1718,18 +1680,14 @@ ntr_emit_load_input(struct ntr_compile *c, nir_intrinsic_instr *instr)
|
||||||
semantic_name,
|
semantic_name,
|
||||||
semantic_index,
|
semantic_index,
|
||||||
base,
|
base,
|
||||||
ntr_tgsi_usage_mask(frac,
|
u_bit_consecutive(frac,
|
||||||
instr->num_components,
|
instr->num_components),
|
||||||
is_64),
|
|
||||||
array_id,
|
array_id,
|
||||||
semantics.num_slots);
|
semantics.num_slots);
|
||||||
} else {
|
} else {
|
||||||
input = c->input_index_map[base];
|
input = c->input_index_map[base];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_64)
|
|
||||||
num_components *= 2;
|
|
||||||
|
|
||||||
input = ntr_shift_by_frac(input, frac, num_components);
|
input = ntr_shift_by_frac(input, frac, num_components);
|
||||||
|
|
||||||
switch (instr->intrinsic) {
|
switch (instr->intrinsic) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue