nir: add nir_texop_texture_samples and convert from glsl

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Ilia Mirkin 2015-08-27 23:05:03 -04:00
parent f9052914e9
commit 1807a08e4f
3 changed files with 11 additions and 1 deletions

View File

@ -1718,6 +1718,11 @@ nir_visitor::visit(ir_texture *ir)
num_srcs = 0;
break;
case ir_texture_samples:
op = nir_texop_texture_samples;
num_srcs = 0;
break;
default:
unreachable("not reached");
}

View File

@ -944,7 +944,8 @@ typedef enum {
nir_texop_txs, /**< Texture size */
nir_texop_lod, /**< Texture lod query */
nir_texop_tg4, /**< Texture gather */
nir_texop_query_levels /**< Texture levels query */
nir_texop_query_levels, /**< Texture levels query */
nir_texop_texture_samples, /**< Texture samples query */
} nir_texop;
typedef struct {
@ -1016,6 +1017,7 @@ nir_tex_instr_dest_size(nir_tex_instr *instr)
case nir_texop_lod:
return 2;
case nir_texop_texture_samples:
case nir_texop_query_levels:
return 1;

View File

@ -417,6 +417,9 @@ print_tex_instr(nir_tex_instr *instr, print_var_state *state, FILE *fp)
case nir_texop_query_levels:
fprintf(fp, "query_levels ");
break;
case nir_texop_texture_samples:
fprintf(fp, "texture_samples ");
break;
default:
unreachable("Invalid texture operation");