aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2015-03-26 15:04:41 +0800
committerChia-I Wu <olv@lunarg.com>2015-04-16 17:33:27 +0800
commita2aa86389a06b8d092d16b757cbb6b9bf83f539d (patch)
tree8a4f5ac9e6969231e8ae24c648b65f4c434f3aeb
parent63ea926a2159f191a55d8540376277d177253272 (diff)
downloadusermoji-a2aa86389a06b8d092d16b757cbb6b9bf83f539d.tar.xz
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.
-rw-r--r--demos/cube.c33
-rw-r--r--demos/tri.c10
-rw-r--r--icd/nulldrv/nulldrv.c4
-rw-r--r--include/xgl.h16
-rw-r--r--xgl.py2
5 files changed, 39 insertions, 26 deletions
diff --git a/demos/cube.c b/demos/cube.c
index 9bf56af5..ea4b12bf 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -1204,29 +1204,32 @@ void demo_prepare_cube_data_buffer(struct demo *demo)
static void demo_prepare_descriptor_layout(struct demo *demo)
{
- const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO descriptor_layout_fs = {
- .sType = XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
- .pNext = NULL,
- .descriptorType = XGL_DESCRIPTOR_TYPE_SAMPLER_TEXTURE,
- .count = DEMO_TEXTURE_COUNT,
- .stageFlags = XGL_SHADER_STAGE_FLAGS_FRAGMENT_BIT,
- .immutableSampler = XGL_NULL_HANDLE,
+ const XGL_DESCRIPTOR_SET_LAYOUT_BINDING layout_bindings[2] = {
+ [0] = {
+ .descriptorType = XGL_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
+ .count = 1,
+ .stageFlags = XGL_SHADER_STAGE_FLAGS_VERTEX_BIT,
+ .immutableSampler = XGL_NULL_HANDLE,
+ },
+ [1] = {
+ .descriptorType = XGL_DESCRIPTOR_TYPE_SAMPLER_TEXTURE,
+ .count = DEMO_TEXTURE_COUNT,
+ .stageFlags = XGL_SHADER_STAGE_FLAGS_FRAGMENT_BIT,
+ .immutableSampler = XGL_NULL_HANDLE,
+ },
};
- const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO descriptor_layout_vs = {
+ const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO descriptor_layout = {
.sType = XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
- .pNext = &descriptor_layout_fs,
- .descriptorType = XGL_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
- .count = 1,
- .stageFlags = XGL_SHADER_STAGE_FLAGS_VERTEX_BIT,
- .immutableSampler = XGL_NULL_HANDLE,
+ .pNext = NULL,
+ .count = 2,
+ .pBinding = layout_bindings,
};
-
const uint32_t bind_point = 0;
XGL_RESULT err;
err = xglCreateDescriptorSetLayout(demo->device,
XGL_SHADER_STAGE_FLAGS_ALL, &bind_point,
- XGL_NULL_HANDLE, &descriptor_layout_vs,
+ XGL_NULL_HANDLE, &descriptor_layout,
&demo->desc_layout);
assert(!err);
}
diff --git a/demos/tri.c b/demos/tri.c
index a643d75c..c0591e73 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -845,14 +845,18 @@ static void demo_prepare_vertices(struct demo *demo)
static void demo_prepare_descriptor_layout(struct demo *demo)
{
- const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO descriptor_layout = {
- .sType = XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
- .pNext = NULL,
+ const XGL_DESCRIPTOR_SET_LAYOUT_BINDING layout_binding = {
.descriptorType = XGL_DESCRIPTOR_TYPE_SAMPLER_TEXTURE,
.count = DEMO_TEXTURE_COUNT,
.stageFlags = XGL_SHADER_STAGE_FLAGS_FRAGMENT_BIT,
.immutableSampler = XGL_NULL_HANDLE,
};
+ const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO descriptor_layout = {
+ .sType = XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
+ .pNext = NULL,
+ .count = 1,
+ .pBinding = &layout_binding,
+ };
const uint32_t bind_point = 0;
XGL_RESULT err;
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index 1f9309e2..70dce00e 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -1887,7 +1887,7 @@ ICD_EXPORT XGL_RESULT XGLAPI xglCreateDescriptorSetLayout(
XGL_FLAGS stageFlags,
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)
{
NULLDRV_LOG_FUNC;
@@ -1895,7 +1895,7 @@ ICD_EXPORT XGL_RESULT XGLAPI xglCreateDescriptorSetLayout(
struct nulldrv_desc_layout *prior_layout = nulldrv_desc_layout(priorSetLayout);
return nulldrv_desc_layout_create(dev, stageFlags, pSetBindPoints,
- prior_layout, pSetLayoutInfoList,
+ prior_layout, pCreateInfo,
(struct nulldrv_desc_layout **) pSetLayout);
}
diff --git a/include/xgl.h b/include/xgl.h
index a9314ec4..5d80dfa4 100644
--- a/include/xgl.h
+++ b/include/xgl.h
@@ -1815,14 +1815,20 @@ typedef struct _XGL_SHADER_CREATE_INFO
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 *xglStorePipelineType)(XGL_PIPELINE pipeline, size_t*
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_RESULT XGLAPI xglCreateDescriptorSetLayout(
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/xgl.py b/xgl.py
index e76c545a..35149241 100644
--- a/xgl.py
+++ b/xgl.py
@@ -514,7 +514,7 @@ core = Extension(
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",