renaming: Move many xgl files to vk version
diff --git a/docs/vk_ds.dot b/docs/vk_ds.dot
new file mode 100644
index 0000000..2615bee
--- /dev/null
+++ b/docs/vk_ds.dot
@@ -0,0 +1,180 @@
+digraph g {
+graph [
+rankdir = "LR"
+];
+node [
+fontsize = "16"
+shape = "plaintext"
+];
+edge [
+];
+subgraph clusterDSCreate1
+{
+label="vkCreateDescriptorSet()"
+"_VK_DESCRIPTOR_SET_CREATE_INFO1" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">uint32_t</TD><TD PORT="f4">slots=14</TD></TR></TABLE>>
+];
+}
+subgraph clusterDSCreate2
+{
+label="vkCreateDescriptorSet()"
+"_VK_DESCRIPTOR_SET_CREATE_INFO2" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">uint32_t</TD><TD PORT="f4">slots=20</TD></TR></TABLE>>
+];
+}
+subgraph clusterSamplerCreate
+{
+label="vkCreateSampler - multiple calls return unique VK_SAMPLER handles"
+"_VK_SAMPLER_CREATE_INFO_0" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f3">const void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_TEX_FILTER</TD><TD PORT="f6">magFilter</TD></TR><TR><TD PORT="f7">VK_TEX_FILTER</TD><TD PORT="f8">minFilter</TD></TR><TR><TD PORT="f9">VK_TEX_MIPMAP_MODE</TD><TD PORT="f10">mipMode</TD></TR><TR><TD PORT="f11">VK_TEX_ADDRESS</TD><TD PORT="f12">addressU</TD></TR><TR><TD PORT="f13">VK_TEX_ADDRESS</TD><TD PORT="f14">addressV</TD></TR><TR><TD PORT="f15">VK_TEX_ADDRESS</TD><TD PORT="f16">addressW</TD></TR><TR><TD PORT="f17">float</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">maxAnisotropy</TD></TR><TR><TD PORT="f21">VK_COMPARE_FUNC</TD><TD PORT="f22">compareFunc</TD></TR><TR><TD PORT="f23">float</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">float</TD><TD PORT="f26">maxLod</TD></TR><TR><TD PORT="f27">VK_BORDER_COLOR_TYPE</TD><TD PORT="f28">borderColorType</TD></TR></TABLE>>
+];
+"SAMPLER_ELLIPSES" [
+label = "..."
+];
+"_VK_SAMPLER_CREATE_INFO_19" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f3">const void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_TEX_FILTER</TD><TD PORT="f6">magFilter</TD></TR><TR><TD PORT="f7">VK_TEX_FILTER</TD><TD PORT="f8">minFilter</TD></TR><TR><TD PORT="f9">VK_TEX_MIPMAP_MODE</TD><TD PORT="f10">mipMode</TD></TR><TR><TD PORT="f11">VK_TEX_ADDRESS</TD><TD PORT="f12">addressU</TD></TR><TR><TD PORT="f13">VK_TEX_ADDRESS</TD><TD PORT="f14">addressV</TD></TR><TR><TD PORT="f15">VK_TEX_ADDRESS</TD><TD PORT="f16">addressW</TD></TR><TR><TD PORT="f17">float</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">maxAnisotropy</TD></TR><TR><TD PORT="f21">VK_COMPARE_FUNC</TD><TD PORT="f22">compareFunc</TD></TR><TR><TD PORT="f23">float</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">float</TD><TD PORT="f26">maxLod</TD></TR><TR><TD PORT="f27">VK_BORDER_COLOR_TYPE</TD><TD PORT="f28">borderColorType</TD></TR></TABLE>>
+];
+}
+subgraph clusterSamplerAttach
+{
+label="vkAttachSamplerDescriptors\npSamplers array of VK_SAMPLERS"
+"SAMPLER_ARRAY" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="pSamp">pSamplers</TD></TR><TR><TD PORT="f0">VK_SAMPLER0</TD></TR><TR><TD PORT="f1">VK_SAMPLER1</TD></TR><TR><TD PORT="f2">VK_SAMPLER2</TD></TR><TR><TD PORT="f3">VK_SAMPLER3</TD></TR><TR><TD PORT="f4">VK_SAMPLER4</TD></TR><TR><TD PORT="f5">VK_SAMPLER5</TD></TR><TR><TD PORT="f6">VK_SAMPLER6</TD></TR><TR><TD PORT="f7">VK_SAMPLER7</TD></TR><TR><TD PORT="f8">VK_SAMPLER8</TD></TR><TR><TD PORT="f9">VK_SAMPLER9</TD></TR><TR><TD PORT="f10">VK_SAMPLER10</TD></TR><TR><TD PORT="f11">VK_SAMPLER11</TD></TR><TR><TD PORT="f12">VK_SAMPLER12</TD></TR><TR><TD PORT="f13">VK_SAMPLER13</TD></TR><TR><TD PORT="f14">VK_SAMPLER14</TD></TR><TR><TD PORT="f15">VK_SAMPLER15</TD></TR><TR><TD PORT="f16">VK_SAMPLER16</TD></TR><TR><TD PORT="f17">VK_SAMPLER17</TD></TR><TR><TD PORT="f18">VK_SAMPLER18</TD></TR><TR><TD PORT="f19">VK_SAMPLER19</TD></TR></TABLE>>
+];
+}
+"DS1_MEMORY" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="ds1">DS1 Memory</TD></TR><TR><TD PORT="f0">slot0</TD></TR><TR><TD PORT="f1">slot1</TD></TR><TR><TD PORT="f2">slots2</TD></TR><TR><TD PORT="f3">slots3</TD></TR><TR><TD PORT="f4">slots4</TD></TR><TR><TD PORT="f5">slots5</TD></TR><TR><TD PORT="f6">slots6</TD></TR><TR><TD PORT="f7">slots7</TD></TR><TR><TD PORT="f8">slots8</TD></TR><TR><TD PORT="f9">slots9</TD></TR><TR><TD PORT="f10">slots10</TD></TR><TR><TD PORT="f11">slots11</TD></TR><TR><TD PORT="f12">slots12</TD></TR><TR><TD PORT="f13">slot13</TD></TR></TABLE>>
+];
+"DS2_MEMORY" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="ds2">DS2 Memory</TD></TR><TR><TD PORT="f0">slot0</TD></TR><TR><TD PORT="f1">slot1</TD></TR><TR><TD PORT="f2">slots2</TD></TR><TR><TD PORT="f3">slots3</TD></TR><TR><TD PORT="f4">slots4</TD></TR><TR><TD PORT="f5">slots5</TD></TR><TR><TD PORT="f6">slots6</TD></TR><TR><TD PORT="f7">slots7</TD></TR><TR><TD PORT="f8">slots8</TD></TR><TR><TD PORT="f9">slots9</TD></TR><TR><TD PORT="f10">slots10</TD></TR><TR><TD PORT="f11">slots11</TD></TR><TR><TD PORT="f12">slots12</TD></TR><TR><TD PORT="f13">slot13</TD></TR><TR><TD PORT="f14">slots14</TD></TR><TR><TD PORT="f15">slots15</TD></TR><TR><TD PORT="f16">slots16</TD></TR><TR><TD PORT="f17">slots17</TD></TR><TR><TD PORT="f18">slots18</TD></TR><TR><TD PORT="f19">slots19</TD></TR></TABLE>>
+];
+subgraph clusterMemoryView
+{
+label="vkAttachMemoryViewDescriptors - pMemViews array of VK_MEMORY_VIEW_ATTACH_INFO structs"
+"_VK_MEMORY_VIEW_ATTACH_INFO_3" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_GPU_MEMORY</TD><TD PORT="f6">mem</TD></TR><TR><TD PORT="f7">VK_GPU_SIZE</TD><TD PORT="f8">offset</TD></TR><TR><TD PORT="f9">VK_GPU_SIZE</TD><TD PORT="f10">range</TD></TR><TR><TD PORT="f11">VK_GPU_SIZE</TD><TD PORT="f12">stride</TD></TR><TR><TD PORT="f13">VK_FORMAT</TD><TD PORT="f14">format</TD></TR><TR><TD PORT="f15">VK_MEMORY_STATE</TD><TD PORT="f16">state</TD></TR></TABLE>>
+];
+"MEM_VIEW_ELLIPSES" [
+label = "..."
+];
+"_VK_MEMORY_VIEW_ATTACH_INFO_0" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_GPU_MEMORY</TD><TD PORT="f6">mem</TD></TR><TR><TD PORT="f7">VK_GPU_SIZE</TD><TD PORT="f8">offset</TD></TR><TR><TD PORT="f9">VK_GPU_SIZE</TD><TD PORT="f10">range</TD></TR><TR><TD PORT="f11">VK_GPU_SIZE</TD><TD PORT="f12">stride</TD></TR><TR><TD PORT="f13">VK_FORMAT</TD><TD PORT="f14">format</TD></TR><TR><TD PORT="f15">VK_MEMORY_STATE</TD><TD PORT="f16">state</TD></TR></TABLE>>
+];
+}
+subgraph clusterImageView
+{
+label="vkAttachImageViewDescriptors - pImageViews array of VK_IMAGE_VIEW_ATTACH_INFO structs"
+"_VK_IMAGE_VIEW_ATTACH_INFO_9" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_IMAGE_VIEW</TD><TD PORT="f6">view</TD></TR><TR><TD PORT="f7">VK_IMAGE_STATE</TD><TD PORT="f8">state</TD></TR></TABLE>>
+];
+"IMG_VIEW_ELLIPSES" [
+label = "..."
+];
+"_VK_IMAGE_VIEW_ATTACH_INFO_0" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_IMAGE_VIEW</TD><TD PORT="f6">view</TD></TR><TR><TD PORT="f7">VK_IMAGE_STATE</TD><TD PORT="f8">state</TD></TR></TABLE>>
+];
+}
+"VS_VK_DESCRIPTOR_SET_MAPPING" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=2</TD></TR><TR><TD PORT="f3">const VK_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
+];
+"VS_VK_DESCRIPTOR_SLOT_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">VK_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR></TABLE>>
+];
+"FS0_VK_DESCRIPTOR_SET_MAPPING" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=6</TD></TR><TR><TD PORT="f3">const VK_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
+];
+"FS0_VK_DESCRIPTOR_SLOT_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">VK_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">VK_SLOT_SHADER_UNUSED</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">VK_SLOT_SHADER_UNUSED</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR><TR><TD PORT="f12">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f13">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f11">2</TD></TR><TR><TD PORT="f14">uint32_t</TD><TD PORT="f15">shaderEntityIndex</TD></TR><TR><TD PORT="f17">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f18">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f16">3</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">shaderEntityIndex</TD></TR><TR><TD PORT="f22">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f23">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f21">4</TD></TR><TR><TD PORT="f24">uint32_t</TD><TD PORT="f25">shaderEntityIndex</TD></TR><TR><TD PORT="f27">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f28">VK_SLOT_SHADER_UAV</TD><TD ROWSPAN="2" PORT="f26">5</TD></TR><TR><TD PORT="f29">uint32_t</TD><TD PORT="f30">shaderEntityIndex</TD></TR></TABLE>>
+];
+"FS1_VK_DESCRIPTOR_SET_MAPPING" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=10</TD></TR><TR><TD PORT="f3">const VK_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
+];
+"FS1_VK_DESCRIPTOR_SLOT_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">VK_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR><TR><TD PORT="f12">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f13">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f11">2</TD></TR><TR><TD PORT="f14">uint32_t</TD><TD PORT="f15">shaderEntityIndex</TD></TR><TR><TD PORT="f17">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f18">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f16">3</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">shaderEntityIndex</TD></TR><TR><TD PORT="f22">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f23">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f21">4</TD></TR><TR><TD PORT="f24">uint32_t</TD><TD PORT="f25">shaderEntityIndex</TD></TR><TR><TD PORT="f27">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f28">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f26">5</TD></TR><TR><TD PORT="f29">uint32_t</TD><TD PORT="f30">shaderEntityIndex</TD></TR><TR><TD PORT="f32">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f33">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f31">6</TD></TR><TR><TD PORT="f34">uint32_t</TD><TD PORT="f35">shaderEntityIndex</TD></TR><TR><TD PORT="f37">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f38">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f36">7</TD></TR><TR><TD PORT="f39">uint32_t</TD><TD PORT="f40">shaderEntityIndex</TD></TR><TR><TD PORT="f42">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f43">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f41">8</TD></TR><TR><TD PORT="f44">uint32_t</TD><TD PORT="f45">shaderEntityIndex</TD></TR><TR><TD PORT="f47">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f48">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f46">9</TD></TR><TR><TD PORT="f49">uint32_t</TD><TD PORT="f50">shaderEntityIndex</TD></TR></TABLE>>
+];
+/*
+"_VK_DESCRIPTOR_SET_CREATE_INFO1":f2 -> "_VK_DESCRIPTOR_SET_CREATE_INFO2":f0 [
+id = 0
+];
+*/
+"_VK_DESCRIPTOR_SET_CREATE_INFO1":f4 -> "DS1_MEMORY":ds1 [
+id = 1
+];
+"_VK_DESCRIPTOR_SET_CREATE_INFO2":f4 -> "DS2_MEMORY":ds2 [
+id = 2
+];
+/*
+"_VK_SAMPLER_CREATE_INFO_0":f4 -> "_ELLIPSE0" [
+id = 3
+];
+"_ELLIPSE0" -> "_VK_SAMPLER_CREATE_INFO_19":f0 [
+id = 3
+];
+*/
+"_VK_SAMPLER_CREATE_INFO_0" -> "SAMPLER_ARRAY":f0 [
+id = 4
+];
+"_VK_SAMPLER_CREATE_INFO_19" -> "SAMPLER_ARRAY":f19 [
+id = 5
+];
+"SAMPLER_ARRAY":f0 -> "DS2_MEMORY":f0 [
+id = 6
+];
+"SAMPLER_ARRAY":f19 -> "DS2_MEMORY":f19 [
+id = 7
+];
+/*
+"_VK_MEMORY_VIEW_ATTACH_INFO_0":f4 -> "_ELLIPSE1" [
+id = 6
+];
+"_ELLIPSE1" -> "_VK_MEMORY_VIEW_ATTACH_INFO_3":f0 [
+id = 7
+];
+"_VK_IMAGE_VIEW_ATTACH_INFO_0":f4 -> "_ELLIPSE2" [
+id = 8
+];
+"_ELLIPSE2" -> "_VK_IMAGE_VIEW_ATTACH_INFO_9":f0 [
+id = 9
+];
+*/
+"_VK_MEMORY_VIEW_ATTACH_INFO_0" -> "DS1_MEMORY":f0 [
+id = 10
+];
+"_VK_MEMORY_VIEW_ATTACH_INFO_3" -> "DS1_MEMORY":f3 [
+id = 11
+];
+"_VK_IMAGE_VIEW_ATTACH_INFO_0" -> "DS1_MEMORY":f4 [
+id = 10
+];
+"_VK_IMAGE_VIEW_ATTACH_INFO_9" -> "DS1_MEMORY":f13 [
+id = 11
+];
+"VS_VK_DESCRIPTOR_SET_MAPPING":f4 -> "VS_VK_DESCRIPTOR_SLOT_INFO":f0 [
+id = 12
+];
+"VS_VK_DESCRIPTOR_SLOT_INFO":f1 -> "DS1_MEMORY":f0 [
+id = 13
+];
+"VS_VK_DESCRIPTOR_SLOT_INFO":f6 -> "DS1_MEMORY":f1 [
+id = 14
+];
+"FS0_VK_DESCRIPTOR_SET_MAPPING":f4 -> "FS0_VK_DESCRIPTOR_SLOT_INFO":f0 [
+id = 15
+];
+"FS0_VK_DESCRIPTOR_SLOT_INFO":f1 -> "DS1_MEMORY":f0 [
+id = 16
+];
+"FS0_VK_DESCRIPTOR_SLOT_INFO":f26 -> "DS1_MEMORY":f5 [
+id = 17
+];
+"FS1_VK_DESCRIPTOR_SET_MAPPING":f4 -> "FS1_VK_DESCRIPTOR_SLOT_INFO":f0 [
+id = 15
+];
+"FS1_VK_DESCRIPTOR_SLOT_INFO":f1 -> "DS2_MEMORY":f0 [
+id = 16
+];
+"FS1_VK_DESCRIPTOR_SLOT_INFO":f46 -> "DS2_MEMORY":f9 [
+id = 17
+];
+}
+
diff --git a/docs/xgl_ds.png b/docs/vk_ds.png
similarity index 100%
rename from docs/xgl_ds.png
rename to docs/vk_ds.png
Binary files differ
diff --git a/docs/vk_full_pipeline_ds.dot b/docs/vk_full_pipeline_ds.dot
new file mode 100644
index 0000000..6132b3a
--- /dev/null
+++ b/docs/vk_full_pipeline_ds.dot
@@ -0,0 +1,282 @@
+digraph g {
+graph [
+rankdir = "TB"
+];
+node [
+fontsize = "16"
+shape = "plaintext"
+];
+edge [
+];
+"_VK_GRAPHICS_PIPELINE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_GRAPHICS_PIPELINE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>VK_FLAGS</TD><TD>flags</TD></TR></TABLE>>
+];
+"_VK_PIPELINE_IA_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_IA_STATE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_IA_STATE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>VK_PRIMITIVE_TOPOLOGY</TD><TD>topology</TD></TR><TR><TD>bool32_t</TD><TD>disableVertexReuse</TD></TR><TR><TD>VK_PROVOKING_VERTEX_CONVENTION</TD><TD>provokingVertex</TD></TR><TR><TD>bool32_t</TD><TD>primitiveRestartEnable</TD></TR><TR><TD>uint32_t</TD><TD>primitiveRestartIndex</TD></TR></TABLE>>
+];
+"_VK_PIPELINE_TESS_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_TESS_STATE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_TESS_STATE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>uint32_t</TD><TD>patchControlPoints</TD></TR> <TR><TD>float</TD><TD>optimalTessFactor</TD></TR><TR><TD>float</TD><TD>fixedTessFactor</TD></TR></TABLE>>
+];
+"_VK_PIPELINE_RS_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_RS_STATE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_RS_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>bool32_t</TD><TD>depthClipEnable</TD></TR> <TR><TD>bool32_t</TD><TD>rasterizerDiscardEnable</TD></TR> <TR><TD>float</TD><TD>pointSize</TD></TR> </TABLE>>
+];
+"_VK_PIPELINE_CB_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_CB_STATE</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_CB_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>bool32_t</TD><TD>alphaToCoverageEnable</TD></TR> <TR><TD>bool32_t</TD><TD>dualSourceBlendEnable</TD></TR> <TR><TD>VK_LOGIC_OP</TD><TD>logicOp</TD></TR> <TR><TD>VK_PIPELINE_CB_ATTACHMENT_STATE</TD><TD>attachment</TD></TR> </TABLE>>
+];
+"_VK_PIPELINE_DB_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_DB_STATE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_DB_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_FORMAT</TD><TD>format</TD></TR> </TABLE>>
+];
+"VS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"TC_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"TE_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"GS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"FS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"VS_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=VS</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"TC_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=TC</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"TE_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=TE</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"GS_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=GS</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"FS_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=FS</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"_VK_GRAPHICS_PIPELINE_CREATE_INFO":f2 -> "_VK_PIPELINE_IA_STATE_CREATE_INFO" [
+id = 100
+];
+"_VK_PIPELINE_IA_STATE_CREATE_INFO":f2 -> "_VK_PIPELINE_TESS_STATE_CREATE_INFO" [
+id = 101
+];
+"_VK_PIPELINE_TESS_STATE_CREATE_INFO":f2 -> "_VK_PIPELINE_RS_STATE_CREATE_INFO" [
+id = 102
+];
+"_VK_PIPELINE_RS_STATE_CREATE_INFO":f2 -> "_VK_PIPELINE_CB_STATE_CREATE_INFO" [
+id = 103
+];
+"_VK_PIPELINE_CB_STATE_CREATE_INFO":f2 -> "_VK_PIPELINE_DB_STATE_CREATE_INFO" [
+id = 104
+];
+"_VK_PIPELINE_DB_STATE_CREATE_INFO":f2 -> "VS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 105
+];
+"VS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "TC_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 106
+];
+"TC_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "TE_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 107
+];
+"TE_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "GS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 108
+];
+"GS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "FS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 109
+];
+"VS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "VS_VK_PIPELINE_SHADER" [
+id = 110
+];
+"TE_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "TE_VK_PIPELINE_SHADER" [
+id = 111
+];
+"TC_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "TC_VK_PIPELINE_SHADER" [
+id = 112
+];
+"GS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "GS_VK_PIPELINE_SHADER" [
+id = 113
+];
+"FS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "FS_VK_PIPELINE_SHADER" [
+id = 114
+];
+subgraph clusterDSCreate1
+{
+label="vkCreateDescriptorSet()"
+"_VK_DESCRIPTOR_SET_CREATE_INFO1" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">uint32_t</TD><TD PORT="f4">slots=14</TD></TR></TABLE>>
+];
+}
+subgraph clusterDSCreate2
+{
+label="vkCreateDescriptorSet()"
+"_VK_DESCRIPTOR_SET_CREATE_INFO2" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">uint32_t</TD><TD PORT="f4">slots=20</TD></TR></TABLE>>
+];
+}
+subgraph clusterSamplerCreate
+{
+label="vkCreateSampler - multiple calls return unique VK_SAMPLER handles"
+"_VK_SAMPLER_CREATE_INFO_0" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f3">const void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_TEX_FILTER</TD><TD PORT="f6">magFilter</TD></TR><TR><TD PORT="f7">VK_TEX_FILTER</TD><TD PORT="f8">minFilter</TD></TR><TR><TD PORT="f9">VK_TEX_MIPMAP_MODE</TD><TD PORT="f10">mipMode</TD></TR><TR><TD PORT="f11">VK_TEX_ADDRESS</TD><TD PORT="f12">addressU</TD></TR><TR><TD PORT="f13">VK_TEX_ADDRESS</TD><TD PORT="f14">addressV</TD></TR><TR><TD PORT="f15">VK_TEX_ADDRESS</TD><TD PORT="f16">addressW</TD></TR><TR><TD PORT="f17">float</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">maxAnisotropy</TD></TR><TR><TD PORT="f21">VK_COMPARE_FUNC</TD><TD PORT="f22">compareFunc</TD></TR><TR><TD PORT="f23">float</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">float</TD><TD PORT="f26">maxLod</TD></TR><TR><TD PORT="f27">VK_BORDER_COLOR_TYPE</TD><TD PORT="f28">borderColorType</TD></TR></TABLE>>
+];
+"SAMPLER_ELLIPSES" [
+label = "..."
+];
+"_VK_SAMPLER_CREATE_INFO_19" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f3">const void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_TEX_FILTER</TD><TD PORT="f6">magFilter</TD></TR><TR><TD PORT="f7">VK_TEX_FILTER</TD><TD PORT="f8">minFilter</TD></TR><TR><TD PORT="f9">VK_TEX_MIPMAP_MODE</TD><TD PORT="f10">mipMode</TD></TR><TR><TD PORT="f11">VK_TEX_ADDRESS</TD><TD PORT="f12">addressU</TD></TR><TR><TD PORT="f13">VK_TEX_ADDRESS</TD><TD PORT="f14">addressV</TD></TR><TR><TD PORT="f15">VK_TEX_ADDRESS</TD><TD PORT="f16">addressW</TD></TR><TR><TD PORT="f17">float</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">maxAnisotropy</TD></TR><TR><TD PORT="f21">VK_COMPARE_FUNC</TD><TD PORT="f22">compareFunc</TD></TR><TR><TD PORT="f23">float</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">float</TD><TD PORT="f26">maxLod</TD></TR><TR><TD PORT="f27">VK_BORDER_COLOR_TYPE</TD><TD PORT="f28">borderColorType</TD></TR></TABLE>>
+];
+}
+subgraph clusterSamplerAttach
+{
+label="vkAttachSamplerDescriptors\npSamplers array of VK_SAMPLERS"
+"SAMPLER_ARRAY" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="pSamp">pSamplers</TD></TR><TR><TD PORT="f0">VK_SAMPLER0</TD></TR><TR><TD PORT="f1">VK_SAMPLER1</TD></TR><TR><TD PORT="f2">VK_SAMPLER2</TD></TR><TR><TD PORT="f3">VK_SAMPLER3</TD></TR><TR><TD PORT="f4">VK_SAMPLER4</TD></TR><TR><TD PORT="f5">VK_SAMPLER5</TD></TR><TR><TD PORT="f6">VK_SAMPLER6</TD></TR><TR><TD PORT="f7">VK_SAMPLER7</TD></TR><TR><TD PORT="f8">VK_SAMPLER8</TD></TR><TR><TD PORT="f9">VK_SAMPLER9</TD></TR><TR><TD PORT="f10">VK_SAMPLER10</TD></TR><TR><TD PORT="f11">VK_SAMPLER11</TD></TR><TR><TD PORT="f12">VK_SAMPLER12</TD></TR><TR><TD PORT="f13">VK_SAMPLER13</TD></TR><TR><TD PORT="f14">VK_SAMPLER14</TD></TR><TR><TD PORT="f15">VK_SAMPLER15</TD></TR><TR><TD PORT="f16">VK_SAMPLER16</TD></TR><TR><TD PORT="f17">VK_SAMPLER17</TD></TR><TR><TD PORT="f18">VK_SAMPLER18</TD></TR><TR><TD PORT="f19">VK_SAMPLER19</TD></TR></TABLE>>
+];
+}
+"DS1_MEMORY" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="ds1">DS1 Memory</TD></TR><TR><TD PORT="f0">slot0</TD></TR><TR><TD PORT="f1">slot1</TD></TR><TR><TD PORT="f2">slots2</TD></TR><TR><TD PORT="f3">slots3</TD></TR><TR><TD PORT="f4">slots4</TD></TR><TR><TD PORT="f5">slots5</TD></TR><TR><TD PORT="f6">slots6</TD></TR><TR><TD PORT="f7">slots7</TD></TR><TR><TD PORT="f8">slots8</TD></TR><TR><TD PORT="f9">slots9</TD></TR><TR><TD PORT="f10">slots10</TD></TR><TR><TD PORT="f11">slots11</TD></TR><TR><TD PORT="f12">slots12</TD></TR><TR><TD PORT="f13">slot13</TD></TR></TABLE>>
+];
+"DS2_MEMORY" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="ds2">DS2 Memory</TD></TR><TR><TD PORT="f0">slot0</TD></TR><TR><TD PORT="f1">slot1</TD></TR><TR><TD PORT="f2">slots2</TD></TR><TR><TD PORT="f3">slots3</TD></TR><TR><TD PORT="f4">slots4</TD></TR><TR><TD PORT="f5">slots5</TD></TR><TR><TD PORT="f6">slots6</TD></TR><TR><TD PORT="f7">slots7</TD></TR><TR><TD PORT="f8">slots8</TD></TR><TR><TD PORT="f9">slots9</TD></TR><TR><TD PORT="f10">slots10</TD></TR><TR><TD PORT="f11">slots11</TD></TR><TR><TD PORT="f12">slots12</TD></TR><TR><TD PORT="f13">slot13</TD></TR><TR><TD PORT="f14">slots14</TD></TR><TR><TD PORT="f15">slots15</TD></TR><TR><TD PORT="f16">slots16</TD></TR><TR><TD PORT="f17">slots17</TD></TR><TR><TD PORT="f18">slots18</TD></TR><TR><TD PORT="f19">slots19</TD></TR></TABLE>>
+];
+subgraph clusterMemoryView
+{
+label="vkAttachMemoryViewDescriptors - pMemViews array of VK_MEMORY_VIEW_ATTACH_INFO structs"
+"_VK_MEMORY_VIEW_ATTACH_INFO_3" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_GPU_MEMORY</TD><TD PORT="f6">mem</TD></TR><TR><TD PORT="f7">VK_GPU_SIZE</TD><TD PORT="f8">offset</TD></TR><TR><TD PORT="f9">VK_GPU_SIZE</TD><TD PORT="f10">range</TD></TR><TR><TD PORT="f11">VK_GPU_SIZE</TD><TD PORT="f12">stride</TD></TR><TR><TD PORT="f13">VK_FORMAT</TD><TD PORT="f14">format</TD></TR><TR><TD PORT="f15">VK_MEMORY_STATE</TD><TD PORT="f16">state</TD></TR></TABLE>>
+];
+"MEM_VIEW_ELLIPSES" [
+label = "..."
+];
+"_VK_MEMORY_VIEW_ATTACH_INFO_0" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_GPU_MEMORY</TD><TD PORT="f6">mem</TD></TR><TR><TD PORT="f7">VK_GPU_SIZE</TD><TD PORT="f8">offset</TD></TR><TR><TD PORT="f9">VK_GPU_SIZE</TD><TD PORT="f10">range</TD></TR><TR><TD PORT="f11">VK_GPU_SIZE</TD><TD PORT="f12">stride</TD></TR><TR><TD PORT="f13">VK_FORMAT</TD><TD PORT="f14">format</TD></TR><TR><TD PORT="f15">VK_MEMORY_STATE</TD><TD PORT="f16">state</TD></TR></TABLE>>
+];
+}
+subgraph clusterImageView
+{
+label="vkAttachImageViewDescriptors - pImageViews array of VK_IMAGE_VIEW_ATTACH_INFO structs"
+"_VK_IMAGE_VIEW_ATTACH_INFO_9" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_IMAGE_VIEW</TD><TD PORT="f6">view</TD></TR><TR><TD PORT="f7">VK_IMAGE_STATE</TD><TD PORT="f8">state</TD></TR></TABLE>>
+];
+"IMG_VIEW_ELLIPSES" [
+label = "..."
+];
+"_VK_IMAGE_VIEW_ATTACH_INFO_0" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">VK_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>VK_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">VK_IMAGE_VIEW</TD><TD PORT="f6">view</TD></TR><TR><TD PORT="f7">VK_IMAGE_STATE</TD><TD PORT="f8">state</TD></TR></TABLE>>
+];
+}
+"VS_VK_DESCRIPTOR_SET_MAPPING" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=2</TD></TR><TR><TD PORT="f3">const VK_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
+];
+"VS_VK_DESCRIPTOR_SLOT_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">VK_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR></TABLE>>
+];
+"FS0_VK_DESCRIPTOR_SET_MAPPING" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=6</TD></TR><TR><TD PORT="f3">const VK_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
+];
+"FS0_VK_DESCRIPTOR_SLOT_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">VK_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">VK_SLOT_SHADER_UNUSED</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">VK_SLOT_SHADER_UNUSED</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR><TR><TD PORT="f12">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f13">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f11">2</TD></TR><TR><TD PORT="f14">uint32_t</TD><TD PORT="f15">shaderEntityIndex</TD></TR><TR><TD PORT="f17">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f18">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f16">3</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">shaderEntityIndex</TD></TR><TR><TD PORT="f22">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f23">VK_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f21">4</TD></TR><TR><TD PORT="f24">uint32_t</TD><TD PORT="f25">shaderEntityIndex</TD></TR><TR><TD PORT="f27">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f28">VK_SLOT_SHADER_UAV</TD><TD ROWSPAN="2" PORT="f26">5</TD></TR><TR><TD PORT="f29">uint32_t</TD><TD PORT="f30">shaderEntityIndex</TD></TR></TABLE>>
+];
+"FS1_VK_DESCRIPTOR_SET_MAPPING" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=10</TD></TR><TR><TD PORT="f3">const VK_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
+];
+"FS1_VK_DESCRIPTOR_SLOT_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">VK_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR><TR><TD PORT="f12">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f13">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f11">2</TD></TR><TR><TD PORT="f14">uint32_t</TD><TD PORT="f15">shaderEntityIndex</TD></TR><TR><TD PORT="f17">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f18">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f16">3</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">shaderEntityIndex</TD></TR><TR><TD PORT="f22">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f23">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f21">4</TD></TR><TR><TD PORT="f24">uint32_t</TD><TD PORT="f25">shaderEntityIndex</TD></TR><TR><TD PORT="f27">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f28">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f26">5</TD></TR><TR><TD PORT="f29">uint32_t</TD><TD PORT="f30">shaderEntityIndex</TD></TR><TR><TD PORT="f32">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f33">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f31">6</TD></TR><TR><TD PORT="f34">uint32_t</TD><TD PORT="f35">shaderEntityIndex</TD></TR><TR><TD PORT="f37">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f38">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f36">7</TD></TR><TR><TD PORT="f39">uint32_t</TD><TD PORT="f40">shaderEntityIndex</TD></TR><TR><TD PORT="f42">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f43">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f41">8</TD></TR><TR><TD PORT="f44">uint32_t</TD><TD PORT="f45">shaderEntityIndex</TD></TR><TR><TD PORT="f47">VK_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f48">VK_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f46">9</TD></TR><TR><TD PORT="f49">uint32_t</TD><TD PORT="f50">shaderEntityIndex</TD></TR></TABLE>>
+];
+/*
+"_VK_DESCRIPTOR_SET_CREATE_INFO1":f2 -> "_VK_DESCRIPTOR_SET_CREATE_INFO2":f0 [
+id = 0
+];
+*/
+"_VK_DESCRIPTOR_SET_CREATE_INFO1":f4 -> "DS1_MEMORY":ds1 [
+id = 1
+];
+"_VK_DESCRIPTOR_SET_CREATE_INFO2":f4 -> "DS2_MEMORY":ds2 [
+id = 2
+];
+/*
+"_VK_SAMPLER_CREATE_INFO_0":f4 -> "_ELLIPSE0" [
+id = 3
+];
+"_ELLIPSE0" -> "_VK_SAMPLER_CREATE_INFO_19":f0 [
+id = 3
+];
+*/
+"_VK_SAMPLER_CREATE_INFO_0" -> "SAMPLER_ARRAY":f0 [
+id = 4
+];
+"_VK_SAMPLER_CREATE_INFO_19" -> "SAMPLER_ARRAY":f19 [
+id = 5
+];
+"SAMPLER_ARRAY":f0 -> "DS2_MEMORY":f0 [
+id = 6
+];
+"SAMPLER_ARRAY":f19 -> "DS2_MEMORY":f19 [
+id = 7
+];
+/*
+"_VK_MEMORY_VIEW_ATTACH_INFO_0":f4 -> "_ELLIPSE1" [
+id = 6
+];
+"_ELLIPSE1" -> "_VK_MEMORY_VIEW_ATTACH_INFO_3":f0 [
+id = 7
+];
+"_VK_IMAGE_VIEW_ATTACH_INFO_0":f4 -> "_ELLIPSE2" [
+id = 8
+];
+"_ELLIPSE2" -> "_VK_IMAGE_VIEW_ATTACH_INFO_9":f0 [
+id = 9
+];
+*/
+"_VK_MEMORY_VIEW_ATTACH_INFO_0" -> "DS1_MEMORY":f0 [
+id = 10
+];
+"_VK_MEMORY_VIEW_ATTACH_INFO_3" -> "DS1_MEMORY":f3 [
+id = 11
+];
+"_VK_IMAGE_VIEW_ATTACH_INFO_0" -> "DS1_MEMORY":f4 [
+id = 10
+];
+"_VK_IMAGE_VIEW_ATTACH_INFO_9" -> "DS1_MEMORY":f13 [
+id = 11
+];
+"VS_VK_DESCRIPTOR_SET_MAPPING":f4 -> "VS_VK_DESCRIPTOR_SLOT_INFO":f0 [
+id = 12
+];
+"VS_VK_DESCRIPTOR_SLOT_INFO":f1 -> "DS1_MEMORY":f0 [
+id = 13
+];
+"VS_VK_DESCRIPTOR_SLOT_INFO":f6 -> "DS1_MEMORY":f1 [
+id = 14
+];
+"FS0_VK_DESCRIPTOR_SET_MAPPING":f4 -> "FS0_VK_DESCRIPTOR_SLOT_INFO":f0 [
+id = 15
+];
+"FS0_VK_DESCRIPTOR_SLOT_INFO":f1 -> "DS1_MEMORY":f0 [
+id = 16
+];
+"FS0_VK_DESCRIPTOR_SLOT_INFO":f26 -> "DS1_MEMORY":f5 [
+id = 17
+];
+"FS1_VK_DESCRIPTOR_SET_MAPPING":f4 -> "FS1_VK_DESCRIPTOR_SLOT_INFO":f0 [
+id = 15
+];
+"FS1_VK_DESCRIPTOR_SLOT_INFO":f1 -> "DS2_MEMORY":f0 [
+id = 16
+];
+"FS1_VK_DESCRIPTOR_SLOT_INFO":f46 -> "DS2_MEMORY":f9 [
+id = 17
+];
+"FS_VK_PIPELINE_SHADER":f6 -> "FS0_VK_DESCRIPTOR_SET_MAPPING" [
+id = 18
+];
+"FS_VK_PIPELINE_SHADER":f6 -> "FS1_VK_DESCRIPTOR_SET_MAPPING" [
+id = 19
+];
+"VS_VK_PIPELINE_SHADER":f6 -> "VS_VK_DESCRIPTOR_SET_MAPPING" [
+id = 20
+];
+}
+
diff --git a/docs/xgl_full_pipeline_ds.png b/docs/vk_full_pipeline_ds.png
similarity index 100%
rename from docs/xgl_full_pipeline_ds.png
rename to docs/vk_full_pipeline_ds.png
Binary files differ
diff --git a/docs/vk_graphics_pipeline.dot b/docs/vk_graphics_pipeline.dot
new file mode 100644
index 0000000..b630455
--- /dev/null
+++ b/docs/vk_graphics_pipeline.dot
@@ -0,0 +1,105 @@
+digraph g {
+graph [
+rankdir = "TB"
+];
+node [
+fontsize = "16"
+shape = "plaintext"
+];
+edge [
+];
+"_VK_GRAPHICS_PIPELINE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_GRAPHICS_PIPELINE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>VK_FLAGS</TD><TD>flags</TD></TR></TABLE>>
+];
+"_VK_PIPELINE_IA_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_IA_STATE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_IA_STATE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>VK_PRIMITIVE_TOPOLOGY</TD><TD>topology</TD></TR><TR><TD>bool32_t</TD><TD>disableVertexReuse</TD></TR><TR><TD>VK_PROVOKING_VERTEX_CONVENTION</TD><TD>provokingVertex</TD></TR><TR><TD>bool32_t</TD><TD>primitiveRestartEnable</TD></TR><TR><TD>uint32_t</TD><TD>primitiveRestartIndex</TD></TR></TABLE>>
+];
+"_VK_PIPELINE_TESS_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_TESS_STATE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_TESS_STATE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>uint32_t</TD><TD>patchControlPoints</TD></TR> <TR><TD>float</TD><TD>optimalTessFactor</TD></TR><TR><TD>float</TD><TD>fixedTessFactor</TD></TR></TABLE>>
+];
+"_VK_PIPELINE_RS_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_RS_STATE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_RS_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>bool32_t</TD><TD>depthClipEnable</TD></TR> <TR><TD>bool32_t</TD><TD>rasterizerDiscardEnable</TD></TR> <TR><TD>float</TD><TD>pointSize</TD></TR> </TABLE>>
+];
+"_VK_PIPELINE_CB_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_CB_STATE</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_CB_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>bool32_t</TD><TD>alphaToCoverageEnable</TD></TR> <TR><TD>bool32_t</TD><TD>dualSourceBlendEnable</TD></TR> <TR><TD>VK_LOGIC_OP</TD><TD>logicOp</TD></TR> <TR><TD>VK_PIPELINE_CB_ATTACHMENT_STATE</TD><TD>attachment</TD></TR> </TABLE>>
+];
+"_VK_PIPELINE_DB_STATE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_DB_STATE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_DB_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_FORMAT</TD><TD>format</TD></TR> </TABLE>>
+];
+"VS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"TC_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"TE_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"GS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"FS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>VK_STRUCTURE_TYPE</TD><TD>sType=<BR/>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR> <TR><TD>VK_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
+];
+"VS_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=VS</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"TC_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=TC</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"TE_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=TE</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"GS_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=GS</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"FS_VK_PIPELINE_SHADER" [
+label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">VK_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">VK_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=FS</TD></TR><TR><TD PORT="f3">VK_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">VK_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const VK_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">VK_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
+];
+"_VK_GRAPHICS_PIPELINE_CREATE_INFO":f2 -> "_VK_PIPELINE_IA_STATE_CREATE_INFO" [
+id = 0
+];
+"_VK_PIPELINE_IA_STATE_CREATE_INFO":f2 -> "_VK_PIPELINE_TESS_STATE_CREATE_INFO" [
+id = 1
+];
+"_VK_PIPELINE_TESS_STATE_CREATE_INFO":f2 -> "_VK_PIPELINE_RS_STATE_CREATE_INFO" [
+id = 2
+];
+"_VK_PIPELINE_RS_STATE_CREATE_INFO":f2 -> "_VK_PIPELINE_CB_STATE_CREATE_INFO" [
+id = 3
+];
+"_VK_PIPELINE_CB_STATE_CREATE_INFO":f2 -> "_VK_PIPELINE_DB_STATE_CREATE_INFO" [
+id = 4
+];
+"_VK_PIPELINE_DB_STATE_CREATE_INFO":f2 -> "VS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 5
+];
+"VS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "TC_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 6
+];
+"TC_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "TE_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 7
+];
+"TE_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "GS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 8
+];
+"GS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "FS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO" [
+id = 9
+];
+"VS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "VS_VK_PIPELINE_SHADER" [
+id = 10
+];
+"TE_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "TE_VK_PIPELINE_SHADER" [
+id = 11
+];
+"TC_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "TC_VK_PIPELINE_SHADER" [
+id = 12
+];
+"GS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "GS_VK_PIPELINE_SHADER" [
+id = 13
+];
+"FS_VK_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "FS_VK_PIPELINE_SHADER" [
+id = 14
+];
+}
+
diff --git a/docs/xgl_graphics_pipeline.png b/docs/vk_graphics_pipeline.png
similarity index 100%
rename from docs/xgl_graphics_pipeline.png
rename to docs/vk_graphics_pipeline.png
Binary files differ
diff --git a/docs/xgl_ds.dot b/docs/xgl_ds.dot
deleted file mode 100644
index e7496de..0000000
--- a/docs/xgl_ds.dot
+++ /dev/null
@@ -1,180 +0,0 @@
-digraph g {
-graph [
-rankdir = "LR"
-];
-node [
-fontsize = "16"
-shape = "plaintext"
-];
-edge [
-];
-subgraph clusterDSCreate1
-{
-label="xglCreateDescriptorSet()"
-"_XGL_DESCRIPTOR_SET_CREATE_INFO1" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">uint32_t</TD><TD PORT="f4">slots=14</TD></TR></TABLE>>
-];
-}
-subgraph clusterDSCreate2
-{
-label="xglCreateDescriptorSet()"
-"_XGL_DESCRIPTOR_SET_CREATE_INFO2" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">uint32_t</TD><TD PORT="f4">slots=20</TD></TR></TABLE>>
-];
-}
-subgraph clusterSamplerCreate
-{
-label="xglCreateSampler - multiple calls return unique XGL_SAMPLER handles"
-"_XGL_SAMPLER_CREATE_INFO_0" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f3">const void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_TEX_FILTER</TD><TD PORT="f6">magFilter</TD></TR><TR><TD PORT="f7">XGL_TEX_FILTER</TD><TD PORT="f8">minFilter</TD></TR><TR><TD PORT="f9">XGL_TEX_MIPMAP_MODE</TD><TD PORT="f10">mipMode</TD></TR><TR><TD PORT="f11">XGL_TEX_ADDRESS</TD><TD PORT="f12">addressU</TD></TR><TR><TD PORT="f13">XGL_TEX_ADDRESS</TD><TD PORT="f14">addressV</TD></TR><TR><TD PORT="f15">XGL_TEX_ADDRESS</TD><TD PORT="f16">addressW</TD></TR><TR><TD PORT="f17">float</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">maxAnisotropy</TD></TR><TR><TD PORT="f21">XGL_COMPARE_FUNC</TD><TD PORT="f22">compareFunc</TD></TR><TR><TD PORT="f23">float</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">float</TD><TD PORT="f26">maxLod</TD></TR><TR><TD PORT="f27">XGL_BORDER_COLOR_TYPE</TD><TD PORT="f28">borderColorType</TD></TR></TABLE>>
-];
-"SAMPLER_ELLIPSES" [
-label = "..."
-];
-"_XGL_SAMPLER_CREATE_INFO_19" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f3">const void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_TEX_FILTER</TD><TD PORT="f6">magFilter</TD></TR><TR><TD PORT="f7">XGL_TEX_FILTER</TD><TD PORT="f8">minFilter</TD></TR><TR><TD PORT="f9">XGL_TEX_MIPMAP_MODE</TD><TD PORT="f10">mipMode</TD></TR><TR><TD PORT="f11">XGL_TEX_ADDRESS</TD><TD PORT="f12">addressU</TD></TR><TR><TD PORT="f13">XGL_TEX_ADDRESS</TD><TD PORT="f14">addressV</TD></TR><TR><TD PORT="f15">XGL_TEX_ADDRESS</TD><TD PORT="f16">addressW</TD></TR><TR><TD PORT="f17">float</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">maxAnisotropy</TD></TR><TR><TD PORT="f21">XGL_COMPARE_FUNC</TD><TD PORT="f22">compareFunc</TD></TR><TR><TD PORT="f23">float</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">float</TD><TD PORT="f26">maxLod</TD></TR><TR><TD PORT="f27">XGL_BORDER_COLOR_TYPE</TD><TD PORT="f28">borderColorType</TD></TR></TABLE>>
-];
-}
-subgraph clusterSamplerAttach
-{
-label="xglAttachSamplerDescriptors\npSamplers array of XGL_SAMPLERS"
-"SAMPLER_ARRAY" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="pSamp">pSamplers</TD></TR><TR><TD PORT="f0">XGL_SAMPLER0</TD></TR><TR><TD PORT="f1">XGL_SAMPLER1</TD></TR><TR><TD PORT="f2">XGL_SAMPLER2</TD></TR><TR><TD PORT="f3">XGL_SAMPLER3</TD></TR><TR><TD PORT="f4">XGL_SAMPLER4</TD></TR><TR><TD PORT="f5">XGL_SAMPLER5</TD></TR><TR><TD PORT="f6">XGL_SAMPLER6</TD></TR><TR><TD PORT="f7">XGL_SAMPLER7</TD></TR><TR><TD PORT="f8">XGL_SAMPLER8</TD></TR><TR><TD PORT="f9">XGL_SAMPLER9</TD></TR><TR><TD PORT="f10">XGL_SAMPLER10</TD></TR><TR><TD PORT="f11">XGL_SAMPLER11</TD></TR><TR><TD PORT="f12">XGL_SAMPLER12</TD></TR><TR><TD PORT="f13">XGL_SAMPLER13</TD></TR><TR><TD PORT="f14">XGL_SAMPLER14</TD></TR><TR><TD PORT="f15">XGL_SAMPLER15</TD></TR><TR><TD PORT="f16">XGL_SAMPLER16</TD></TR><TR><TD PORT="f17">XGL_SAMPLER17</TD></TR><TR><TD PORT="f18">XGL_SAMPLER18</TD></TR><TR><TD PORT="f19">XGL_SAMPLER19</TD></TR></TABLE>>
-];
-}
-"DS1_MEMORY" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="ds1">DS1 Memory</TD></TR><TR><TD PORT="f0">slot0</TD></TR><TR><TD PORT="f1">slot1</TD></TR><TR><TD PORT="f2">slots2</TD></TR><TR><TD PORT="f3">slots3</TD></TR><TR><TD PORT="f4">slots4</TD></TR><TR><TD PORT="f5">slots5</TD></TR><TR><TD PORT="f6">slots6</TD></TR><TR><TD PORT="f7">slots7</TD></TR><TR><TD PORT="f8">slots8</TD></TR><TR><TD PORT="f9">slots9</TD></TR><TR><TD PORT="f10">slots10</TD></TR><TR><TD PORT="f11">slots11</TD></TR><TR><TD PORT="f12">slots12</TD></TR><TR><TD PORT="f13">slot13</TD></TR></TABLE>>
-];
-"DS2_MEMORY" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="ds2">DS2 Memory</TD></TR><TR><TD PORT="f0">slot0</TD></TR><TR><TD PORT="f1">slot1</TD></TR><TR><TD PORT="f2">slots2</TD></TR><TR><TD PORT="f3">slots3</TD></TR><TR><TD PORT="f4">slots4</TD></TR><TR><TD PORT="f5">slots5</TD></TR><TR><TD PORT="f6">slots6</TD></TR><TR><TD PORT="f7">slots7</TD></TR><TR><TD PORT="f8">slots8</TD></TR><TR><TD PORT="f9">slots9</TD></TR><TR><TD PORT="f10">slots10</TD></TR><TR><TD PORT="f11">slots11</TD></TR><TR><TD PORT="f12">slots12</TD></TR><TR><TD PORT="f13">slot13</TD></TR><TR><TD PORT="f14">slots14</TD></TR><TR><TD PORT="f15">slots15</TD></TR><TR><TD PORT="f16">slots16</TD></TR><TR><TD PORT="f17">slots17</TD></TR><TR><TD PORT="f18">slots18</TD></TR><TR><TD PORT="f19">slots19</TD></TR></TABLE>>
-];
-subgraph clusterMemoryView
-{
-label="xglAttachMemoryViewDescriptors - pMemViews array of XGL_MEMORY_VIEW_ATTACH_INFO structs"
-"_XGL_MEMORY_VIEW_ATTACH_INFO_3" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_GPU_MEMORY</TD><TD PORT="f6">mem</TD></TR><TR><TD PORT="f7">XGL_GPU_SIZE</TD><TD PORT="f8">offset</TD></TR><TR><TD PORT="f9">XGL_GPU_SIZE</TD><TD PORT="f10">range</TD></TR><TR><TD PORT="f11">XGL_GPU_SIZE</TD><TD PORT="f12">stride</TD></TR><TR><TD PORT="f13">XGL_FORMAT</TD><TD PORT="f14">format</TD></TR><TR><TD PORT="f15">XGL_MEMORY_STATE</TD><TD PORT="f16">state</TD></TR></TABLE>>
-];
-"MEM_VIEW_ELLIPSES" [
-label = "..."
-];
-"_XGL_MEMORY_VIEW_ATTACH_INFO_0" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_GPU_MEMORY</TD><TD PORT="f6">mem</TD></TR><TR><TD PORT="f7">XGL_GPU_SIZE</TD><TD PORT="f8">offset</TD></TR><TR><TD PORT="f9">XGL_GPU_SIZE</TD><TD PORT="f10">range</TD></TR><TR><TD PORT="f11">XGL_GPU_SIZE</TD><TD PORT="f12">stride</TD></TR><TR><TD PORT="f13">XGL_FORMAT</TD><TD PORT="f14">format</TD></TR><TR><TD PORT="f15">XGL_MEMORY_STATE</TD><TD PORT="f16">state</TD></TR></TABLE>>
-];
-}
-subgraph clusterImageView
-{
-label="xglAttachImageViewDescriptors - pImageViews array of XGL_IMAGE_VIEW_ATTACH_INFO structs"
-"_XGL_IMAGE_VIEW_ATTACH_INFO_9" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_IMAGE_VIEW</TD><TD PORT="f6">view</TD></TR><TR><TD PORT="f7">XGL_IMAGE_STATE</TD><TD PORT="f8">state</TD></TR></TABLE>>
-];
-"IMG_VIEW_ELLIPSES" [
-label = "..."
-];
-"_XGL_IMAGE_VIEW_ATTACH_INFO_0" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_IMAGE_VIEW</TD><TD PORT="f6">view</TD></TR><TR><TD PORT="f7">XGL_IMAGE_STATE</TD><TD PORT="f8">state</TD></TR></TABLE>>
-];
-}
-"VS_XGL_DESCRIPTOR_SET_MAPPING" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=2</TD></TR><TR><TD PORT="f3">const XGL_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
-];
-"VS_XGL_DESCRIPTOR_SLOT_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">XGL_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR></TABLE>>
-];
-"FS0_XGL_DESCRIPTOR_SET_MAPPING" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=6</TD></TR><TR><TD PORT="f3">const XGL_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
-];
-"FS0_XGL_DESCRIPTOR_SLOT_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">XGL_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">XGL_SLOT_SHADER_UNUSED</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">XGL_SLOT_SHADER_UNUSED</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR><TR><TD PORT="f12">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f13">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f11">2</TD></TR><TR><TD PORT="f14">uint32_t</TD><TD PORT="f15">shaderEntityIndex</TD></TR><TR><TD PORT="f17">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f18">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f16">3</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">shaderEntityIndex</TD></TR><TR><TD PORT="f22">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f23">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f21">4</TD></TR><TR><TD PORT="f24">uint32_t</TD><TD PORT="f25">shaderEntityIndex</TD></TR><TR><TD PORT="f27">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f28">XGL_SLOT_SHADER_UAV</TD><TD ROWSPAN="2" PORT="f26">5</TD></TR><TR><TD PORT="f29">uint32_t</TD><TD PORT="f30">shaderEntityIndex</TD></TR></TABLE>>
-];
-"FS1_XGL_DESCRIPTOR_SET_MAPPING" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=10</TD></TR><TR><TD PORT="f3">const XGL_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
-];
-"FS1_XGL_DESCRIPTOR_SLOT_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">XGL_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR><TR><TD PORT="f12">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f13">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f11">2</TD></TR><TR><TD PORT="f14">uint32_t</TD><TD PORT="f15">shaderEntityIndex</TD></TR><TR><TD PORT="f17">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f18">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f16">3</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">shaderEntityIndex</TD></TR><TR><TD PORT="f22">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f23">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f21">4</TD></TR><TR><TD PORT="f24">uint32_t</TD><TD PORT="f25">shaderEntityIndex</TD></TR><TR><TD PORT="f27">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f28">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f26">5</TD></TR><TR><TD PORT="f29">uint32_t</TD><TD PORT="f30">shaderEntityIndex</TD></TR><TR><TD PORT="f32">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f33">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f31">6</TD></TR><TR><TD PORT="f34">uint32_t</TD><TD PORT="f35">shaderEntityIndex</TD></TR><TR><TD PORT="f37">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f38">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f36">7</TD></TR><TR><TD PORT="f39">uint32_t</TD><TD PORT="f40">shaderEntityIndex</TD></TR><TR><TD PORT="f42">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f43">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f41">8</TD></TR><TR><TD PORT="f44">uint32_t</TD><TD PORT="f45">shaderEntityIndex</TD></TR><TR><TD PORT="f47">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f48">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f46">9</TD></TR><TR><TD PORT="f49">uint32_t</TD><TD PORT="f50">shaderEntityIndex</TD></TR></TABLE>>
-];
-/*
-"_XGL_DESCRIPTOR_SET_CREATE_INFO1":f2 -> "_XGL_DESCRIPTOR_SET_CREATE_INFO2":f0 [
-id = 0
-];
-*/
-"_XGL_DESCRIPTOR_SET_CREATE_INFO1":f4 -> "DS1_MEMORY":ds1 [
-id = 1
-];
-"_XGL_DESCRIPTOR_SET_CREATE_INFO2":f4 -> "DS2_MEMORY":ds2 [
-id = 2
-];
-/*
-"_XGL_SAMPLER_CREATE_INFO_0":f4 -> "_ELLIPSE0" [
-id = 3
-];
-"_ELLIPSE0" -> "_XGL_SAMPLER_CREATE_INFO_19":f0 [
-id = 3
-];
-*/
-"_XGL_SAMPLER_CREATE_INFO_0" -> "SAMPLER_ARRAY":f0 [
-id = 4
-];
-"_XGL_SAMPLER_CREATE_INFO_19" -> "SAMPLER_ARRAY":f19 [
-id = 5
-];
-"SAMPLER_ARRAY":f0 -> "DS2_MEMORY":f0 [
-id = 6
-];
-"SAMPLER_ARRAY":f19 -> "DS2_MEMORY":f19 [
-id = 7
-];
-/*
-"_XGL_MEMORY_VIEW_ATTACH_INFO_0":f4 -> "_ELLIPSE1" [
-id = 6
-];
-"_ELLIPSE1" -> "_XGL_MEMORY_VIEW_ATTACH_INFO_3":f0 [
-id = 7
-];
-"_XGL_IMAGE_VIEW_ATTACH_INFO_0":f4 -> "_ELLIPSE2" [
-id = 8
-];
-"_ELLIPSE2" -> "_XGL_IMAGE_VIEW_ATTACH_INFO_9":f0 [
-id = 9
-];
-*/
-"_XGL_MEMORY_VIEW_ATTACH_INFO_0" -> "DS1_MEMORY":f0 [
-id = 10
-];
-"_XGL_MEMORY_VIEW_ATTACH_INFO_3" -> "DS1_MEMORY":f3 [
-id = 11
-];
-"_XGL_IMAGE_VIEW_ATTACH_INFO_0" -> "DS1_MEMORY":f4 [
-id = 10
-];
-"_XGL_IMAGE_VIEW_ATTACH_INFO_9" -> "DS1_MEMORY":f13 [
-id = 11
-];
-"VS_XGL_DESCRIPTOR_SET_MAPPING":f4 -> "VS_XGL_DESCRIPTOR_SLOT_INFO":f0 [
-id = 12
-];
-"VS_XGL_DESCRIPTOR_SLOT_INFO":f1 -> "DS1_MEMORY":f0 [
-id = 13
-];
-"VS_XGL_DESCRIPTOR_SLOT_INFO":f6 -> "DS1_MEMORY":f1 [
-id = 14
-];
-"FS0_XGL_DESCRIPTOR_SET_MAPPING":f4 -> "FS0_XGL_DESCRIPTOR_SLOT_INFO":f0 [
-id = 15
-];
-"FS0_XGL_DESCRIPTOR_SLOT_INFO":f1 -> "DS1_MEMORY":f0 [
-id = 16
-];
-"FS0_XGL_DESCRIPTOR_SLOT_INFO":f26 -> "DS1_MEMORY":f5 [
-id = 17
-];
-"FS1_XGL_DESCRIPTOR_SET_MAPPING":f4 -> "FS1_XGL_DESCRIPTOR_SLOT_INFO":f0 [
-id = 15
-];
-"FS1_XGL_DESCRIPTOR_SLOT_INFO":f1 -> "DS2_MEMORY":f0 [
-id = 16
-];
-"FS1_XGL_DESCRIPTOR_SLOT_INFO":f46 -> "DS2_MEMORY":f9 [
-id = 17
-];
-}
-
diff --git a/docs/xgl_full_pipeline_ds.dot b/docs/xgl_full_pipeline_ds.dot
deleted file mode 100644
index 53ae866..0000000
--- a/docs/xgl_full_pipeline_ds.dot
+++ /dev/null
@@ -1,282 +0,0 @@
-digraph g {
-graph [
-rankdir = "TB"
-];
-node [
-fontsize = "16"
-shape = "plaintext"
-];
-edge [
-];
-"_XGL_GRAPHICS_PIPELINE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_GRAPHICS_PIPELINE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>XGL_FLAGS</TD><TD>flags</TD></TR></TABLE>>
-];
-"_XGL_PIPELINE_IA_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_IA_STATE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_IA_STATE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>XGL_PRIMITIVE_TOPOLOGY</TD><TD>topology</TD></TR><TR><TD>bool32_t</TD><TD>disableVertexReuse</TD></TR><TR><TD>XGL_PROVOKING_VERTEX_CONVENTION</TD><TD>provokingVertex</TD></TR><TR><TD>bool32_t</TD><TD>primitiveRestartEnable</TD></TR><TR><TD>uint32_t</TD><TD>primitiveRestartIndex</TD></TR></TABLE>>
-];
-"_XGL_PIPELINE_TESS_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_TESS_STATE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_TESS_STATE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>uint32_t</TD><TD>patchControlPoints</TD></TR> <TR><TD>float</TD><TD>optimalTessFactor</TD></TR><TR><TD>float</TD><TD>fixedTessFactor</TD></TR></TABLE>>
-];
-"_XGL_PIPELINE_RS_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_RS_STATE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_RS_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>bool32_t</TD><TD>depthClipEnable</TD></TR> <TR><TD>bool32_t</TD><TD>rasterizerDiscardEnable</TD></TR> <TR><TD>float</TD><TD>pointSize</TD></TR> </TABLE>>
-];
-"_XGL_PIPELINE_CB_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_CB_STATE</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_CB_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>bool32_t</TD><TD>alphaToCoverageEnable</TD></TR> <TR><TD>bool32_t</TD><TD>dualSourceBlendEnable</TD></TR> <TR><TD>XGL_LOGIC_OP</TD><TD>logicOp</TD></TR> <TR><TD>XGL_PIPELINE_CB_ATTACHMENT_STATE</TD><TD>attachment</TD></TR> </TABLE>>
-];
-"_XGL_PIPELINE_DB_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_DB_STATE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_DB_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_FORMAT</TD><TD>format</TD></TR> </TABLE>>
-];
-"VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"FS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"VS_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=VS</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"TC_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=TC</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"TE_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=TE</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"GS_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=GS</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"FS_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=FS</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"_XGL_GRAPHICS_PIPELINE_CREATE_INFO":f2 -> "_XGL_PIPELINE_IA_STATE_CREATE_INFO" [
-id = 100
-];
-"_XGL_PIPELINE_IA_STATE_CREATE_INFO":f2 -> "_XGL_PIPELINE_TESS_STATE_CREATE_INFO" [
-id = 101
-];
-"_XGL_PIPELINE_TESS_STATE_CREATE_INFO":f2 -> "_XGL_PIPELINE_RS_STATE_CREATE_INFO" [
-id = 102
-];
-"_XGL_PIPELINE_RS_STATE_CREATE_INFO":f2 -> "_XGL_PIPELINE_CB_STATE_CREATE_INFO" [
-id = 103
-];
-"_XGL_PIPELINE_CB_STATE_CREATE_INFO":f2 -> "_XGL_PIPELINE_DB_STATE_CREATE_INFO" [
-id = 104
-];
-"_XGL_PIPELINE_DB_STATE_CREATE_INFO":f2 -> "VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 105
-];
-"VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 106
-];
-"TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 107
-];
-"TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 108
-];
-"GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "FS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 109
-];
-"VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "VS_XGL_PIPELINE_SHADER" [
-id = 110
-];
-"TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "TE_XGL_PIPELINE_SHADER" [
-id = 111
-];
-"TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "TC_XGL_PIPELINE_SHADER" [
-id = 112
-];
-"GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "GS_XGL_PIPELINE_SHADER" [
-id = 113
-];
-"FS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "FS_XGL_PIPELINE_SHADER" [
-id = 114
-];
-subgraph clusterDSCreate1
-{
-label="xglCreateDescriptorSet()"
-"_XGL_DESCRIPTOR_SET_CREATE_INFO1" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">uint32_t</TD><TD PORT="f4">slots=14</TD></TR></TABLE>>
-];
-}
-subgraph clusterDSCreate2
-{
-label="xglCreateDescriptorSet()"
-"_XGL_DESCRIPTOR_SET_CREATE_INFO2" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">uint32_t</TD><TD PORT="f4">slots=20</TD></TR></TABLE>>
-];
-}
-subgraph clusterSamplerCreate
-{
-label="xglCreateSampler - multiple calls return unique XGL_SAMPLER handles"
-"_XGL_SAMPLER_CREATE_INFO_0" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f3">const void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_TEX_FILTER</TD><TD PORT="f6">magFilter</TD></TR><TR><TD PORT="f7">XGL_TEX_FILTER</TD><TD PORT="f8">minFilter</TD></TR><TR><TD PORT="f9">XGL_TEX_MIPMAP_MODE</TD><TD PORT="f10">mipMode</TD></TR><TR><TD PORT="f11">XGL_TEX_ADDRESS</TD><TD PORT="f12">addressU</TD></TR><TR><TD PORT="f13">XGL_TEX_ADDRESS</TD><TD PORT="f14">addressV</TD></TR><TR><TD PORT="f15">XGL_TEX_ADDRESS</TD><TD PORT="f16">addressW</TD></TR><TR><TD PORT="f17">float</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">maxAnisotropy</TD></TR><TR><TD PORT="f21">XGL_COMPARE_FUNC</TD><TD PORT="f22">compareFunc</TD></TR><TR><TD PORT="f23">float</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">float</TD><TD PORT="f26">maxLod</TD></TR><TR><TD PORT="f27">XGL_BORDER_COLOR_TYPE</TD><TD PORT="f28">borderColorType</TD></TR></TABLE>>
-];
-"SAMPLER_ELLIPSES" [
-label = "..."
-];
-"_XGL_SAMPLER_CREATE_INFO_19" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</TD></TR><TR><TD PORT="f3">const void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_TEX_FILTER</TD><TD PORT="f6">magFilter</TD></TR><TR><TD PORT="f7">XGL_TEX_FILTER</TD><TD PORT="f8">minFilter</TD></TR><TR><TD PORT="f9">XGL_TEX_MIPMAP_MODE</TD><TD PORT="f10">mipMode</TD></TR><TR><TD PORT="f11">XGL_TEX_ADDRESS</TD><TD PORT="f12">addressU</TD></TR><TR><TD PORT="f13">XGL_TEX_ADDRESS</TD><TD PORT="f14">addressV</TD></TR><TR><TD PORT="f15">XGL_TEX_ADDRESS</TD><TD PORT="f16">addressW</TD></TR><TR><TD PORT="f17">float</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">maxAnisotropy</TD></TR><TR><TD PORT="f21">XGL_COMPARE_FUNC</TD><TD PORT="f22">compareFunc</TD></TR><TR><TD PORT="f23">float</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">float</TD><TD PORT="f26">maxLod</TD></TR><TR><TD PORT="f27">XGL_BORDER_COLOR_TYPE</TD><TD PORT="f28">borderColorType</TD></TR></TABLE>>
-];
-}
-subgraph clusterSamplerAttach
-{
-label="xglAttachSamplerDescriptors\npSamplers array of XGL_SAMPLERS"
-"SAMPLER_ARRAY" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="pSamp">pSamplers</TD></TR><TR><TD PORT="f0">XGL_SAMPLER0</TD></TR><TR><TD PORT="f1">XGL_SAMPLER1</TD></TR><TR><TD PORT="f2">XGL_SAMPLER2</TD></TR><TR><TD PORT="f3">XGL_SAMPLER3</TD></TR><TR><TD PORT="f4">XGL_SAMPLER4</TD></TR><TR><TD PORT="f5">XGL_SAMPLER5</TD></TR><TR><TD PORT="f6">XGL_SAMPLER6</TD></TR><TR><TD PORT="f7">XGL_SAMPLER7</TD></TR><TR><TD PORT="f8">XGL_SAMPLER8</TD></TR><TR><TD PORT="f9">XGL_SAMPLER9</TD></TR><TR><TD PORT="f10">XGL_SAMPLER10</TD></TR><TR><TD PORT="f11">XGL_SAMPLER11</TD></TR><TR><TD PORT="f12">XGL_SAMPLER12</TD></TR><TR><TD PORT="f13">XGL_SAMPLER13</TD></TR><TR><TD PORT="f14">XGL_SAMPLER14</TD></TR><TR><TD PORT="f15">XGL_SAMPLER15</TD></TR><TR><TD PORT="f16">XGL_SAMPLER16</TD></TR><TR><TD PORT="f17">XGL_SAMPLER17</TD></TR><TR><TD PORT="f18">XGL_SAMPLER18</TD></TR><TR><TD PORT="f19">XGL_SAMPLER19</TD></TR></TABLE>>
-];
-}
-"DS1_MEMORY" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="ds1">DS1 Memory</TD></TR><TR><TD PORT="f0">slot0</TD></TR><TR><TD PORT="f1">slot1</TD></TR><TR><TD PORT="f2">slots2</TD></TR><TR><TD PORT="f3">slots3</TD></TR><TR><TD PORT="f4">slots4</TD></TR><TR><TD PORT="f5">slots5</TD></TR><TR><TD PORT="f6">slots6</TD></TR><TR><TD PORT="f7">slots7</TD></TR><TR><TD PORT="f8">slots8</TD></TR><TR><TD PORT="f9">slots9</TD></TR><TR><TD PORT="f10">slots10</TD></TR><TR><TD PORT="f11">slots11</TD></TR><TR><TD PORT="f12">slots12</TD></TR><TR><TD PORT="f13">slot13</TD></TR></TABLE>>
-];
-"DS2_MEMORY" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="ds2">DS2 Memory</TD></TR><TR><TD PORT="f0">slot0</TD></TR><TR><TD PORT="f1">slot1</TD></TR><TR><TD PORT="f2">slots2</TD></TR><TR><TD PORT="f3">slots3</TD></TR><TR><TD PORT="f4">slots4</TD></TR><TR><TD PORT="f5">slots5</TD></TR><TR><TD PORT="f6">slots6</TD></TR><TR><TD PORT="f7">slots7</TD></TR><TR><TD PORT="f8">slots8</TD></TR><TR><TD PORT="f9">slots9</TD></TR><TR><TD PORT="f10">slots10</TD></TR><TR><TD PORT="f11">slots11</TD></TR><TR><TD PORT="f12">slots12</TD></TR><TR><TD PORT="f13">slot13</TD></TR><TR><TD PORT="f14">slots14</TD></TR><TR><TD PORT="f15">slots15</TD></TR><TR><TD PORT="f16">slots16</TD></TR><TR><TD PORT="f17">slots17</TD></TR><TR><TD PORT="f18">slots18</TD></TR><TR><TD PORT="f19">slots19</TD></TR></TABLE>>
-];
-subgraph clusterMemoryView
-{
-label="xglAttachMemoryViewDescriptors - pMemViews array of XGL_MEMORY_VIEW_ATTACH_INFO structs"
-"_XGL_MEMORY_VIEW_ATTACH_INFO_3" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_GPU_MEMORY</TD><TD PORT="f6">mem</TD></TR><TR><TD PORT="f7">XGL_GPU_SIZE</TD><TD PORT="f8">offset</TD></TR><TR><TD PORT="f9">XGL_GPU_SIZE</TD><TD PORT="f10">range</TD></TR><TR><TD PORT="f11">XGL_GPU_SIZE</TD><TD PORT="f12">stride</TD></TR><TR><TD PORT="f13">XGL_FORMAT</TD><TD PORT="f14">format</TD></TR><TR><TD PORT="f15">XGL_MEMORY_STATE</TD><TD PORT="f16">state</TD></TR></TABLE>>
-];
-"MEM_VIEW_ELLIPSES" [
-label = "..."
-];
-"_XGL_MEMORY_VIEW_ATTACH_INFO_0" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_GPU_MEMORY</TD><TD PORT="f6">mem</TD></TR><TR><TD PORT="f7">XGL_GPU_SIZE</TD><TD PORT="f8">offset</TD></TR><TR><TD PORT="f9">XGL_GPU_SIZE</TD><TD PORT="f10">range</TD></TR><TR><TD PORT="f11">XGL_GPU_SIZE</TD><TD PORT="f12">stride</TD></TR><TR><TD PORT="f13">XGL_FORMAT</TD><TD PORT="f14">format</TD></TR><TR><TD PORT="f15">XGL_MEMORY_STATE</TD><TD PORT="f16">state</TD></TR></TABLE>>
-];
-}
-subgraph clusterImageView
-{
-label="xglAttachImageViewDescriptors - pImageViews array of XGL_IMAGE_VIEW_ATTACH_INFO structs"
-"_XGL_IMAGE_VIEW_ATTACH_INFO_9" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_IMAGE_VIEW</TD><TD PORT="f6">view</TD></TR><TR><TD PORT="f7">XGL_IMAGE_STATE</TD><TD PORT="f8">state</TD></TR></TABLE>>
-];
-"IMG_VIEW_ELLIPSES" [
-label = "..."
-];
-"_XGL_IMAGE_VIEW_ATTACH_INFO_0" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f1">XGL_STRUCTURE_TYPE</TD><TD PORT="f2">sType=<BR/>XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO</TD></TR><TR><TD PORT="f3">void*</TD><TD PORT="f4">pNext=NULL</TD></TR><TR><TD PORT="f5">XGL_IMAGE_VIEW</TD><TD PORT="f6">view</TD></TR><TR><TD PORT="f7">XGL_IMAGE_STATE</TD><TD PORT="f8">state</TD></TR></TABLE>>
-];
-}
-"VS_XGL_DESCRIPTOR_SET_MAPPING" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=2</TD></TR><TR><TD PORT="f3">const XGL_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
-];
-"VS_XGL_DESCRIPTOR_SLOT_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">XGL_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR></TABLE>>
-];
-"FS0_XGL_DESCRIPTOR_SET_MAPPING" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=6</TD></TR><TR><TD PORT="f3">const XGL_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
-];
-"FS0_XGL_DESCRIPTOR_SLOT_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">XGL_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">XGL_SLOT_SHADER_UNUSED</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">XGL_SLOT_SHADER_UNUSED</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR><TR><TD PORT="f12">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f13">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f11">2</TD></TR><TR><TD PORT="f14">uint32_t</TD><TD PORT="f15">shaderEntityIndex</TD></TR><TR><TD PORT="f17">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f18">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f16">3</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">shaderEntityIndex</TD></TR><TR><TD PORT="f22">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f23">XGL_SLOT_SHADER_RESOURCE</TD><TD ROWSPAN="2" PORT="f21">4</TD></TR><TR><TD PORT="f24">uint32_t</TD><TD PORT="f25">shaderEntityIndex</TD></TR><TR><TD PORT="f27">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f28">XGL_SLOT_SHADER_UAV</TD><TD ROWSPAN="2" PORT="f26">5</TD></TR><TR><TD PORT="f29">uint32_t</TD><TD PORT="f30">shaderEntityIndex</TD></TR></TABLE>>
-];
-"FS1_XGL_DESCRIPTOR_SET_MAPPING" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_DESCRIPTOR_SET_MAPPING</TD></TR><TR><TD PORT="f1">uint32_t</TD><TD PORT="f2">descriptorCount=10</TD></TR><TR><TD PORT="f3">const XGL_DESCRIPTOR_SLOT_INFO*</TD><TD PORT="f4">pDescriptorInfo</TD></TR></TABLE>>
-];
-"FS1_XGL_DESCRIPTOR_SLOT_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="3" PORT="f0">XGL_DESCRIPTOR_SLOT_INFO</TD></TR><TR><TD PORT="f2">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f3">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f1">0</TD></TR><TR><TD PORT="f4">uint32_t</TD><TD PORT="f5">shaderEntityIndex</TD></TR><TR><TD PORT="f7">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f8">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f6">1</TD></TR><TR><TD PORT="f9">uint32_t</TD><TD PORT="f10">shaderEntityIndex</TD></TR><TR><TD PORT="f12">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f13">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f11">2</TD></TR><TR><TD PORT="f14">uint32_t</TD><TD PORT="f15">shaderEntityIndex</TD></TR><TR><TD PORT="f17">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f18">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f16">3</TD></TR><TR><TD PORT="f19">uint32_t</TD><TD PORT="f20">shaderEntityIndex</TD></TR><TR><TD PORT="f22">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f23">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f21">4</TD></TR><TR><TD PORT="f24">uint32_t</TD><TD PORT="f25">shaderEntityIndex</TD></TR><TR><TD PORT="f27">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f28">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f26">5</TD></TR><TR><TD PORT="f29">uint32_t</TD><TD PORT="f30">shaderEntityIndex</TD></TR><TR><TD PORT="f32">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f33">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f31">6</TD></TR><TR><TD PORT="f34">uint32_t</TD><TD PORT="f35">shaderEntityIndex</TD></TR><TR><TD PORT="f37">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f38">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f36">7</TD></TR><TR><TD PORT="f39">uint32_t</TD><TD PORT="f40">shaderEntityIndex</TD></TR><TR><TD PORT="f42">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f43">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f41">8</TD></TR><TR><TD PORT="f44">uint32_t</TD><TD PORT="f45">shaderEntityIndex</TD></TR><TR><TD PORT="f47">XGL_DESCRIPTOR_SET_SLOT_TYPE</TD><TD PORT="f48">XGL_SLOT_SHADER_SAMPLER</TD><TD ROWSPAN="2" PORT="f46">9</TD></TR><TR><TD PORT="f49">uint32_t</TD><TD PORT="f50">shaderEntityIndex</TD></TR></TABLE>>
-];
-/*
-"_XGL_DESCRIPTOR_SET_CREATE_INFO1":f2 -> "_XGL_DESCRIPTOR_SET_CREATE_INFO2":f0 [
-id = 0
-];
-*/
-"_XGL_DESCRIPTOR_SET_CREATE_INFO1":f4 -> "DS1_MEMORY":ds1 [
-id = 1
-];
-"_XGL_DESCRIPTOR_SET_CREATE_INFO2":f4 -> "DS2_MEMORY":ds2 [
-id = 2
-];
-/*
-"_XGL_SAMPLER_CREATE_INFO_0":f4 -> "_ELLIPSE0" [
-id = 3
-];
-"_ELLIPSE0" -> "_XGL_SAMPLER_CREATE_INFO_19":f0 [
-id = 3
-];
-*/
-"_XGL_SAMPLER_CREATE_INFO_0" -> "SAMPLER_ARRAY":f0 [
-id = 4
-];
-"_XGL_SAMPLER_CREATE_INFO_19" -> "SAMPLER_ARRAY":f19 [
-id = 5
-];
-"SAMPLER_ARRAY":f0 -> "DS2_MEMORY":f0 [
-id = 6
-];
-"SAMPLER_ARRAY":f19 -> "DS2_MEMORY":f19 [
-id = 7
-];
-/*
-"_XGL_MEMORY_VIEW_ATTACH_INFO_0":f4 -> "_ELLIPSE1" [
-id = 6
-];
-"_ELLIPSE1" -> "_XGL_MEMORY_VIEW_ATTACH_INFO_3":f0 [
-id = 7
-];
-"_XGL_IMAGE_VIEW_ATTACH_INFO_0":f4 -> "_ELLIPSE2" [
-id = 8
-];
-"_ELLIPSE2" -> "_XGL_IMAGE_VIEW_ATTACH_INFO_9":f0 [
-id = 9
-];
-*/
-"_XGL_MEMORY_VIEW_ATTACH_INFO_0" -> "DS1_MEMORY":f0 [
-id = 10
-];
-"_XGL_MEMORY_VIEW_ATTACH_INFO_3" -> "DS1_MEMORY":f3 [
-id = 11
-];
-"_XGL_IMAGE_VIEW_ATTACH_INFO_0" -> "DS1_MEMORY":f4 [
-id = 10
-];
-"_XGL_IMAGE_VIEW_ATTACH_INFO_9" -> "DS1_MEMORY":f13 [
-id = 11
-];
-"VS_XGL_DESCRIPTOR_SET_MAPPING":f4 -> "VS_XGL_DESCRIPTOR_SLOT_INFO":f0 [
-id = 12
-];
-"VS_XGL_DESCRIPTOR_SLOT_INFO":f1 -> "DS1_MEMORY":f0 [
-id = 13
-];
-"VS_XGL_DESCRIPTOR_SLOT_INFO":f6 -> "DS1_MEMORY":f1 [
-id = 14
-];
-"FS0_XGL_DESCRIPTOR_SET_MAPPING":f4 -> "FS0_XGL_DESCRIPTOR_SLOT_INFO":f0 [
-id = 15
-];
-"FS0_XGL_DESCRIPTOR_SLOT_INFO":f1 -> "DS1_MEMORY":f0 [
-id = 16
-];
-"FS0_XGL_DESCRIPTOR_SLOT_INFO":f26 -> "DS1_MEMORY":f5 [
-id = 17
-];
-"FS1_XGL_DESCRIPTOR_SET_MAPPING":f4 -> "FS1_XGL_DESCRIPTOR_SLOT_INFO":f0 [
-id = 15
-];
-"FS1_XGL_DESCRIPTOR_SLOT_INFO":f1 -> "DS2_MEMORY":f0 [
-id = 16
-];
-"FS1_XGL_DESCRIPTOR_SLOT_INFO":f46 -> "DS2_MEMORY":f9 [
-id = 17
-];
-"FS_XGL_PIPELINE_SHADER":f6 -> "FS0_XGL_DESCRIPTOR_SET_MAPPING" [
-id = 18
-];
-"FS_XGL_PIPELINE_SHADER":f6 -> "FS1_XGL_DESCRIPTOR_SET_MAPPING" [
-id = 19
-];
-"VS_XGL_PIPELINE_SHADER":f6 -> "VS_XGL_DESCRIPTOR_SET_MAPPING" [
-id = 20
-];
-}
-
diff --git a/docs/xgl_graphics_pipeline.dot b/docs/xgl_graphics_pipeline.dot
deleted file mode 100644
index e5434f6..0000000
--- a/docs/xgl_graphics_pipeline.dot
+++ /dev/null
@@ -1,105 +0,0 @@
-digraph g {
-graph [
-rankdir = "TB"
-];
-node [
-fontsize = "16"
-shape = "plaintext"
-];
-edge [
-];
-"_XGL_GRAPHICS_PIPELINE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_GRAPHICS_PIPELINE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>XGL_FLAGS</TD><TD>flags</TD></TR></TABLE>>
-];
-"_XGL_PIPELINE_IA_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_IA_STATE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_IA_STATE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>XGL_PRIMITIVE_TOPOLOGY</TD><TD>topology</TD></TR><TR><TD>bool32_t</TD><TD>disableVertexReuse</TD></TR><TR><TD>XGL_PROVOKING_VERTEX_CONVENTION</TD><TD>provokingVertex</TD></TR><TR><TD>bool32_t</TD><TD>primitiveRestartEnable</TD></TR><TR><TD>uint32_t</TD><TD>primitiveRestartIndex</TD></TR></TABLE>>
-];
-"_XGL_PIPELINE_TESS_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_TESS_STATE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_TESS_STATE_CREATE_INFO</TD></TR><TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>uint32_t</TD><TD>patchControlPoints</TD></TR> <TR><TD>float</TD><TD>optimalTessFactor</TD></TR><TR><TD>float</TD><TD>fixedTessFactor</TD></TR></TABLE>>
-];
-"_XGL_PIPELINE_RS_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_RS_STATE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_RS_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>bool32_t</TD><TD>depthClipEnable</TD></TR> <TR><TD>bool32_t</TD><TD>rasterizerDiscardEnable</TD></TR> <TR><TD>float</TD><TD>pointSize</TD></TR> </TABLE>>
-];
-"_XGL_PIPELINE_CB_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_CB_STATE</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_CB_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>bool32_t</TD><TD>alphaToCoverageEnable</TD></TR> <TR><TD>bool32_t</TD><TD>dualSourceBlendEnable</TD></TR> <TR><TD>XGL_LOGIC_OP</TD><TD>logicOp</TD></TR> <TR><TD>XGL_PIPELINE_CB_ATTACHMENT_STATE</TD><TD>attachment</TD></TR> </TABLE>>
-];
-"_XGL_PIPELINE_DB_STATE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_DB_STATE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_DB_STATE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_FORMAT</TD><TD>format</TD></TR> </TABLE>>
-];
-"VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"FS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR><TR><TD>XGL_STRUCTURE_TYPE</TD><TD>sType=<BR/>XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</TD></TR> <TR><TD>const void*</TD><TD PORT="f2">pNext=NULL</TD></TR> <TR><TD>XGL_PIPELINE_SHADER</TD><TD PORT="f4">shader</TD></TR> </TABLE>>
-];
-"VS_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=VS</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"TC_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=TC</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"TE_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=TE</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"GS_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=GS</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"FS_XGL_PIPELINE_SHADER" [
-label = <<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD COLSPAN="2" PORT="f0">XGL_PIPELINE_SHADER</TD></TR><TR><TD PORT="f1">XGL_PIPELINE_SHADER_STAGE</TD><TD PORT="f2">stage=FS</TD></TR><TR><TD PORT="f3">XGL_SHADER</TD><TD PORT="f4">shader</TD></TR><TR><TD PORT="f5">XGL_DESCRIPTOR_SET_MAPPING</TD><TD PORT="f6">descriptorSetMapping[2]</TD></TR><TR><TD PORT="f7">uint32_t</TD><TD PORT="f8">linkConstBufferCount</TD></TR><TR><TD PORT="f9">const XGL_LINK_CONST_BUFFER*</TD><TD PORT="f10">pLinkConstBufferInfo</TD></TR><TR><TD PORT="f11">XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFO</TD><TD PORT="f12">dynamicMemoryViewMapping</TD></TR></TABLE>>
-];
-"_XGL_GRAPHICS_PIPELINE_CREATE_INFO":f2 -> "_XGL_PIPELINE_IA_STATE_CREATE_INFO" [
-id = 0
-];
-"_XGL_PIPELINE_IA_STATE_CREATE_INFO":f2 -> "_XGL_PIPELINE_TESS_STATE_CREATE_INFO" [
-id = 1
-];
-"_XGL_PIPELINE_TESS_STATE_CREATE_INFO":f2 -> "_XGL_PIPELINE_RS_STATE_CREATE_INFO" [
-id = 2
-];
-"_XGL_PIPELINE_RS_STATE_CREATE_INFO":f2 -> "_XGL_PIPELINE_CB_STATE_CREATE_INFO" [
-id = 3
-];
-"_XGL_PIPELINE_CB_STATE_CREATE_INFO":f2 -> "_XGL_PIPELINE_DB_STATE_CREATE_INFO" [
-id = 4
-];
-"_XGL_PIPELINE_DB_STATE_CREATE_INFO":f2 -> "VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 5
-];
-"VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 6
-];
-"TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 7
-];
-"TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 8
-];
-"GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f2 -> "FS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [
-id = 9
-];
-"VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "VS_XGL_PIPELINE_SHADER" [
-id = 10
-];
-"TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "TE_XGL_PIPELINE_SHADER" [
-id = 11
-];
-"TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "TC_XGL_PIPELINE_SHADER" [
-id = 12
-];
-"GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "GS_XGL_PIPELINE_SHADER" [
-id = 13
-];
-"FS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO":f4 -> "FS_XGL_PIPELINE_SHADER" [
-id = 14
-];
-}
-