mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-09 16:10:43 +02:00
i965/vp: Use the sampler for pull constant loads on Gen7/7.5.
This improves performance in Trine 2 at 1280x720 (windowed) on "Very High" settings by 30% (in the interactive menu) to 45% (in the forest by the giant frog) on Haswell GT3e. It also now generates the same assembly on Gen7 as it does on Gen8, which always used the sampler for both types. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
f7e9756201
commit
04f5b2f4e4
1 changed files with 12 additions and 5 deletions
|
|
@ -545,11 +545,18 @@ vec4_vs_visitor::get_vp_src_reg(const prog_src_register &src)
|
|||
|
||||
result = src_reg(this, glsl_type::vec4_type);
|
||||
src_reg surf_index = src_reg(unsigned(prog_data->base.binding_table.pull_constants_start));
|
||||
vec4_instruction *load =
|
||||
new(mem_ctx) vec4_instruction(this, VS_OPCODE_PULL_CONSTANT_LOAD,
|
||||
dst_reg(result), surf_index, reladdr);
|
||||
load->base_mrf = 14;
|
||||
load->mlen = 1;
|
||||
vec4_instruction *load;
|
||||
if (brw->gen >= 7) {
|
||||
load = new(mem_ctx)
|
||||
vec4_instruction(this, VS_OPCODE_PULL_CONSTANT_LOAD_GEN7,
|
||||
dst_reg(result), surf_index, reladdr);
|
||||
} else {
|
||||
load = new(mem_ctx)
|
||||
vec4_instruction(this, VS_OPCODE_PULL_CONSTANT_LOAD,
|
||||
dst_reg(result), surf_index, reladdr);
|
||||
load->base_mrf = 14;
|
||||
load->mlen = 1;
|
||||
}
|
||||
emit(load);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue