v3d: Force sampling from base level for tg4.

This is what the GLSL ES 310 spec tells us to do, but apparently the
"gather mode" flag doesn't imply it in the HW.  Fixes
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.filter_mode.min_nearest_mipmap_linear_mag_linear
This commit is contained in:
Eric Anholt 2018-12-26 23:15:30 -08:00
parent f9bdce9966
commit 47caefc7b4

View file

@ -78,6 +78,8 @@ v3d40_vir_emit_tex(struct v3d_compile *c, nir_tex_instr *instr)
.gather_component = instr->component,
.coefficient_mode = instr->op == nir_texop_txd,
.disable_autolod = instr->op == nir_texop_tg4
};
int non_array_components = instr->coord_components - instr->is_array;
@ -119,10 +121,8 @@ v3d40_vir_emit_tex(struct v3d_compile *c, nir_tex_instr *instr)
ntq_get_src(c, instr->src[i].src, 0),
&tmu_writes);
if (instr->op != nir_texop_txf &&
instr->op != nir_texop_tg4) {
if (instr->op != nir_texop_txf)
p2_unpacked.disable_autolod = true;
}
break;
case nir_tex_src_comparator: