Added graphiviz dot and png files to visualize some API details
authorTobin Ehlis <tobin@lunarg.com>
Mon, 6 Oct 2014 15:07:53 +0000 (09:07 -0600)
committerTobin Ehlis <tobin@lunarg.com>
Mon, 6 Oct 2014 15:18:01 +0000 (09:18 -0600)
docs/xgl_ds.dot [new file with mode: 0644]
docs/xgl_ds.png [new file with mode: 0644]
docs/xgl_full_pipeline_ds.dot [new file with mode: 0644]
docs/xgl_full_pipeline_ds.png [new file with mode: 0644]
docs/xgl_graphics_pipeline.dot [new file with mode: 0644]
docs/xgl_graphics_pipeline.png [new file with mode: 0644]

diff --git a/docs/xgl_ds.dot b/docs/xgl_ds.dot
new file mode 100644 (file)
index 0000000..befb0e4
--- /dev/null
@@ -0,0 +1,180 @@
+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 XGL_VOID*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">XGL_UINT</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 XGL_VOID*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">XGL_UINT</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 XGL_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">XGL_FLOAT</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">XGL_UINT</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">XGL_FLOAT</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">XGL_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 XGL_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">XGL_FLOAT</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">XGL_UINT</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">XGL_FLOAT</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">XGL_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&#92;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">XGL_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">XGL_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">XGL_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">XGL_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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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_ds.png b/docs/xgl_ds.png
new file mode 100644 (file)
index 0000000..ffeb80c
Binary files /dev/null and b/docs/xgl_ds.png differ
diff --git a/docs/xgl_full_pipeline_ds.dot b/docs/xgl_full_pipeline_ds.dot
new file mode 100644 (file)
index 0000000..c0717c7
--- /dev/null
@@ -0,0 +1,282 @@
+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 XGL_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 XGL_VOID*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>XGL_PRIMITIVE_TOPOLOGY</TD><TD>topology</TD></TR><TR><TD>XGL_BOOL</TD><TD>disableVertexReuse</TD></TR><TR><TD>XGL_PROVOKING_VERTEX_CONVENTION</TD><TD>provokingVertex</TD></TR><TR><TD>XGL_BOOL</TD><TD>primitiveRestartEnable</TD></TR><TR><TD>XGL_UINT32</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 XGL_VOID*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>XGL_UINT</TD><TD>patchControlPoints</TD></TR> <TR><TD>XGL_FLOAT</TD><TD>optimalTessFactor</TD></TR><TR><TD>XGL_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 XGL_VOID*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_BOOL</TD><TD>depthClipEnable</TD></TR> <TR><TD>XGL_BOOL</TD><TD>rasterizerDiscardEnable</TD></TR> <TR><TD>XGL_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 XGL_VOID*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_BOOL</TD><TD>alphaToCoverageEnable</TD></TR> <TR><TD>XGL_BOOL</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 XGL_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 XGL_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 XGL_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 XGL_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 XGL_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 XGL_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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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 XGL_VOID*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">XGL_UINT</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 XGL_VOID*</TD><TD PORT="f2">pNext=NULL</TD></TR><TR><TD PORT="f3">XGL_UINT</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 XGL_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">XGL_FLOAT</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">XGL_UINT</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">XGL_FLOAT</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">XGL_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 XGL_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">XGL_FLOAT</TD><TD PORT="f18">mipLodBias</TD></TR><TR><TD PORT="f19">XGL_UINT</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">XGL_FLOAT</TD><TD PORT="f24">minLod</TD></TR><TR><TD PORT="f25">XGL_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&#92;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">XGL_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">XGL_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">XGL_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">XGL_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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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_full_pipeline_ds.png b/docs/xgl_full_pipeline_ds.png
new file mode 100644 (file)
index 0000000..cec7622
Binary files /dev/null and b/docs/xgl_full_pipeline_ds.png differ
diff --git a/docs/xgl_graphics_pipeline.dot b/docs/xgl_graphics_pipeline.dot
new file mode 100644 (file)
index 0000000..18e74c0
--- /dev/null
@@ -0,0 +1,105 @@
+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 XGL_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 XGL_VOID*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>XGL_PRIMITIVE_TOPOLOGY</TD><TD>topology</TD></TR><TR><TD>XGL_BOOL</TD><TD>disableVertexReuse</TD></TR><TR><TD>XGL_PROVOKING_VERTEX_CONVENTION</TD><TD>provokingVertex</TD></TR><TR><TD>XGL_BOOL</TD><TD>primitiveRestartEnable</TD></TR><TR><TD>XGL_UINT32</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 XGL_VOID*</TD><TD PORT="f2">pNext</TD></TR><TR><TD>XGL_UINT</TD><TD>patchControlPoints</TD></TR> <TR><TD>XGL_FLOAT</TD><TD>optimalTessFactor</TD></TR><TR><TD>XGL_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 XGL_VOID*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_BOOL</TD><TD>depthClipEnable</TD></TR> <TR><TD>XGL_BOOL</TD><TD>rasterizerDiscardEnable</TD></TR> <TR><TD>XGL_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 XGL_VOID*</TD><TD PORT="f2">pNext</TD></TR> <TR><TD>XGL_BOOL</TD><TD>alphaToCoverageEnable</TD></TR> <TR><TD>XGL_BOOL</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 XGL_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 XGL_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 XGL_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 XGL_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 XGL_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 XGL_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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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">XGL_UINT</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
+];
+}
+
diff --git a/docs/xgl_graphics_pipeline.png b/docs/xgl_graphics_pipeline.png
new file mode 100644 (file)
index 0000000..392fd3f
Binary files /dev/null and b/docs/xgl_graphics_pipeline.png differ