mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-21 11:30:11 +01:00
i965: add double support packing support to gs inputs
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
20e935e6f6
commit
8b80e9c31d
1 changed files with 3 additions and 2 deletions
|
|
@ -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);
|
fs_reg tmp = fs_reg(VGRF, alloc.allocate(4), dst.type);
|
||||||
tmp_dst = tmp;
|
tmp_dst = tmp;
|
||||||
|
first_component = first_component / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned iter = 0; iter < num_iterations; iter++) {
|
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;
|
unsigned read_components = num_components + first_component;
|
||||||
fs_reg tmp = bld.vgrf(dst.type, read_components);
|
fs_reg tmp = bld.vgrf(dst.type, read_components);
|
||||||
inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, tmp, icp_handle);
|
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++) {
|
for (unsigned i = 0; i < num_components; i++) {
|
||||||
bld.MOV(offset(tmp_dst, bld, i),
|
bld.MOV(offset(tmp_dst, bld, i),
|
||||||
offset(tmp, bld, i + first_component));
|
offset(tmp, bld, i + first_component));
|
||||||
|
|
@ -2158,7 +2159,7 @@ fs_visitor::emit_gs_input_load(const fs_reg &dst,
|
||||||
if (first_component != 0) {
|
if (first_component != 0) {
|
||||||
inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, tmp,
|
inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, tmp,
|
||||||
payload);
|
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++) {
|
for (unsigned i = 0; i < num_components; i++) {
|
||||||
bld.MOV(offset(tmp_dst, bld, i),
|
bld.MOV(offset(tmp_dst, bld, i),
|
||||||
offset(tmp, bld, i + first_component));
|
offset(tmp, bld, i + first_component));
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue