intel: add some intel_ir info
authorChia-I Wu <olvaffe@gmail.com>
Thu, 28 Aug 2014 04:18:43 +0000 (12:18 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Thu, 28 Aug 2014 04:34:00 +0000 (12:34 +0800)
Just the beginning.  More will be needed.

icd/intel/shader.c
icd/intel/shader.h

index edbd17291158e7df4a5936957d9e709986466496..de892625a380a5ad3133483a0eb7e3b927c308fa 100644 (file)
@@ -47,6 +47,18 @@ static XGL_RESULT shader_parse_bil(struct intel_shader *sh,
     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;
 }
index 113fe1a1a1bc023fbe1c7e39556e6e3476d543d6..61f2011f4d4141444db0834d39bfaeec7051f0ae 100644 (file)
 #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_shader {
     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)