tgsi_to_nir: translate FBFETCH

Tested by u_tests.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8906>
This commit is contained in:
Marek Olšák 2021-02-07 19:08:51 -05:00 committed by Marge Bot
parent 81d923fa51
commit 974c4a1700

View file

@ -685,6 +685,16 @@ ttn_src_for_file_and_index(struct ttn_compile *c, unsigned file, unsigned index,
}
break;
case TGSI_FILE_OUTPUT:
if (c->scan->processor == PIPE_SHADER_FRAGMENT) {
c->outputs[index]->data.fb_fetch_output = 1;
nir_deref_instr *deref = nir_build_deref_var(&c->build,
c->outputs[index]);
return nir_src_for_ssa(nir_load_deref(&c->build, deref));
}
unreachable("unsupported output read");
break;
case TGSI_FILE_CONSTANT: {
nir_intrinsic_instr *load;
nir_intrinsic_op op;
@ -1785,6 +1795,7 @@ ttn_mem(struct ttn_compile *c, nir_alu_dest dest, nir_ssa_def **src)
static const nir_op op_trans[TGSI_OPCODE_LAST] = {
[TGSI_OPCODE_ARL] = 0,
[TGSI_OPCODE_MOV] = nir_op_mov,
[TGSI_OPCODE_FBFETCH] = nir_op_mov,
[TGSI_OPCODE_LIT] = 0,
[TGSI_OPCODE_RCP] = nir_op_frcp,
[TGSI_OPCODE_RSQ] = nir_op_frsq,