summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2016-06-10 14:23:58 +1000
committerTimothy Arceri <[email protected]>2016-07-07 10:26:43 +1000
commit8b80e9c31db62ccf54ab593b47016ea514dec81c (patch)
treea29d66cddce894e76ff8c7c80e97e648ef621d5b /src/mesa
parent20e935e6f62174fc6196241c2b026e9f45345549 (diff)
i965: add double support packing support to gs inputs
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_nir.cpp5
1 files 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));