Module: Mesa Branch: master Commit: 603e6ba972dae06fe0a198fc00b6aa4a0a33d479 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=603e6ba972dae06fe0a198fc00b6aa4a0a33d479
Author: Samuel Pitoiset <[email protected]> Date: Tue Jan 7 08:39:39 2020 +0100 nir: add two new texture ops for multisample fragment color/mask fetches This introduces: - nir_texop_fragment_mask_fetch (fetch a fragment mask from a compressed multisampled color surface) - nir_texop_fragment_fetch (fetch a color fragment for a particular sample at corresponding fragment mask index). These two texture operations are necessary for implementing SPV_AMD_shader_fragment_mask. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3304> --- src/compiler/nir/nir.h | 3 +++ src/compiler/nir/nir_print.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index eafd6fad855..c68fef5f1cc 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1830,6 +1830,8 @@ typedef enum { * identical. */ nir_texop_tex_prefetch, /**< Regular texture look-up, eligible for pre-dispatch */ + nir_texop_fragment_fetch, /**< Multisample fragment color texture fetch */ + nir_texop_fragment_mask_fetch,/**< Multisample fragment mask texture fetch */ } nir_texop; typedef struct { @@ -1926,6 +1928,7 @@ nir_tex_instr_dest_size(const nir_tex_instr *instr) case nir_texop_texture_samples: case nir_texop_query_levels: case nir_texop_samples_identical: + case nir_texop_fragment_mask_fetch: return 1; default: diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c index aa9ee670a70..9a03f6eee70 100644 --- a/src/compiler/nir/nir_print.c +++ b/src/compiler/nir/nir_print.c @@ -1040,6 +1040,12 @@ print_tex_instr(nir_tex_instr *instr, print_state *state) case nir_texop_tex_prefetch: fprintf(fp, "tex (pre-dispatchable) "); break; + case nir_texop_fragment_fetch: + fprintf(fp, "fragment_fetch "); + break; + case nir_texop_fragment_mask_fetch: + fprintf(fp, "fragment_mask_fetch "); + break; default: unreachable("Invalid texture operation"); break; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
