From 8b80e9c31db62ccf54ab593b47016ea514dec81c Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Fri, 10 Jun 2016 14:23:58 +1000 Subject: [PATCH] i965: add double support packing support to gs inputs Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index 87ffd291451..1a03c0e7161 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -2127,6 +2127,7 @@ fs_visitor::emit_gs_input_load(const fs_reg &dst, } fs_reg tmp = fs_reg(VGRF, alloc.allocate(4), dst.type); tmp_dst = tmp; + first_component = first_component / 2; } for (unsigned iter = 0; iter < num_iterations; iter++) { @@ -2136,7 +2137,7 @@ fs_visitor::emit_gs_input_load(const fs_reg &dst, unsigned read_components = num_components + first_component; fs_reg tmp = bld.vgrf(dst.type, read_components); inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, tmp, icp_handle); - inst->regs_written = read_components; + inst->regs_written = read_components * type_sz(tmp_dst.type) / 4; for (unsigned i = 0; i < num_components; i++) { bld.MOV(offset(tmp_dst, bld, i), offset(tmp, bld, i + first_component)); @@ -2158,7 +2159,7 @@ fs_visitor::emit_gs_input_load(const fs_reg &dst, if (first_component != 0) { inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, tmp, payload); - inst->regs_written = read_components; + inst->regs_written = read_components * type_sz(tmp_dst.type) / 4; for (unsigned i = 0; i < num_components; i++) { bld.MOV(offset(tmp_dst, bld, i), offset(tmp, bld, i + first_component)); -- 2.30.2