summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/i965/brw_eu.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_eu_emit.c14
-rw-r--r--src/mesa/drivers/dri/i965/brw_eu_util.c1
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_emit.cpp10
-rw-r--r--src/mesa/drivers/dri/i965/brw_sf_emit.c2
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_emit.cpp3
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs_emit.c3
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_emit.c15
8 files changed, 6 insertions, 44 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h
index 3ab00a263eb..e0e02d4f103 100644
--- a/src/mesa/drivers/dri/i965/brw_eu.h
+++ b/src/mesa/drivers/dri/i965/brw_eu.h
@@ -975,7 +975,6 @@ void brw_SAMPLE(struct brw_compile *p,
void brw_math_16( struct brw_compile *p,
struct brw_reg dest,
GLuint function,
- GLuint saturate,
GLuint msg_reg_nr,
struct brw_reg src,
GLuint precision );
@@ -983,7 +982,6 @@ void brw_math_16( struct brw_compile *p,
void brw_math( struct brw_compile *p,
struct brw_reg dest,
GLuint function,
- GLuint saturate,
GLuint msg_reg_nr,
struct brw_reg src,
GLuint data_type,
diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c
index 25bf91be532..b82a858d9a7 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
@@ -429,7 +429,6 @@ static void brw_set_math_message( struct brw_compile *p,
GLuint function,
GLuint integer_type,
bool low_precision,
- bool saturate,
GLuint dataType )
{
struct brw_context *brw = p->brw;
@@ -461,22 +460,24 @@ static void brw_set_math_message( struct brw_compile *p,
break;
}
+
brw_set_message_descriptor(p, insn, BRW_SFID_MATH,
msg_length, response_length, false, false);
if (intel->gen == 5) {
insn->bits3.math_gen5.function = function;
insn->bits3.math_gen5.int_type = integer_type;
insn->bits3.math_gen5.precision = low_precision;
- insn->bits3.math_gen5.saturate = saturate;
+ insn->bits3.math_gen5.saturate = insn->header.saturate;
insn->bits3.math_gen5.data_type = dataType;
insn->bits3.math_gen5.snapshot = 0;
} else {
insn->bits3.math.function = function;
insn->bits3.math.int_type = integer_type;
insn->bits3.math.precision = low_precision;
- insn->bits3.math.saturate = saturate;
+ insn->bits3.math.saturate = insn->header.saturate;
insn->bits3.math.data_type = dataType;
}
+ insn->header.saturate = 0;
}
@@ -1657,7 +1658,6 @@ void brw_WAIT (struct brw_compile *p)
void brw_math( struct brw_compile *p,
struct brw_reg dest,
GLuint function,
- GLuint saturate,
GLuint msg_reg_nr,
struct brw_reg src,
GLuint data_type,
@@ -1693,7 +1693,6 @@ void brw_math( struct brw_compile *p,
* becomes FC[3:0] and ThreadCtrl becomes FC[5:4].
*/
insn->header.destreg__conditionalmod = function;
- insn->header.saturate = saturate;
brw_set_dest(p, insn, dest);
brw_set_src0(p, insn, src);
@@ -1714,7 +1713,6 @@ void brw_math( struct brw_compile *p,
function,
src.type == BRW_REGISTER_TYPE_D,
precision,
- saturate,
data_type);
}
}
@@ -1779,7 +1777,6 @@ void brw_math2(struct brw_compile *p,
void brw_math_16( struct brw_compile *p,
struct brw_reg dest,
GLuint function,
- GLuint saturate,
GLuint msg_reg_nr,
struct brw_reg src,
GLuint precision )
@@ -1794,7 +1791,6 @@ void brw_math_16( struct brw_compile *p,
* becomes FC[3:0] and ThreadCtrl becomes FC[5:4].
*/
insn->header.destreg__conditionalmod = function;
- insn->header.saturate = saturate;
/* Source modifiers are ignored for extended math instructions. */
assert(!src.negate);
@@ -1822,7 +1818,6 @@ void brw_math_16( struct brw_compile *p,
function,
BRW_MATH_INTEGER_UNSIGNED,
precision,
- saturate,
BRW_MATH_DATA_VECTOR);
/* Second instruction:
@@ -1838,7 +1833,6 @@ void brw_math_16( struct brw_compile *p,
function,
BRW_MATH_INTEGER_UNSIGNED,
precision,
- saturate,
BRW_MATH_DATA_VECTOR);
brw_pop_insn_state(p);
diff --git a/src/mesa/drivers/dri/i965/brw_eu_util.c b/src/mesa/drivers/dri/i965/brw_eu_util.c
index 5405cf17a4e..2037634981c 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_util.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_util.c
@@ -42,7 +42,6 @@ void brw_math_invert( struct brw_compile *p,
brw_math( p,
dst,
BRW_MATH_FUNCTION_INV,
- BRW_MATH_SATURATE_NONE,
0,
src,
BRW_MATH_PRECISION_FULL,
diff --git a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
index a5cebcb32e6..4564e3b42e9 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
@@ -160,8 +160,6 @@ fs_visitor::generate_math1_gen7(fs_inst *inst,
assert(inst->mlen == 0);
brw_math(p, dst,
brw_math_function(inst->opcode),
- inst->saturate ? BRW_MATH_SATURATE_SATURATE
- : BRW_MATH_SATURATE_NONE,
0, src0,
BRW_MATH_DATA_VECTOR,
BRW_MATH_PRECISION_FULL);
@@ -189,8 +187,6 @@ fs_visitor::generate_math1_gen6(fs_inst *inst,
brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_math(p, dst,
op,
- inst->saturate ? BRW_MATH_SATURATE_SATURATE :
- BRW_MATH_SATURATE_NONE,
0, src0,
BRW_MATH_DATA_VECTOR,
BRW_MATH_PRECISION_FULL);
@@ -199,8 +195,6 @@ fs_visitor::generate_math1_gen6(fs_inst *inst,
brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF);
brw_math(p, sechalf(dst),
op,
- inst->saturate ? BRW_MATH_SATURATE_SATURATE :
- BRW_MATH_SATURATE_NONE,
0, sechalf(src0),
BRW_MATH_DATA_VECTOR,
BRW_MATH_PRECISION_FULL);
@@ -240,8 +234,6 @@ fs_visitor::generate_math_gen4(fs_inst *inst,
brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_math(p, dst,
op,
- inst->saturate ? BRW_MATH_SATURATE_SATURATE :
- BRW_MATH_SATURATE_NONE,
inst->base_mrf, src,
BRW_MATH_DATA_VECTOR,
BRW_MATH_PRECISION_FULL);
@@ -250,8 +242,6 @@ fs_visitor::generate_math_gen4(fs_inst *inst,
brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF);
brw_math(p, sechalf(dst),
op,
- inst->saturate ? BRW_MATH_SATURATE_SATURATE :
- BRW_MATH_SATURATE_NONE,
inst->base_mrf + 1, sechalf(src),
BRW_MATH_DATA_VECTOR,
BRW_MATH_PRECISION_FULL);
diff --git a/src/mesa/drivers/dri/i965/brw_sf_emit.c b/src/mesa/drivers/dri/i965/brw_sf_emit.c
index ff6383bb188..5f3673bec08 100644
--- a/src/mesa/drivers/dri/i965/brw_sf_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_sf_emit.c
@@ -314,7 +314,6 @@ static void invert_det( struct brw_sf_compile *c)
brw_math(&c->func,
c->inv_det,
BRW_MATH_FUNCTION_INV,
- BRW_MATH_SATURATE_NONE,
0,
c->det,
BRW_MATH_DATA_SCALAR,
@@ -599,7 +598,6 @@ void brw_emit_point_sprite_setup(struct brw_sf_compile *c, bool allocate)
brw_math(&c->func,
c->tmp,
BRW_MATH_FUNCTION_INV,
- BRW_MATH_SATURATE_NONE,
0,
c->dx0,
BRW_MATH_DATA_SCALAR,
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
index 7658bb86454..21eafcbcb5d 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
@@ -262,7 +262,6 @@ vec4_visitor::generate_math1_gen4(vec4_instruction *inst,
brw_math(p,
dst,
brw_math_function(inst->opcode),
- BRW_MATH_SATURATE_NONE,
inst->base_mrf,
src,
BRW_MATH_DATA_VECTOR,
@@ -291,7 +290,6 @@ vec4_visitor::generate_math1_gen6(vec4_instruction *inst,
brw_math(p,
dst,
brw_math_function(inst->opcode),
- BRW_MATH_SATURATE_NONE,
inst->base_mrf,
src,
BRW_MATH_DATA_SCALAR,
@@ -355,7 +353,6 @@ vec4_visitor::generate_math2_gen4(vec4_instruction *inst,
brw_math(p,
dst,
brw_math_function(inst->opcode),
- BRW_MATH_SATURATE_NONE,
inst->base_mrf,
op0,
BRW_MATH_DATA_VECTOR,
diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c
index d0ee5f3b4b7..6169f737417 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
@@ -670,7 +670,6 @@ static void emit_math1_gen4(struct brw_vs_compile *c,
brw_math(p,
tmp,
function,
- BRW_MATH_SATURATE_NONE,
2,
arg0,
BRW_MATH_DATA_SCALAR,
@@ -705,7 +704,6 @@ emit_math1_gen6(struct brw_vs_compile *c,
brw_math(p,
tmp_dst,
function,
- BRW_MATH_SATURATE_NONE,
2,
tmp_src,
BRW_MATH_DATA_SCALAR,
@@ -757,7 +755,6 @@ static void emit_math2_gen4( struct brw_vs_compile *c,
brw_math(p,
tmp,
function,
- BRW_MATH_SATURATE_NONE,
2,
arg0,
BRW_MATH_DATA_SCALAR,
diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c b/src/mesa/drivers/dri/i965/brw_wm_emit.c
index 61f66e7ccdd..b6defa3d59d 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_emit.c
@@ -297,13 +297,11 @@ void emit_pixel_w(struct brw_wm_compile *c,
if (c->dispatch_width == 16) {
brw_math_16(p, dst[3],
BRW_MATH_FUNCTION_INV,
- BRW_MATH_SATURATE_NONE,
2, src,
BRW_MATH_PRECISION_FULL);
} else {
brw_math(p, dst[3],
BRW_MATH_FUNCTION_INV,
- BRW_MATH_SATURATE_NONE,
2, src,
BRW_MATH_DATA_VECTOR,
BRW_MATH_PRECISION_FULL);
@@ -890,9 +888,6 @@ void emit_math1(struct brw_wm_compile *c,
struct brw_compile *p = &c->func;
struct intel_context *intel = &p->brw->intel;
int dst_chan = ffs(mask & WRITEMASK_XYZW) - 1;
- GLuint saturate = ((mask & SATURATE) ?
- BRW_MATH_SATURATE_SATURATE :
- BRW_MATH_SATURATE_NONE);
struct brw_reg src;
if (!(mask & WRITEMASK_XYZW))
@@ -918,11 +913,11 @@ void emit_math1(struct brw_wm_compile *c,
/* Send two messages to perform all 16 operations:
*/
brw_push_insn_state(p);
+ brw_set_saturate(p, (mask & SATURATE) ? 1 : 0);
brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_math(p,
dst[dst_chan],
function,
- saturate,
2,
src,
BRW_MATH_DATA_VECTOR,
@@ -933,7 +928,6 @@ void emit_math1(struct brw_wm_compile *c,
brw_math(p,
offset(dst[dst_chan],1),
function,
- saturate,
3,
sechalf(src),
BRW_MATH_DATA_VECTOR,
@@ -1005,10 +999,6 @@ void emit_math2(struct brw_wm_compile *c,
sechalf(src1));
}
} else {
- GLuint saturate = ((mask & SATURATE) ?
- BRW_MATH_SATURATE_SATURATE :
- BRW_MATH_SATURATE_NONE);
-
brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_MOV(p, brw_message_reg(3), arg1[0]);
if (c->dispatch_width == 16) {
@@ -1016,11 +1006,11 @@ void emit_math2(struct brw_wm_compile *c,
brw_MOV(p, brw_message_reg(5), sechalf(arg1[0]));
}
+ brw_set_saturate(p, (mask & SATURATE) ? 1 : 0);
brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_math(p,
dst[dst_chan],
function,
- saturate,
2,
arg0[0],
BRW_MATH_DATA_VECTOR,
@@ -1033,7 +1023,6 @@ void emit_math2(struct brw_wm_compile *c,
brw_math(p,
offset(dst[dst_chan],1),
function,
- saturate,
4,
sechalf(arg0[0]),
BRW_MATH_DATA_VECTOR,