mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 12:40:23 +01:00
i965/fs: Allow copy-propagation on pull constant load values.
Given that we handle similarly-regioned GRFs registers for our copy propagation from our UNIFORM file, there's no reason not to allow it. The shader-db impact is negligible -- +90 instructions total, 2 shaders helped and 7 hurt (slightly increased register pressure increased spilling), but this is to prevent regression in other shaders when fixing copy_propagation to reduce register pressure in the shaders that are hurt here. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
cf26b4569a
commit
545b59b62a
1 changed files with 4 additions and 3 deletions
|
|
@ -52,12 +52,14 @@ fs_visitor::try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry)
|
|||
bool has_source_modifiers = entry->src.abs || entry->src.negate;
|
||||
|
||||
if (intel->gen == 6 && inst->is_math() &&
|
||||
(has_source_modifiers || entry->src.file == UNIFORM))
|
||||
(has_source_modifiers || entry->src.file == UNIFORM ||
|
||||
entry->src.smear != -1))
|
||||
return false;
|
||||
|
||||
inst->src[arg].file = entry->src.file;
|
||||
inst->src[arg].reg = entry->src.reg;
|
||||
inst->src[arg].reg_offset = entry->src.reg_offset;
|
||||
inst->src[arg].smear = entry->src.smear;
|
||||
|
||||
if (!inst->src[arg].abs) {
|
||||
inst->src[arg].abs = entry->src.abs;
|
||||
|
|
@ -255,8 +257,7 @@ fs_visitor::opt_copy_propagate_local(void *mem_ctx, bblock_t *block)
|
|||
!inst->saturate &&
|
||||
!inst->predicate &&
|
||||
!inst->force_uncompressed &&
|
||||
!inst->force_sechalf &&
|
||||
inst->src[0].smear == -1) {
|
||||
!inst->force_sechalf) {
|
||||
acp_entry *entry = ralloc(mem_ctx, acp_entry);
|
||||
entry->dst = inst->dst;
|
||||
entry->src = inst->src[0];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue