intel: make PIPELINE_SELECT a queue state

Mantle has the concept of a universal queue, and it can switch between
GRAPHICS and COMPUTE within a command buffer.  On the other hand, an XGL
command buffer is created with either XGL_QUEUE_TYPE_GRAPHICS or
XGL_QUEUE_TYPE_COMPUTE.  Swtiching to another queue type in the middle of a
command buffer is not allowed.  Letting the queue emit PIPELINE_SELECT allows
us to avoid unnecessary PIPELINE_SELECTs in the command buffer.
diff --git a/icd/intel/queue.h b/icd/intel/queue.h
index 0153b15..875fc7a 100644
--- a/icd/intel/queue.h
+++ b/icd/intel/queue.h
@@ -39,10 +39,12 @@
     struct intel_dev *dev;
     enum intel_ring_type ring;
 
-    /* for context initialization and atomic counters */
-    struct intel_bo *bo;
+    struct intel_bo *atomic_bo;
+    struct intel_bo *select_graphics_bo;
+    struct intel_bo *select_compute_bo;
 
     struct intel_cmd *last_submitted_cmd;
+    int last_pipeline_select;
 };
 
 static inline struct intel_queue *intel_queue(XGL_QUEUE queue)