mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 16:50:10 +01:00
i965/fs: Add a helper for detecting texturing opcodes.
This commit is contained in:
parent
a124490262
commit
3f2fe31eee
2 changed files with 12 additions and 8 deletions
|
|
@ -2647,10 +2647,7 @@ fs_visitor::split_virtual_grfs()
|
|||
fs_inst *inst = (fs_inst *)iter.get();
|
||||
|
||||
/* Texturing produces 4 contiguous registers, so no splitting. */
|
||||
if ((inst->opcode == FS_OPCODE_TEX ||
|
||||
inst->opcode == FS_OPCODE_TXB ||
|
||||
inst->opcode == FS_OPCODE_TXL) &&
|
||||
inst->dst.file == GRF) {
|
||||
if (inst->is_tex()) {
|
||||
split_grf[inst->dst.reg] = false;
|
||||
}
|
||||
}
|
||||
|
|
@ -2938,7 +2935,7 @@ fs_visitor::propagate_constants()
|
|||
if (scan_inst->dst.file == GRF &&
|
||||
scan_inst->dst.reg == inst->dst.reg &&
|
||||
(scan_inst->dst.reg_offset == inst->dst.reg_offset ||
|
||||
scan_inst->opcode == FS_OPCODE_TEX)) {
|
||||
scan_inst->is_tex())) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -3033,13 +3030,13 @@ fs_visitor::register_coalesce()
|
|||
if (scan_inst->dst.file == GRF) {
|
||||
if (scan_inst->dst.reg == inst->dst.reg &&
|
||||
(scan_inst->dst.reg_offset == inst->dst.reg_offset ||
|
||||
scan_inst->opcode == FS_OPCODE_TEX)) {
|
||||
scan_inst->is_tex())) {
|
||||
interfered = true;
|
||||
break;
|
||||
}
|
||||
if (scan_inst->dst.reg == inst->src[0].reg &&
|
||||
(scan_inst->dst.reg_offset == inst->src[0].reg_offset ||
|
||||
scan_inst->opcode == FS_OPCODE_TEX)) {
|
||||
scan_inst->is_tex())) {
|
||||
interfered = true;
|
||||
break;
|
||||
}
|
||||
|
|
@ -3120,7 +3117,7 @@ fs_visitor::compute_to_mrf()
|
|||
* into a compute-to-MRF.
|
||||
*/
|
||||
|
||||
if (scan_inst->opcode == FS_OPCODE_TEX) {
|
||||
if (scan_inst->is_tex()) {
|
||||
/* texturing writes several continuous regs, so we can't
|
||||
* compute-to-mrf that.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -306,6 +306,13 @@ public:
|
|||
offset == inst->offset);
|
||||
}
|
||||
|
||||
bool is_tex()
|
||||
{
|
||||
return (opcode == FS_OPCODE_TEX ||
|
||||
opcode == FS_OPCODE_TXB ||
|
||||
opcode == FS_OPCODE_TXL);
|
||||
}
|
||||
|
||||
int opcode; /* BRW_OPCODE_* or FS_OPCODE_* */
|
||||
fs_reg dst;
|
||||
fs_reg src[3];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue