diff --git a/src/compiler/nir/nir_gather_xfb_info.c b/src/compiler/nir/nir_gather_xfb_info.c index c89d8b18dce..724c34aa4bf 100644 --- a/src/compiler/nir/nir_gather_xfb_info.c +++ b/src/compiler/nir/nir_gather_xfb_info.c @@ -391,7 +391,10 @@ nir_gather_xfb_info_from_intrinsics(nir_shader *nir) j < count && cur->buffer == outputs[j].buffer && cur->location == outputs[j].location && - cur->high_16bits == outputs[j].high_16bits; + cur->data_is_16bit == outputs[j].data_is_16bit && + cur->high_16bits == outputs[j].high_16bits && + cur->mediump == outputs[j].mediump && + cur->mediump_upconvert_type == outputs[j].mediump_upconvert_type; j++) { if (outputs[j].component_mask && outputs[j].offset - outputs[j].component_offset * 4 == @@ -501,12 +504,19 @@ nir_print_xfb_info(nir_xfb_info *info, FILE *fp) fprintf(fp, "output_count: %u\n", info->output_count); for (unsigned i = 0; i < info->output_count; i++) { - fprintf(fp, "output%u: buffer=%u, offset=%u, location=%u, high_16bits=%u, " + nir_alu_type type = info->outputs[i].mediump_upconvert_type; + fprintf(fp, "output%u: buffer=%u, offset=%u, location=%u, data_is_16bit=%u, " + "high_16bits=%u, mediump=%u, upconvert=%s, " "component_offset=%u, component_mask=0x%x\n", i, info->outputs[i].buffer, info->outputs[i].offset, info->outputs[i].location, + info->outputs[i].data_is_16bit, info->outputs[i].high_16bits, + info->outputs[i].mediump, + type == nir_type_float ? "float" : + type == nir_type_int ? "int" : + type == nir_type_uint ? "uint" : "none", info->outputs[i].component_offset, info->outputs[i].component_mask); }