test->conditional_mod = BRW_CONDITIONAL_Z;
emit(IF(BRW_PREDICATE_NORMAL));
- push_force_uncompressed();
fs_reg start = shader_start_time;
start.negate = true;
fs_reg diff = fs_reg(GRF, virtual_grf_alloc(1), BRW_REGISTER_TYPE_UD, 1);
emit(BRW_OPCODE_ELSE);
emit_shader_time_write(reset_type, fs_reg(1u));
emit(BRW_OPCODE_ENDIF);
-
- pop_force_uncompressed();
}
void
return emit(new(mem_ctx) fs_inst(opcode, dst, src, sources));
}
-void
-fs_visitor::push_force_uncompressed()
-{
- force_uncompressed_stack++;
-}
-
-void
-fs_visitor::pop_force_uncompressed()
-{
- force_uncompressed_stack--;
- assert(force_uncompressed_stack >= 0);
-}
-
/**
* Returns true if the instruction has a flag that means it won't
* update an entire destination register.
}
}
}
- assert(force_uncompressed_stack == 0);
/* This must come after all optimization and register allocation, since
* it inserts dead code that happens to have side effects, and it does
void lower_uniform_pull_constant_loads();
bool lower_load_payload();
- void push_force_uncompressed();
- void pop_force_uncompressed();
-
void emit_dummy_fs();
void emit_repclear_shader();
fs_reg *emit_fragcoord_interpolation(ir_variable *ir);
bool spilled_any_registers;
const unsigned dispatch_width; /**< 8 or 16 */
-
- int force_uncompressed_stack;
};
/**
fs_inst *
fs_visitor::emit(fs_inst *inst)
{
- if (force_uncompressed_stack > 0)
- inst->exec_size = 8;
-
if (dispatch_width == 16 && inst->exec_size == 8)
inst->force_uncompressed = true;
this->pull_constant_loc = NULL;
this->push_constant_loc = NULL;
- this->force_uncompressed_stack = 0;
-
this->spilled_any_registers = false;
this->do_dual_src = false;