projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'public/master' into vulkan
[mesa.git]
/
src
/
mesa
/
drivers
/
dri
/
i965
/
brw_vec4_nir.cpp
diff --git
a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
index a5db2f94d73b27a11815e277f8f45361b3e6ac8e..b63e44a3bfb1254e47da51716844b89fb50a618e 100644
(file)
--- a/
src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
+++ b/
src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
@@
-1093,29
+1093,27
@@
vec4_visitor::nir_emit_alu(nir_alu_instr *instr)
inst->saturate = instr->dest.saturate;
break;
inst->saturate = instr->dest.saturate;
break;
- case nir_op_fsin: {
- src_reg tmp = src_reg(this, glsl_type::vec4_type);
- inst = emit_math(SHADER_OPCODE_SIN, dst_reg(tmp), op[0]);
- if (instr->dest.saturate) {
- inst->dst = dst;
- inst->saturate = true;
+ case nir_op_fsin:
+ if (!compiler->precise_trig) {
+ inst = emit_math(SHADER_OPCODE_SIN, dst, op[0]);
} else {
} else {
- emit(MUL(dst, tmp, brw_imm_f(0.99997)));
+ src_reg tmp = src_reg(this, glsl_type::vec4_type);
+ inst = emit_math(SHADER_OPCODE_SIN, dst_reg(tmp), op[0]);
+ inst = emit(MUL(dst, tmp, brw_imm_f(0.99997)));
}
}
+ inst->saturate = instr->dest.saturate;
break;
break;
- }
- case nir_op_fcos: {
- src_reg tmp = src_reg(this, glsl_type::vec4_type);
- inst = emit_math(SHADER_OPCODE_COS, dst_reg(tmp), op[0]);
- if (instr->dest.saturate) {
- inst->dst = dst;
- inst->saturate = true;
+ case nir_op_fcos:
+ if (!compiler->precise_trig) {
+ inst = emit_math(SHADER_OPCODE_COS, dst, op[0]);
} else {
} else {
- emit(MUL(dst, tmp, brw_imm_f(0.99997)));
+ src_reg tmp = src_reg(this, glsl_type::vec4_type);
+ inst = emit_math(SHADER_OPCODE_COS, dst_reg(tmp), op[0]);
+ inst = emit(MUL(dst, tmp, brw_imm_f(0.99997)));
}
}
+ inst->saturate = instr->dest.saturate;
break;
break;
- }
case nir_op_idiv:
case nir_op_udiv:
case nir_op_idiv:
case nir_op_udiv:
@@
-1726,7
+1724,7
@@
vec4_visitor::nir_emit_texture(nir_tex_instr *instr)
nir_tex_instr_dest_size(instr));
dst_reg dest = get_nir_dest(instr->dest, instr->dest_type);
nir_tex_instr_dest_size(instr));
dst_reg dest = get_nir_dest(instr->dest, instr->dest_type);
- /*
Our
hardware requires a LOD for buffer textures */
+ /*
The
hardware requires a LOD for buffer textures */
if (instr->sampler_dim == GLSL_SAMPLER_DIM_BUF)
lod = brw_imm_d(0);
if (instr->sampler_dim == GLSL_SAMPLER_DIM_BUF)
lod = brw_imm_d(0);