intel: make intel_ir opaque
It is just gl_shader_program in the end, and we want gl_shader_program to be
opaque. This also forces the driver to correctly use intel_pipeline_shader
instead of intel_ir.
With the change, xglCreateShader() now asks the compiler to compile BIL into
intel_ir. Later when the pipeline is created, the intel_ir is passed to the
compiler again to generate the binary kernel as well as metadata.
diff --git a/icd/intel/pipeline.h b/icd/intel/pipeline.h
index 93cb928..f931661 100644
--- a/icd/intel/pipeline.h
+++ b/icd/intel/pipeline.h
@@ -33,6 +33,16 @@
#include "obj.h"
#include "dev.h"
+enum intel_pipeline_shader_use {
+ INTEL_SHADER_USE_VID = (1 << 0),
+ INTEL_SHADER_USE_IID = (1 << 1),
+
+ INTEL_SHADER_USE_KILL = (1 << 2),
+ INTEL_SHADER_USE_COMPUTED_DEPTH = (1 << 3),
+ INTEL_SHADER_USE_DEPTH = (1 << 4),
+ INTEL_SHADER_USE_W = (1 << 5),
+};
+
#define INTEL_PIPELINE_RMAP_SLOT_RT ((XGL_UINT) -1)
#define INTEL_PIPELINE_RMAP_SLOT_DYN ((XGL_UINT) -2)
struct intel_pipeline_rmap_slot {