freedreno/ir3: fragz cannot be half precision

Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Rob Clark 2017-01-31 08:31:37 -05:00
parent b1df639db6
commit f805593b12

View file

@ -2428,8 +2428,14 @@ ir3_compile_shader_nir(struct ir3_compiler *compiler,
if (so->key.half_precision) {
for (i = 0; i < ir->noutputs; i++) {
struct ir3_instruction *out = ir->outputs[i];
if (!out)
continue;
/* if frag shader writes z, that needs to be full precision: */
if (so->outputs[i/4].slot == FRAG_RESULT_DEPTH)
continue;
out->regs[0]->flags |= IR3_REG_HALF;
/* output could be a fanout (ie. texture fetch output)
* in which case we need to propagate the half-reg flag