mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 15:40:11 +01:00
program: Remove NV_fragment_program Abs support.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Acked-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
0d1f6c752f
commit
fe2d2c7ad8
10 changed files with 4 additions and 80 deletions
|
|
@ -537,7 +537,6 @@ static void emit_arg( struct prog_src_register *src,
|
||||||
src->File = reg.file;
|
src->File = reg.file;
|
||||||
src->Index = reg.idx;
|
src->Index = reg.idx;
|
||||||
src->Swizzle = reg.swz;
|
src->Swizzle = reg.swz;
|
||||||
src->Abs = reg.abs;
|
|
||||||
src->Negate = reg.negate ? NEGATE_XYZW : NEGATE_NONE;
|
src->Negate = reg.negate ? NEGATE_XYZW : NEGATE_NONE;
|
||||||
src->RelAddr = 0;
|
src->RelAddr = 0;
|
||||||
/* Check that bitfield sizes aren't exceeded */
|
/* Check that bitfield sizes aren't exceeded */
|
||||||
|
|
|
||||||
|
|
@ -2180,7 +2180,6 @@ mesa_src_reg_from_ir_src_reg(src_reg reg)
|
||||||
mesa_reg.Swizzle = reg.swizzle;
|
mesa_reg.Swizzle = reg.swizzle;
|
||||||
mesa_reg.RelAddr = reg.reladdr != NULL;
|
mesa_reg.RelAddr = reg.reladdr != NULL;
|
||||||
mesa_reg.Negate = reg.negate;
|
mesa_reg.Negate = reg.negate;
|
||||||
mesa_reg.Abs = 0;
|
|
||||||
|
|
||||||
return mesa_reg;
|
return mesa_reg;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -200,12 +200,6 @@ fetch_vector4(const struct prog_src_register *source,
|
||||||
result[3] = src[GET_SWZ(source->Swizzle, 3)];
|
result[3] = src[GET_SWZ(source->Swizzle, 3)];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (source->Abs) {
|
|
||||||
result[0] = fabsf(result[0]);
|
|
||||||
result[1] = fabsf(result[1]);
|
|
||||||
result[2] = fabsf(result[2]);
|
|
||||||
result[3] = fabsf(result[3]);
|
|
||||||
}
|
|
||||||
if (source->Negate) {
|
if (source->Negate) {
|
||||||
assert(source->Negate == NEGATE_XYZW);
|
assert(source->Negate == NEGATE_XYZW);
|
||||||
result[0] = -result[0];
|
result[0] = -result[0];
|
||||||
|
|
@ -258,12 +252,6 @@ fetch_vector4_deriv(struct gl_context * ctx,
|
||||||
result[2] = deriv[GET_SWZ(source->Swizzle, 2)];
|
result[2] = deriv[GET_SWZ(source->Swizzle, 2)];
|
||||||
result[3] = deriv[GET_SWZ(source->Swizzle, 3)];
|
result[3] = deriv[GET_SWZ(source->Swizzle, 3)];
|
||||||
|
|
||||||
if (source->Abs) {
|
|
||||||
result[0] = fabsf(result[0]);
|
|
||||||
result[1] = fabsf(result[1]);
|
|
||||||
result[2] = fabsf(result[2]);
|
|
||||||
result[3] = fabsf(result[3]);
|
|
||||||
}
|
|
||||||
if (source->Negate) {
|
if (source->Negate) {
|
||||||
assert(source->Negate == NEGATE_XYZW);
|
assert(source->Negate == NEGATE_XYZW);
|
||||||
result[0] = -result[0];
|
result[0] = -result[0];
|
||||||
|
|
@ -289,9 +277,6 @@ fetch_vector1(const struct prog_src_register *source,
|
||||||
|
|
||||||
result[0] = src[GET_SWZ(source->Swizzle, 0)];
|
result[0] = src[GET_SWZ(source->Swizzle, 0)];
|
||||||
|
|
||||||
if (source->Abs) {
|
|
||||||
result[0] = fabsf(result[0]);
|
|
||||||
}
|
|
||||||
if (source->Negate) {
|
if (source->Negate) {
|
||||||
result[0] = -result[0];
|
result[0] = -result[0];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -198,11 +198,8 @@ struct prog_src_register
|
||||||
GLuint Swizzle:12;
|
GLuint Swizzle:12;
|
||||||
GLuint RelAddr:1;
|
GLuint RelAddr:1;
|
||||||
|
|
||||||
/** Take the component-wise absolute value */
|
|
||||||
GLuint Abs:1;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Post-Abs negation.
|
* Negation.
|
||||||
* This will either be NEGATE_NONE or NEGATE_XYZW, except for the SWZ
|
* This will either be NEGATE_NONE or NEGATE_XYZW, except for the SWZ
|
||||||
* instruction which allows per-component negation.
|
* instruction which allows per-component negation.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,6 @@ src_regs_are_same(const struct prog_src_register *a,
|
||||||
return (a->File == b->File)
|
return (a->File == b->File)
|
||||||
&& (a->Index == b->Index)
|
&& (a->Index == b->Index)
|
||||||
&& (a->Swizzle == b->Swizzle)
|
&& (a->Swizzle == b->Swizzle)
|
||||||
&& (a->Abs == b->Abs)
|
|
||||||
&& (a->Negate == b->Negate)
|
&& (a->Negate == b->Negate)
|
||||||
&& (a->RelAddr == 0)
|
&& (a->RelAddr == 0)
|
||||||
&& (b->RelAddr == 0);
|
&& (b->RelAddr == 0);
|
||||||
|
|
@ -99,13 +98,6 @@ get_value(struct gl_program *prog, struct prog_src_register *r, float *data)
|
||||||
data[2] = value[GET_SWZ(r->Swizzle, 2)].f;
|
data[2] = value[GET_SWZ(r->Swizzle, 2)].f;
|
||||||
data[3] = value[GET_SWZ(r->Swizzle, 3)].f;
|
data[3] = value[GET_SWZ(r->Swizzle, 3)].f;
|
||||||
|
|
||||||
if (r->Abs) {
|
|
||||||
data[0] = fabsf(data[0]);
|
|
||||||
data[1] = fabsf(data[1]);
|
|
||||||
data[2] = fabsf(data[2]);
|
|
||||||
data[3] = fabsf(data[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (r->Negate & 0x01) {
|
if (r->Negate & 0x01) {
|
||||||
data[0] = -data[0];
|
data[0] = -data[0];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -447,7 +447,6 @@ can_downward_mov_be_modifed(const struct prog_instruction *mov)
|
||||||
mov->Opcode == OPCODE_MOV &&
|
mov->Opcode == OPCODE_MOV &&
|
||||||
mov->SrcReg[0].RelAddr == 0 &&
|
mov->SrcReg[0].RelAddr == 0 &&
|
||||||
mov->SrcReg[0].Negate == 0 &&
|
mov->SrcReg[0].Negate == 0 &&
|
||||||
mov->SrcReg[0].Abs == 0 &&
|
|
||||||
mov->DstReg.RelAddr == 0;
|
mov->DstReg.RelAddr == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -516,8 +515,7 @@ _mesa_remove_extra_move_use(struct gl_program *prog)
|
||||||
|
|
||||||
if (inst2->SrcReg[arg].File != mov->DstReg.File ||
|
if (inst2->SrcReg[arg].File != mov->DstReg.File ||
|
||||||
inst2->SrcReg[arg].Index != mov->DstReg.Index ||
|
inst2->SrcReg[arg].Index != mov->DstReg.Index ||
|
||||||
inst2->SrcReg[arg].RelAddr ||
|
inst2->SrcReg[arg].RelAddr)
|
||||||
inst2->SrcReg[arg].Abs)
|
|
||||||
continue;
|
continue;
|
||||||
read_mask = get_src_arg_mask(inst2, arg, NO_MASK);
|
read_mask = get_src_arg_mask(inst2, arg, NO_MASK);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -528,15 +528,11 @@ fprint_src_reg(FILE *f,
|
||||||
gl_prog_print_mode mode,
|
gl_prog_print_mode mode,
|
||||||
const struct gl_program *prog)
|
const struct gl_program *prog)
|
||||||
{
|
{
|
||||||
const char *abs = srcReg->Abs ? "|" : "";
|
fprintf(f, "%s%s",
|
||||||
|
|
||||||
fprintf(f, "%s%s%s%s",
|
|
||||||
abs,
|
|
||||||
reg_string((gl_register_file) srcReg->File,
|
reg_string((gl_register_file) srcReg->File,
|
||||||
srcReg->Index, mode, srcReg->RelAddr, prog),
|
srcReg->Index, mode, srcReg->RelAddr, prog),
|
||||||
_mesa_swizzle_string(srcReg->Swizzle,
|
_mesa_swizzle_string(srcReg->Swizzle,
|
||||||
srcReg->Negate, GL_FALSE),
|
srcReg->Negate, GL_FALSE));
|
||||||
abs);
|
|
||||||
#if 0
|
#if 0
|
||||||
fprintf(f, "%s[%d]%s",
|
fprintf(f, "%s[%d]%s",
|
||||||
_mesa_register_file_name((gl_register_file) srcReg->File),
|
_mesa_register_file_name((gl_register_file) srcReg->File),
|
||||||
|
|
|
||||||
|
|
@ -230,9 +230,6 @@ ptn_get_src(struct ptn_compile *c, const struct prog_src_register *prog_src)
|
||||||
|
|
||||||
def = nir_fmov_alu(b, src, 4);
|
def = nir_fmov_alu(b, src, 4);
|
||||||
|
|
||||||
if (prog_src->Abs)
|
|
||||||
def = nir_fabs(b, def);
|
|
||||||
|
|
||||||
if (prog_src->Negate)
|
if (prog_src->Negate)
|
||||||
def = nir_fneg(b, def);
|
def = nir_fneg(b, def);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -258,9 +255,6 @@ ptn_get_src(struct ptn_compile *c, const struct prog_src_register *prog_src)
|
||||||
chans[i] = &mov->dest.dest.ssa;
|
chans[i] = &mov->dest.dest.ssa;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prog_src->Abs)
|
|
||||||
chans[i] = nir_fabs(b, chans[i]);
|
|
||||||
|
|
||||||
if (prog_src->Negate & (1 << i))
|
if (prog_src->Negate & (1 << i))
|
||||||
chans[i] = nir_fneg(b, chans[i]);
|
chans[i] = nir_fneg(b, chans[i]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -555,21 +555,6 @@ scalarSrcReg: optionalSign scalarUse
|
||||||
$$.Base.Negate = ~$$.Base.Negate;
|
$$.Base.Negate = ~$$.Base.Negate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
| optionalSign '|' scalarUse '|'
|
|
||||||
{
|
|
||||||
$$ = $3;
|
|
||||||
|
|
||||||
if (!state->option.NV_fragment) {
|
|
||||||
yyerror(& @2, state, "unexpected character '|'");
|
|
||||||
YYERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($1) {
|
|
||||||
$$.Base.Negate = ~$$.Base.Negate;
|
|
||||||
}
|
|
||||||
|
|
||||||
$$.Base.Abs = 1;
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
|
|
||||||
scalarUse: srcReg scalarSuffix
|
scalarUse: srcReg scalarSuffix
|
||||||
|
|
@ -609,24 +594,6 @@ swizzleSrcReg: optionalSign srcReg swizzleSuffix
|
||||||
$$.Base.Swizzle = _mesa_combine_swizzles($$.Base.Swizzle,
|
$$.Base.Swizzle = _mesa_combine_swizzles($$.Base.Swizzle,
|
||||||
$3.swizzle);
|
$3.swizzle);
|
||||||
}
|
}
|
||||||
| optionalSign '|' srcReg swizzleSuffix '|'
|
|
||||||
{
|
|
||||||
$$ = $3;
|
|
||||||
|
|
||||||
if (!state->option.NV_fragment) {
|
|
||||||
yyerror(& @2, state, "unexpected character '|'");
|
|
||||||
YYERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($1) {
|
|
||||||
$$.Base.Negate = ~$$.Base.Negate;
|
|
||||||
}
|
|
||||||
|
|
||||||
$$.Base.Abs = 1;
|
|
||||||
$$.Base.Swizzle = _mesa_combine_swizzles($$.Base.Swizzle,
|
|
||||||
$4.swizzle);
|
|
||||||
}
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
maskedDstReg: dstReg optionalMask
|
maskedDstReg: dstReg optionalMask
|
||||||
|
|
|
||||||
|
|
@ -320,9 +320,6 @@ translate_src( struct st_translate *t,
|
||||||
if (SrcReg->Negate == NEGATE_XYZW)
|
if (SrcReg->Negate == NEGATE_XYZW)
|
||||||
src = ureg_negate(src);
|
src = ureg_negate(src);
|
||||||
|
|
||||||
if (SrcReg->Abs)
|
|
||||||
src = ureg_abs(src);
|
|
||||||
|
|
||||||
if (SrcReg->RelAddr) {
|
if (SrcReg->RelAddr) {
|
||||||
src = ureg_src_indirect( src, ureg_src(t->address[0]));
|
src = ureg_src_indirect( src, ureg_src(t->address[0]));
|
||||||
if (SrcReg->File != PROGRAM_INPUT &&
|
if (SrcReg->File != PROGRAM_INPUT &&
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue