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:
Matt Turner 2016-02-27 14:04:30 -08:00
parent 0d1f6c752f
commit fe2d2c7ad8
10 changed files with 4 additions and 80 deletions

View file

@ -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 */

View file

@ -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;
} }

View file

@ -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];
} }

View file

@ -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.
*/ */

View file

@ -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];
} }

View file

@ -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);

View file

@ -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),

View 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]);
} }

View file

@ -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

View file

@ -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 &&