summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2015-08-27 23:05:03 -0400
committerIlia Mirkin <[email protected]>2015-09-10 17:38:33 -0400
commit1807a08e4f35b014f2a80d1e88dd74a9f096d7a5 (patch)
tree469f60dc891635720cc21c4f946bece136a44bf0
parentf9052914e979228d28502a7f7953f98ff4731f99 (diff)
nir: add nir_texop_texture_samples and convert from glsl
Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/glsl/nir/glsl_to_nir.cpp5
-rw-r--r--src/glsl/nir/nir.h4
-rw-r--r--src/glsl/nir/nir_print.c3
3 files changed, 11 insertions, 1 deletions
diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_nir.cpp
index ad7d7dddeaf..bf78b4253d9 100644
--- a/src/glsl/nir/glsl_to_nir.cpp
+++ b/src/glsl/nir/glsl_to_nir.cpp
@@ -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");
}
diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h
index 2ba7731c1ff..a93ff11f01b 100644
--- a/src/glsl/nir/nir.h
+++ b/src/glsl/nir/nir.h
@@ -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;
diff --git a/src/glsl/nir/nir_print.c b/src/glsl/nir/nir_print.c
index f591c4b5f8d..69cadbae2b6 100644
--- a/src/glsl/nir/nir_print.c
+++ b/src/glsl/nir/nir_print.c
@@ -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");