diff options
author | Jason Ekstrand <[email protected]> | 2016-05-03 12:34:51 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-05-14 13:34:49 -0700 |
commit | 50e5e1f747ad820eb491e093600a4bde9c13efba (patch) | |
tree | 4ba59a83c63ea15768cb4312a25a8d0360d897c6 /src | |
parent | f47faa431616b36ad0d3811d0bcdd24f8b77cef9 (diff) |
i965/fs: Implement the new NIR MCS texturing
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index 4648c58f0c4..2c22b4f74e7 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -3706,6 +3706,7 @@ fs_visitor::nir_emit_texture(const fs_builder &bld, nir_tex_instr *instr) switch (instr->op) { case nir_texop_txf: case nir_texop_txf_ms: + case nir_texop_txf_ms_mcs: case nir_texop_samples_identical: srcs[TEX_LOGICAL_SRC_COORDINATE] = retype(src, BRW_REGISTER_TYPE_D); break; @@ -3780,13 +3781,19 @@ fs_visitor::nir_emit_texture(const fs_builder &bld, nir_tex_instr *instr) break; } + case nir_tex_src_ms_mcs: + assert(instr->op == nir_texop_txf_ms); + srcs[TEX_LOGICAL_SRC_MCS] = retype(src, BRW_REGISTER_TYPE_D); + break; + default: unreachable("unknown texture source"); } } - if (instr->op == nir_texop_txf_ms || - instr->op == nir_texop_samples_identical) { + if (srcs[TEX_LOGICAL_SRC_MCS].file == BAD_FILE && + (instr->op == nir_texop_txf_ms || + instr->op == nir_texop_samples_identical)) { if (devinfo->gen >= 7 && key_tex->compressed_multisample_layout_mask & (1 << texture)) { srcs[TEX_LOGICAL_SRC_MCS] = @@ -3832,6 +3839,9 @@ fs_visitor::nir_emit_texture(const fs_builder &bld, nir_tex_instr *instr) else opcode = SHADER_OPCODE_TXF_CMS_LOGICAL; break; + case nir_texop_txf_ms_mcs: + opcode = SHADER_OPCODE_TXF_MCS_LOGICAL; + break; case nir_texop_query_levels: case nir_texop_txs: opcode = SHADER_OPCODE_TXS_LOGICAL; |