binding: update XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO now has an array of bindings. Rename
intel_desc_layout_range to intel_desc_layout_binding.
diff --git a/include/xgl.h b/include/xgl.h
index a9314ec..5d80dfa 100644
--- a/include/xgl.h
+++ b/include/xgl.h
@@ -1815,14 +1815,20 @@
XGL_FLAGS flags; // Reserved
} XGL_SHADER_CREATE_INFO;
-typedef struct _XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
+typedef struct _XGL_DESCRIPTOR_SET_LAYOUT_BINDING
{
- XGL_STRUCTURE_TYPE sType; // Must be XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
- const void* pNext; // Pointer to next structure
XGL_DESCRIPTOR_TYPE descriptorType;
uint32_t count;
XGL_FLAGS stageFlags; // XGL_SHADER_STAGE_FLAGS
XGL_SAMPLER immutableSampler;
+} XGL_DESCRIPTOR_SET_LAYOUT_BINDING;
+
+typedef struct _XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
+{
+ XGL_STRUCTURE_TYPE sType; // Must be XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
+ const void* pNext; // Pointer to next structure
+ uint32_t count; // Number of bindings in the descriptor set layout
+ const XGL_DESCRIPTOR_SET_LAYOUT_BINDING* pBinding; // Array of descriptor set layout bindings
} XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
typedef struct _XGL_DESCRIPTOR_TYPE_COUNT
@@ -2302,7 +2308,7 @@
typedef XGL_RESULT (XGLAPI *xglLoadPipelineType)(XGL_DEVICE device, size_t dataSize, const void* pData, XGL_PIPELINE* pPipeline);
typedef XGL_RESULT (XGLAPI *xglLoadPipelineDerivativeType)(XGL_DEVICE device, size_t dataSize, const void* pData, XGL_PIPELINE basePipeline, XGL_PIPELINE* pPipeline);
typedef XGL_RESULT (XGLAPI *xglCreateSamplerType)(XGL_DEVICE device, const XGL_SAMPLER_CREATE_INFO* pCreateInfo, XGL_SAMPLER* pSampler);
-typedef XGL_RESULT (XGLAPI *xglCreateDescriptorSetLayoutType)(XGL_DEVICE device, XGL_FLAGS stageFlags, const uint32_t* pSetBindPoints, XGL_DESCRIPTOR_SET_LAYOUT priorSetLayout, const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO* pSetLayoutInfoList, XGL_DESCRIPTOR_SET_LAYOUT* pSetLayout);
+typedef XGL_RESULT (XGLAPI *xglCreateDescriptorSetLayoutType)(XGL_DEVICE device, XGL_FLAGS stageFlags, const uint32_t* pSetBindPoints, XGL_DESCRIPTOR_SET_LAYOUT priorSetLayout, const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO* pCreateInfo, XGL_DESCRIPTOR_SET_LAYOUT* pSetLayout);
typedef XGL_RESULT (XGLAPI *xglBeginDescriptorPoolUpdateType)(XGL_DEVICE device, XGL_DESCRIPTOR_UPDATE_MODE updateMode);
typedef XGL_RESULT (XGLAPI *xglEndDescriptorPoolUpdateType)(XGL_DEVICE device, XGL_CMD_BUFFER cmd);
typedef XGL_RESULT (XGLAPI *xglCreateDescriptorPoolType)(XGL_DEVICE device, XGL_DESCRIPTOR_POOL_USAGE poolUsage, uint32_t maxSets, const XGL_DESCRIPTOR_POOL_CREATE_INFO* pCreateInfo, XGL_DESCRIPTOR_POOL* pDescriptorPool);
@@ -2698,7 +2704,7 @@
XGL_FLAGS stageFlags, // XGL_SHADER_STAGE_FLAGS
const uint32_t* pSetBindPoints,
XGL_DESCRIPTOR_SET_LAYOUT priorSetLayout,
- const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO* pSetLayoutInfoList,
+ const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO* pCreateInfo,
XGL_DESCRIPTOR_SET_LAYOUT* pSetLayout);
XGL_RESULT XGLAPI xglBeginDescriptorPoolUpdate(
diff --git a/tests/xglrenderframework.cpp b/tests/xglrenderframework.cpp
index 67f4d7a..7c1e0a4 100644
--- a/tests/xglrenderframework.cpp
+++ b/tests/xglrenderframework.cpp
@@ -336,22 +336,22 @@
init(*m_device, XGL_DESCRIPTOR_POOL_USAGE_ONE_SHOT, 1, pool);
// create XGL_DESCRIPTOR_SET_LAYOUT
- vector<XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO> layout;
- layout.resize(m_type_counts.size());
+ vector<XGL_DESCRIPTOR_SET_LAYOUT_BINDING> bindings;
+ bindings.resize(m_type_counts.size());
for (int i = 0; i < m_type_counts.size(); i++) {
- layout[i].sType = XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
- layout[i].descriptorType = m_type_counts[i].type;
- layout[i].count = m_type_counts[i].count;
- layout[i].stageFlags = XGL_SHADER_STAGE_FLAGS_ALL;
- layout[i].immutableSampler = XGL_NULL_HANDLE;
-
- if (i < m_type_counts.size() - 1)
- layout[i].pNext = &layout[i + 1];
- else
- layout[i].pNext = NULL;
+ bindings[i].descriptorType = m_type_counts[i].type;
+ bindings[i].count = m_type_counts[i].count;
+ bindings[i].stageFlags = XGL_SHADER_STAGE_FLAGS_ALL;
+ bindings[i].immutableSampler = XGL_NULL_HANDLE;
}
- m_layout.init(*m_device, 0, layout[0]);
+ // create XGL_DESCRIPTOR_SET_LAYOUT
+ XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO layout = {};
+ layout.sType = XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
+ layout.count = bindings.size();
+ layout.pBinding = &bindings[0];
+
+ m_layout.init(*m_device, 0, layout);
// create XGL_DESCRIPTOR_SET
m_set = alloc_sets(XGL_DESCRIPTOR_SET_USAGE_STATIC, m_layout);
diff --git a/xgl.py b/xgl.py
index e76c545..3514924 100644
--- a/xgl.py
+++ b/xgl.py
@@ -514,7 +514,7 @@
Param("XGL_FLAGS", "stageFlags"),
Param("const uint32_t*", "pSetBindPoints"),
Param("XGL_DESCRIPTOR_SET_LAYOUT", "priorSetLayout"),
- Param("const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO*", "pSetLayoutInfoList"),
+ Param("const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO*", "pCreateInfo"),
Param("XGL_DESCRIPTOR_SET_LAYOUT*", "pSetLayout")]),
Proto("XGL_RESULT", "BeginDescriptorPoolUpdate",