intel: add some intel_ir info
Just the beginning. More will be needed.
diff --git a/icd/intel/shader.c b/icd/intel/shader.c
index edbd172..de89262 100644
--- a/icd/intel/shader.c
+++ b/icd/intel/shader.c
@@ -47,6 +47,18 @@
memcpy(ir->kernel, bil + 1, ir->size);
sh->ir = ir;
+ switch (bil->gen_magic) {
+ case 'v':
+ sh->uses |= INTEL_SHADER_USE_VID;
+ sh->in_count = 1;
+ sh->out_count = 1;
+ break;
+ case 'w':
+ sh->out_count = 1;
+ break;
+ default:
+ break;
+ }
return XGL_SUCCESS;
}
diff --git a/icd/intel/shader.h b/icd/intel/shader.h
index 113fe1a..61f2011 100644
--- a/icd/intel/shader.h
+++ b/icd/intel/shader.h
@@ -28,6 +28,11 @@
#include "intel.h"
#include "obj.h"
+enum intel_shader_use {
+ INTEL_SHADER_USE_VID = (1 << 0),
+ INTEL_SHADER_USE_IID = (1 << 1),
+};
+
/* just the kernel now */
struct intel_ir {
void *kernel;
@@ -38,6 +43,9 @@
struct intel_obj obj;
struct intel_ir *ir;
+ XGL_FLAGS uses;
+ XGL_UINT in_count;
+ XGL_UINT out_count;
};
static inline struct intel_shader *intel_shader(XGL_SHADER shader)