mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 15:10:12 +01:00
i965/vs: Use the sampler for VS pull constant loading on Ivybridge.
Substantially increases performance in GLBenchmark PRO:
- 320x240 => 3.28x
- 1920x1080 => 1.47x
- 2560x1440 => 1.27x
The LD message ignores the sampler unit index and SAMPLER_STATE pointer,
instead relying on hard-wired default state. Thus, there's no need to
worry about running out of sampler units or providing SAMPLER_STATE;
this small patch should be all that's required.
NOTE: This is a candidate for release branches.
(It requires the preceding commit to compile.)
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
5f4575d42f
commit
259b65e2e7
1 changed files with 17 additions and 0 deletions
|
|
@ -647,6 +647,23 @@ vec4_visitor::generate_pull_constant_load(vec4_instruction *inst,
|
|||
struct brw_reg dst,
|
||||
struct brw_reg index)
|
||||
{
|
||||
if (intel->gen == 7) {
|
||||
gen6_resolve_implied_move(p, &index, inst->base_mrf);
|
||||
brw_instruction *insn = brw_next_insn(p, BRW_OPCODE_SEND);
|
||||
brw_set_dest(p, insn, dst);
|
||||
brw_set_src0(p, insn, index);
|
||||
brw_set_sampler_message(p, insn,
|
||||
SURF_INDEX_VERT_CONST_BUFFER,
|
||||
0, /* LD message ignores sampler unit */
|
||||
GEN5_SAMPLER_MESSAGE_SAMPLE_LD,
|
||||
1, /* rlen */
|
||||
1, /* mlen */
|
||||
false, /* no header */
|
||||
BRW_SAMPLER_SIMD_MODE_SIMD4X2,
|
||||
0);
|
||||
return;
|
||||
}
|
||||
|
||||
struct brw_reg header = brw_vec8_grf(0, 0);
|
||||
|
||||
gen6_resolve_implied_move(p, &header, inst->base_mrf);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue