From 34fa2b5e17d925ac546c63dc45fe92aa10cfe556 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Mon, 6 Oct 2014 09:07:53 -0600 Subject: Added graphiviz dot and png files to visualize some API details --- docs/xgl_ds.dot | 180 ++++++++++++++++++++++++++ docs/xgl_ds.png | Bin 0 -> 858990 bytes docs/xgl_full_pipeline_ds.dot | 282 +++++++++++++++++++++++++++++++++++++++++ docs/xgl_full_pipeline_ds.png | Bin 0 -> 1209173 bytes docs/xgl_graphics_pipeline.dot | 105 +++++++++++++++ docs/xgl_graphics_pipeline.png | Bin 0 -> 657320 bytes 6 files changed, 567 insertions(+) create mode 100644 docs/xgl_ds.dot create mode 100644 docs/xgl_ds.png create mode 100644 docs/xgl_full_pipeline_ds.dot create mode 100644 docs/xgl_full_pipeline_ds.png create mode 100644 docs/xgl_graphics_pipeline.dot create mode 100644 docs/xgl_graphics_pipeline.png (limited to 'docs') diff --git a/docs/xgl_ds.dot b/docs/xgl_ds.dot new file mode 100644 index 00000000..befb0e45 --- /dev/null +++ b/docs/xgl_ds.dot @@ -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 = <
XGL_DESCRIPTOR_SET_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_UINTslots=14
> +]; +} +subgraph clusterDSCreate2 +{ +label="xglCreateDescriptorSet()" +"_XGL_DESCRIPTOR_SET_CREATE_INFO2" [ +label = <
XGL_DESCRIPTOR_SET_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_UINTslots=20
> +]; +} +subgraph clusterSamplerCreate +{ +label="xglCreateSampler - multiple calls return unique XGL_SAMPLER handles" +"_XGL_SAMPLER_CREATE_INFO_0" [ +label = <
XGL_SAMPLER_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_TEX_FILTERmagFilter
XGL_TEX_FILTERminFilter
XGL_TEX_MIPMAP_MODEmipMode
XGL_TEX_ADDRESSaddressU
XGL_TEX_ADDRESSaddressV
XGL_TEX_ADDRESSaddressW
XGL_FLOATmipLodBias
XGL_UINTmaxAnisotropy
XGL_COMPARE_FUNCcompareFunc
XGL_FLOATminLod
XGL_FLOATmaxLod
XGL_BORDER_COLOR_TYPEborderColorType
> +]; +"SAMPLER_ELLIPSES" [ +label = "..." +]; +"_XGL_SAMPLER_CREATE_INFO_19" [ +label = <
XGL_SAMPLER_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_TEX_FILTERmagFilter
XGL_TEX_FILTERminFilter
XGL_TEX_MIPMAP_MODEmipMode
XGL_TEX_ADDRESSaddressU
XGL_TEX_ADDRESSaddressV
XGL_TEX_ADDRESSaddressW
XGL_FLOATmipLodBias
XGL_UINTmaxAnisotropy
XGL_COMPARE_FUNCcompareFunc
XGL_FLOATminLod
XGL_FLOATmaxLod
XGL_BORDER_COLOR_TYPEborderColorType
> +]; +} +subgraph clusterSamplerAttach +{ +label="xglAttachSamplerDescriptors\npSamplers array of XGL_SAMPLERS" +"SAMPLER_ARRAY" [ +label = <
pSamplers
XGL_SAMPLER0
XGL_SAMPLER1
XGL_SAMPLER2
XGL_SAMPLER3
XGL_SAMPLER4
XGL_SAMPLER5
XGL_SAMPLER6
XGL_SAMPLER7
XGL_SAMPLER8
XGL_SAMPLER9
XGL_SAMPLER10
XGL_SAMPLER11
XGL_SAMPLER12
XGL_SAMPLER13
XGL_SAMPLER14
XGL_SAMPLER15
XGL_SAMPLER16
XGL_SAMPLER17
XGL_SAMPLER18
XGL_SAMPLER19
> +]; +} +"DS1_MEMORY" [ +label = <
DS1 Memory
slot0
slot1
slots2
slots3
slots4
slots5
slots6
slots7
slots8
slots9
slots10
slots11
slots12
slot13
> +]; +"DS2_MEMORY" [ +label = <
DS2 Memory
slot0
slot1
slots2
slots3
slots4
slots5
slots6
slots7
slots8
slots9
slots10
slots11
slots12
slot13
slots14
slots15
slots16
slots17
slots18
slots19
> +]; +subgraph clusterMemoryView +{ +label="xglAttachMemoryViewDescriptors - pMemViews array of XGL_MEMORY_VIEW_ATTACH_INFO structs" +"_XGL_MEMORY_VIEW_ATTACH_INFO_3" [ +label = <
XGL_MEMORY_VIEW_ATTACH_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO
XGL_VOID*pNext=NULL
XGL_GPU_MEMORYmem
XGL_GPU_SIZEoffset
XGL_GPU_SIZErange
XGL_GPU_SIZEstride
XGL_FORMATformat
XGL_MEMORY_STATEstate
> +]; +"MEM_VIEW_ELLIPSES" [ +label = "..." +]; +"_XGL_MEMORY_VIEW_ATTACH_INFO_0" [ +label = <
XGL_MEMORY_VIEW_ATTACH_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO
XGL_VOID*pNext=NULL
XGL_GPU_MEMORYmem
XGL_GPU_SIZEoffset
XGL_GPU_SIZErange
XGL_GPU_SIZEstride
XGL_FORMATformat
XGL_MEMORY_STATEstate
> +]; +} +subgraph clusterImageView +{ +label="xglAttachImageViewDescriptors - pImageViews array of XGL_IMAGE_VIEW_ATTACH_INFO structs" +"_XGL_IMAGE_VIEW_ATTACH_INFO_9" [ +label = <
XGL_IMAGE_VIEW_ATTACH_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO
XGL_VOID*pNext=NULL
XGL_IMAGE_VIEWview
XGL_IMAGE_STATEstate
> +]; +"IMG_VIEW_ELLIPSES" [ +label = "..." +]; +"_XGL_IMAGE_VIEW_ATTACH_INFO_0" [ +label = <
XGL_IMAGE_VIEW_ATTACH_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO
XGL_VOID*pNext=NULL
XGL_IMAGE_VIEWview
XGL_IMAGE_STATEstate
> +]; +} +"VS_XGL_DESCRIPTOR_SET_MAPPING" [ +label = <
XGL_DESCRIPTOR_SET_MAPPING
XGL_UINTdescriptorCount=2
const XGL_DESCRIPTOR_SLOT_INFO*pDescriptorInfo
> +]; +"VS_XGL_DESCRIPTOR_SLOT_INFO" [ +label = <
XGL_DESCRIPTOR_SLOT_INFO
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE0
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE1
XGL_UINTshaderEntityIndex
> +]; +"FS0_XGL_DESCRIPTOR_SET_MAPPING" [ +label = <
XGL_DESCRIPTOR_SET_MAPPING
XGL_UINTdescriptorCount=6
const XGL_DESCRIPTOR_SLOT_INFO*pDescriptorInfo
> +]; +"FS0_XGL_DESCRIPTOR_SLOT_INFO" [ +label = <
XGL_DESCRIPTOR_SLOT_INFO
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_UNUSED0
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_UNUSED1
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE2
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE3
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE4
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_UAV5
XGL_UINTshaderEntityIndex
> +]; +"FS1_XGL_DESCRIPTOR_SET_MAPPING" [ +label = <
XGL_DESCRIPTOR_SET_MAPPING
XGL_UINTdescriptorCount=10
const XGL_DESCRIPTOR_SLOT_INFO*pDescriptorInfo
> +]; +"FS1_XGL_DESCRIPTOR_SLOT_INFO" [ +label = <
XGL_DESCRIPTOR_SLOT_INFO
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER0
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER1
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER2
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER3
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER4
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER5
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER6
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER7
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER8
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER9
XGL_UINTshaderEntityIndex
> +]; +/* +"_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 index 00000000..ffeb80c1 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 index 00000000..c0717c72 --- /dev/null +++ b/docs/xgl_full_pipeline_ds.dot @@ -0,0 +1,282 @@ +digraph g { +graph [ +rankdir = "TB" +]; +node [ +fontsize = "16" +shape = "plaintext" +]; +edge [ +]; +"_XGL_GRAPHICS_PIPELINE_CREATE_INFO" [ +label = <
XGL_GRAPHICS_PIPELINE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
const XGL_VOID*pNext
XGL_FLAGSflags
> +]; +"_XGL_PIPELINE_IA_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_IA_STATE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_IA_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_PRIMITIVE_TOPOLOGYtopology
XGL_BOOLdisableVertexReuse
XGL_PROVOKING_VERTEX_CONVENTIONprovokingVertex
XGL_BOOLprimitiveRestartEnable
XGL_UINT32primitiveRestartIndex
> +]; +"_XGL_PIPELINE_TESS_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_TESS_STATE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_TESS_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_UINTpatchControlPoints
XGL_FLOAToptimalTessFactor
XGL_FLOATfixedTessFactor
> +]; +"_XGL_PIPELINE_RS_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_RS_STATE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_RS_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_BOOLdepthClipEnable
XGL_BOOLrasterizerDiscardEnable
XGL_FLOATpointSize
> +]; +"_XGL_PIPELINE_CB_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_CB_STATE
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_CB_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_BOOLalphaToCoverageEnable
XGL_BOOLdualSourceBlendEnable
XGL_LOGIC_OPlogicOp
XGL_PIPELINE_CB_ATTACHMENT_STATEattachment
> +]; +"_XGL_PIPELINE_DB_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_DB_STATE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_DB_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_FORMATformat
> +]; +"VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext
XGL_PIPELINE_SHADERshader
> +]; +"TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext
XGL_PIPELINE_SHADERshader
> +]; +"TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext
XGL_PIPELINE_SHADERshader
> +]; +"GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext
XGL_PIPELINE_SHADERshader
> +]; +"FS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_PIPELINE_SHADERshader
> +]; +"VS_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=VS
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"TC_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=TC
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"TE_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=TE
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"GS_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=GS
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"FS_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=FS
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"_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 = <
XGL_DESCRIPTOR_SET_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_UINTslots=14
> +]; +} +subgraph clusterDSCreate2 +{ +label="xglCreateDescriptorSet()" +"_XGL_DESCRIPTOR_SET_CREATE_INFO2" [ +label = <
XGL_DESCRIPTOR_SET_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_UINTslots=20
> +]; +} +subgraph clusterSamplerCreate +{ +label="xglCreateSampler - multiple calls return unique XGL_SAMPLER handles" +"_XGL_SAMPLER_CREATE_INFO_0" [ +label = <
XGL_SAMPLER_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_TEX_FILTERmagFilter
XGL_TEX_FILTERminFilter
XGL_TEX_MIPMAP_MODEmipMode
XGL_TEX_ADDRESSaddressU
XGL_TEX_ADDRESSaddressV
XGL_TEX_ADDRESSaddressW
XGL_FLOATmipLodBias
XGL_UINTmaxAnisotropy
XGL_COMPARE_FUNCcompareFunc
XGL_FLOATminLod
XGL_FLOATmaxLod
XGL_BORDER_COLOR_TYPEborderColorType
> +]; +"SAMPLER_ELLIPSES" [ +label = "..." +]; +"_XGL_SAMPLER_CREATE_INFO_19" [ +label = <
XGL_SAMPLER_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_TEX_FILTERmagFilter
XGL_TEX_FILTERminFilter
XGL_TEX_MIPMAP_MODEmipMode
XGL_TEX_ADDRESSaddressU
XGL_TEX_ADDRESSaddressV
XGL_TEX_ADDRESSaddressW
XGL_FLOATmipLodBias
XGL_UINTmaxAnisotropy
XGL_COMPARE_FUNCcompareFunc
XGL_FLOATminLod
XGL_FLOATmaxLod
XGL_BORDER_COLOR_TYPEborderColorType
> +]; +} +subgraph clusterSamplerAttach +{ +label="xglAttachSamplerDescriptors\npSamplers array of XGL_SAMPLERS" +"SAMPLER_ARRAY" [ +label = <
pSamplers
XGL_SAMPLER0
XGL_SAMPLER1
XGL_SAMPLER2
XGL_SAMPLER3
XGL_SAMPLER4
XGL_SAMPLER5
XGL_SAMPLER6
XGL_SAMPLER7
XGL_SAMPLER8
XGL_SAMPLER9
XGL_SAMPLER10
XGL_SAMPLER11
XGL_SAMPLER12
XGL_SAMPLER13
XGL_SAMPLER14
XGL_SAMPLER15
XGL_SAMPLER16
XGL_SAMPLER17
XGL_SAMPLER18
XGL_SAMPLER19
> +]; +} +"DS1_MEMORY" [ +label = <
DS1 Memory
slot0
slot1
slots2
slots3
slots4
slots5
slots6
slots7
slots8
slots9
slots10
slots11
slots12
slot13
> +]; +"DS2_MEMORY" [ +label = <
DS2 Memory
slot0
slot1
slots2
slots3
slots4
slots5
slots6
slots7
slots8
slots9
slots10
slots11
slots12
slot13
slots14
slots15
slots16
slots17
slots18
slots19
> +]; +subgraph clusterMemoryView +{ +label="xglAttachMemoryViewDescriptors - pMemViews array of XGL_MEMORY_VIEW_ATTACH_INFO structs" +"_XGL_MEMORY_VIEW_ATTACH_INFO_3" [ +label = <
XGL_MEMORY_VIEW_ATTACH_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO
XGL_VOID*pNext=NULL
XGL_GPU_MEMORYmem
XGL_GPU_SIZEoffset
XGL_GPU_SIZErange
XGL_GPU_SIZEstride
XGL_FORMATformat
XGL_MEMORY_STATEstate
> +]; +"MEM_VIEW_ELLIPSES" [ +label = "..." +]; +"_XGL_MEMORY_VIEW_ATTACH_INFO_0" [ +label = <
XGL_MEMORY_VIEW_ATTACH_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_MEMORY_VIEW_ATTACH_INFO
XGL_VOID*pNext=NULL
XGL_GPU_MEMORYmem
XGL_GPU_SIZEoffset
XGL_GPU_SIZErange
XGL_GPU_SIZEstride
XGL_FORMATformat
XGL_MEMORY_STATEstate
> +]; +} +subgraph clusterImageView +{ +label="xglAttachImageViewDescriptors - pImageViews array of XGL_IMAGE_VIEW_ATTACH_INFO structs" +"_XGL_IMAGE_VIEW_ATTACH_INFO_9" [ +label = <
XGL_IMAGE_VIEW_ATTACH_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO
XGL_VOID*pNext=NULL
XGL_IMAGE_VIEWview
XGL_IMAGE_STATEstate
> +]; +"IMG_VIEW_ELLIPSES" [ +label = "..." +]; +"_XGL_IMAGE_VIEW_ATTACH_INFO_0" [ +label = <
XGL_IMAGE_VIEW_ATTACH_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO
XGL_VOID*pNext=NULL
XGL_IMAGE_VIEWview
XGL_IMAGE_STATEstate
> +]; +} +"VS_XGL_DESCRIPTOR_SET_MAPPING" [ +label = <
XGL_DESCRIPTOR_SET_MAPPING
XGL_UINTdescriptorCount=2
const XGL_DESCRIPTOR_SLOT_INFO*pDescriptorInfo
> +]; +"VS_XGL_DESCRIPTOR_SLOT_INFO" [ +label = <
XGL_DESCRIPTOR_SLOT_INFO
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE0
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE1
XGL_UINTshaderEntityIndex
> +]; +"FS0_XGL_DESCRIPTOR_SET_MAPPING" [ +label = <
XGL_DESCRIPTOR_SET_MAPPING
XGL_UINTdescriptorCount=6
const XGL_DESCRIPTOR_SLOT_INFO*pDescriptorInfo
> +]; +"FS0_XGL_DESCRIPTOR_SLOT_INFO" [ +label = <
XGL_DESCRIPTOR_SLOT_INFO
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_UNUSED0
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_UNUSED1
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE2
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE3
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_RESOURCE4
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_UAV5
XGL_UINTshaderEntityIndex
> +]; +"FS1_XGL_DESCRIPTOR_SET_MAPPING" [ +label = <
XGL_DESCRIPTOR_SET_MAPPING
XGL_UINTdescriptorCount=10
const XGL_DESCRIPTOR_SLOT_INFO*pDescriptorInfo
> +]; +"FS1_XGL_DESCRIPTOR_SLOT_INFO" [ +label = <
XGL_DESCRIPTOR_SLOT_INFO
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER0
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER1
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER2
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER3
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER4
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER5
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER6
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER7
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER8
XGL_UINTshaderEntityIndex
XGL_DESCRIPTOR_SET_SLOT_TYPEXGL_SLOT_SHADER_SAMPLER9
XGL_UINTshaderEntityIndex
> +]; +/* +"_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 index 00000000..cec76227 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 index 00000000..18e74c07 --- /dev/null +++ b/docs/xgl_graphics_pipeline.dot @@ -0,0 +1,105 @@ +digraph g { +graph [ +rankdir = "TB" +]; +node [ +fontsize = "16" +shape = "plaintext" +]; +edge [ +]; +"_XGL_GRAPHICS_PIPELINE_CREATE_INFO" [ +label = <
XGL_GRAPHICS_PIPELINE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
const XGL_VOID*pNext
XGL_FLAGSflags
> +]; +"_XGL_PIPELINE_IA_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_IA_STATE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_IA_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_PRIMITIVE_TOPOLOGYtopology
XGL_BOOLdisableVertexReuse
XGL_PROVOKING_VERTEX_CONVENTIONprovokingVertex
XGL_BOOLprimitiveRestartEnable
XGL_UINT32primitiveRestartIndex
> +]; +"_XGL_PIPELINE_TESS_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_TESS_STATE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_TESS_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_UINTpatchControlPoints
XGL_FLOAToptimalTessFactor
XGL_FLOATfixedTessFactor
> +]; +"_XGL_PIPELINE_RS_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_RS_STATE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_RS_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_BOOLdepthClipEnable
XGL_BOOLrasterizerDiscardEnable
XGL_FLOATpointSize
> +]; +"_XGL_PIPELINE_CB_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_CB_STATE
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_CB_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_BOOLalphaToCoverageEnable
XGL_BOOLdualSourceBlendEnable
XGL_LOGIC_OPlogicOp
XGL_PIPELINE_CB_ATTACHMENT_STATEattachment
> +]; +"_XGL_PIPELINE_DB_STATE_CREATE_INFO" [ +label = <
XGL_PIPELINE_DB_STATE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_DB_STATE_CREATE_INFO
const XGL_VOID*pNext
XGL_FORMATformat
> +]; +"VS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext
XGL_PIPELINE_SHADERshader
> +]; +"TC_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext
XGL_PIPELINE_SHADERshader
> +]; +"TE_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext
XGL_PIPELINE_SHADERshader
> +]; +"GS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext
XGL_PIPELINE_SHADERshader
> +]; +"FS_XGL_PIPELINE_SHADER_STAGE_CREATE_INFO" [ +label = <
XGL_PIPELINE_SHADER_STAGE_CREATE_INFO
XGL_STRUCTURE_TYPEsType=
XGL_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const XGL_VOID*pNext=NULL
XGL_PIPELINE_SHADERshader
> +]; +"VS_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=VS
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"TC_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=TC
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"TE_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=TE
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"GS_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=GS
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"FS_XGL_PIPELINE_SHADER" [ +label = <
XGL_PIPELINE_SHADER
XGL_PIPELINE_SHADER_STAGEstage=FS
XGL_SHADERshader
XGL_DESCRIPTOR_SET_MAPPINGdescriptorSetMapping[2]
XGL_UINTlinkConstBufferCount
const XGL_LINK_CONST_BUFFER*pLinkConstBufferInfo
XGL_DYNAMIC_MEMORY_VIEW_SLOT_INFOdynamicMemoryViewMapping
> +]; +"_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 index 00000000..392fd3f3 Binary files /dev/null and b/docs/xgl_graphics_pipeline.png differ -- cgit v1.2.3