Selaa lähdekoodia

i965: Add and use is_scheduling_barrier() function.

tags/12.0-branchpoint
Matt Turner 9 vuotta sitten
vanhempi
commit
3495265158
1 muutettua tiedostoa jossa 17 lisäystä ja 4 poistoa
  1. 17
    4
      src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp

+ 17
- 4
src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp Näytä tiedosto

@@ -892,6 +892,14 @@ fs_instruction_scheduler::is_compressed(fs_inst *inst)
return inst->exec_size == 16;
}

static bool
is_scheduling_barrier(const fs_inst *inst)
{
return inst->opcode == FS_OPCODE_PLACEHOLDER_HALT ||
inst->is_control_flow() ||
inst->has_side_effects();
}

void
fs_instruction_scheduler::calculate_deps()
{
@@ -917,9 +925,7 @@ fs_instruction_scheduler::calculate_deps()
foreach_in_list(schedule_node, n, &instructions) {
fs_inst *inst = (fs_inst *)n->inst;

if (inst->opcode == FS_OPCODE_PLACEHOLDER_HALT ||
inst->is_control_flow() ||
inst->has_side_effects())
if (is_scheduling_barrier(inst))
add_barrier_deps(n);

/* read-after-write deps. */
@@ -1131,6 +1137,13 @@ fs_instruction_scheduler::calculate_deps()
}
}

static bool
is_scheduling_barrier(const vec4_instruction *inst)
{
return inst->is_control_flow() ||
inst->has_side_effects();
}

void
vec4_instruction_scheduler::calculate_deps()
{
@@ -1152,7 +1165,7 @@ vec4_instruction_scheduler::calculate_deps()
foreach_in_list(schedule_node, n, &instructions) {
vec4_instruction *inst = (vec4_instruction *)n->inst;

if (inst->is_control_flow() || inst->has_side_effects())
if (is_scheduling_barrier(inst))
add_barrier_deps(n);

/* read-after-write deps. */

Loading…
Peruuta
Tallenna