xgl: move to new resource binding model

All except layout(set=) is supported.  The change to
pipeline_compiler_interface.{cpp,h} is ugly and fragile.  It should be fixed
after adding layout(set=) support.
diff --git a/xgl.py b/xgl.py
index 0e41056..84b39ee 100644
--- a/xgl.py
+++ b/xgl.py
@@ -200,6 +200,8 @@
         "XGL_PIPELINE_DELTA",
         "XGL_SAMPLER",
         "XGL_DESCRIPTOR_SET",
+        "XGL_DESCRIPTOR_SET_LAYOUT",
+        "XGL_DESCRIPTOR_REGION",
         "XGL_DYNAMIC_STATE_OBJECT",
         "XGL_DYNAMIC_VP_STATE_OBJECT",
         "XGL_DYNAMIC_RS_STATE_OBJECT",
@@ -501,45 +503,48 @@
              Param("const XGL_SAMPLER_CREATE_INFO*", "pCreateInfo"),
              Param("XGL_SAMPLER*", "pSampler")]),
 
-        Proto("XGL_RESULT", "CreateDescriptorSet",
+        Proto("XGL_RESULT", "CreateDescriptorSetLayout",
             [Param("XGL_DEVICE", "device"),
-             Param("const XGL_DESCRIPTOR_SET_CREATE_INFO*", "pCreateInfo"),
-             Param("XGL_DESCRIPTOR_SET*", "pDescriptorSet")]),
+             Param("XGL_FLAGS", "stageFlags"),
+             Param("const XGL_UINT*", "pSetBindPoints"),
+             Param("XGL_DESCRIPTOR_SET_LAYOUT", "priorSetLayout"),
+             Param("const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO*", "pSetLayoutInfoList"),
+             Param("XGL_DESCRIPTOR_SET_LAYOUT*", "pSetLayout")]),
 
-        Proto("XGL_VOID", "BeginDescriptorSetUpdate",
-            [Param("XGL_DESCRIPTOR_SET", "descriptorSet")]),
+        Proto("XGL_RESULT", "BeginDescriptorRegionUpdate",
+            [Param("XGL_DEVICE", "device"),
+             Param("XGL_DESCRIPTOR_UPDATE_MODE", "updateMode")]),
 
-        Proto("XGL_VOID", "EndDescriptorSetUpdate",
-            [Param("XGL_DESCRIPTOR_SET", "descriptorSet")]),
+        Proto("XGL_RESULT", "EndDescriptorRegionUpdate",
+            [Param("XGL_DEVICE", "device"),
+             Param("XGL_CMD_BUFFER", "cmd")]),
 
-        Proto("XGL_VOID", "AttachSamplerDescriptors",
+        Proto("XGL_RESULT", "CreateDescriptorRegion",
+            [Param("XGL_DEVICE", "device"),
+             Param("XGL_DESCRIPTOR_REGION_USAGE", "regionUsage"),
+             Param("XGL_UINT", "maxSets"),
+             Param("const XGL_DESCRIPTOR_REGION_CREATE_INFO*", "pCreateInfo"),
+             Param("XGL_DESCRIPTOR_REGION*", "pDescriptorRegion")]),
+
+        Proto("XGL_RESULT", "ClearDescriptorRegion",
+            [Param("XGL_DESCRIPTOR_REGION", "descriptorRegion")]),
+
+        Proto("XGL_RESULT", "AllocDescriptorSets",
+            [Param("XGL_DESCRIPTOR_REGION", "descriptorRegion"),
+             Param("XGL_DESCRIPTOR_SET_USAGE", "setUsage"),
+             Param("XGL_UINT", "count"),
+             Param("const XGL_DESCRIPTOR_SET_LAYOUT*", "pSetLayouts"),
+             Param("XGL_DESCRIPTOR_SET*", "pDescriptorSets"),
+             Param("XGL_UINT*", "pCount")]),
+
+        Proto("XGL_VOID", "ClearDescriptorSets",
+            [Param("XGL_DESCRIPTOR_REGION", "descriptorRegion"),
+             Param("XGL_UINT", "count"),
+             Param("const XGL_DESCRIPTOR_SET*", "pDescriptorSets")]),
+
+        Proto("XGL_VOID", "UpdateDescriptors",
             [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
-             Param("XGL_UINT", "startSlot"),
-             Param("XGL_UINT", "slotCount"),
-             Param("const XGL_SAMPLER*", "pSamplers")]),
-
-        Proto("XGL_VOID", "AttachImageViewDescriptors",
-            [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
-             Param("XGL_UINT", "startSlot"),
-             Param("XGL_UINT", "slotCount"),
-             Param("const XGL_IMAGE_VIEW_ATTACH_INFO*", "pImageViews")]),
-
-        Proto("XGL_VOID", "AttachBufferViewDescriptors",
-            [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
-             Param("XGL_UINT", "startSlot"),
-             Param("XGL_UINT", "slotCount"),
-             Param("const XGL_BUFFER_VIEW_ATTACH_INFO*", "pBufferViews")]),
-
-        Proto("XGL_VOID", "AttachNestedDescriptors",
-            [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
-             Param("XGL_UINT", "startSlot"),
-             Param("XGL_UINT", "slotCount"),
-             Param("const XGL_DESCRIPTOR_SET_ATTACH_INFO*", "pNestedDescriptorSets")]),
-
-        Proto("XGL_VOID", "ClearDescriptorSetSlots",
-            [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
-             Param("XGL_UINT", "startSlot"),
-             Param("XGL_UINT", "slotCount")]),
+             Param("const XGL_VOID*", "pUpdateChain")]),
 
         Proto("XGL_RESULT", "CreateDynamicViewportState",
             [Param("XGL_DEVICE", "device"),
@@ -594,14 +599,8 @@
         Proto("XGL_VOID", "CmdBindDescriptorSet",
             [Param("XGL_CMD_BUFFER", "cmdBuffer"),
              Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
-             Param("XGL_UINT", "index"),
              Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
-             Param("XGL_UINT", "slotOffset")]),
-
-        Proto("XGL_VOID", "CmdBindDynamicBufferView",
-            [Param("XGL_CMD_BUFFER", "cmdBuffer"),
-             Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
-             Param("const XGL_BUFFER_VIEW_ATTACH_INFO*", "pBufferView")]),
+             Param("const XGL_UINT*", "pUserData")]),
 
         Proto("XGL_VOID", "CmdBindVertexBuffer",
             [Param("XGL_CMD_BUFFER", "cmdBuffer"),