aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2015-04-17 14:11:39 -0500
committerMark Lobodzinski <mark@lunarg.com>2015-04-17 14:14:58 -0500
commit1cfc77227fd92392bf16e5aa359edbc18ef3547b (patch)
tree25fd6835939af7a21d7d06923f9df5f4645990c9
parent410cf39ab1d94729e7a4261ce18d32c5c8dcedeb (diff)
downloadusermoji-1cfc77227fd92392bf16e5aa359edbc18ef3547b.tar.xz
vulkan: Update vulkan.h for revision 89 -- Bug #13743
Generalizing the VkDescriptorSetLayoutChain object.
-rw-r--r--demos/cube.c18
-rw-r--r--demos/tri.c18
-rw-r--r--icd/nulldrv/nulldrv.c34
-rw-r--r--icd/nulldrv/nulldrv.h5
-rw-r--r--include/vkDbg.h2
-rw-r--r--include/vkLayer.h2
-rw-r--r--include/vulkan.h32
-rw-r--r--layers/draw_state.cpp10
-rw-r--r--layers/object_track.h6
-rw-r--r--layers/param_checker.cpp5
-rwxr-xr-xvulkan.py15
11 files changed, 84 insertions, 63 deletions
diff --git a/demos/cube.c b/demos/cube.c
index 1be3c8c4..5ebc5b81 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -243,7 +243,7 @@ struct demo {
} uniform_data;
VkCmdBuffer cmd; // Buffer for initialization commands
- VkDescriptorSetLayoutChain desc_layout_chain;
+ VkPipelineLayout pipeline_layout;
VkDescriptorSetLayout desc_layout;
VkPipeline pipeline;
@@ -1143,8 +1143,16 @@ static void demo_prepare_descriptor_layout(struct demo *demo)
&descriptor_layout, &demo->desc_layout);
assert(!err);
- err = vkCreateDescriptorSetLayoutChain(demo->device,
- 1, &demo->desc_layout, &demo->desc_layout_chain);
+ const VkPipelineLayoutCreateInfo pPipelineLayoutCreateInfo = {
+ .sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
+ .pNext = NULL,
+ .descriptorSetCount = 1,
+ .pSetLayouts = &demo->desc_layout,
+ };
+
+ err = vkCreatePipelineLayout(demo->device,
+ &pPipelineLayoutCreateInfo,
+ &demo->pipeline_layout);
assert(!err);
}
@@ -1293,7 +1301,7 @@ static void demo_prepare_pipeline(struct demo *demo)
memset(&pipeline, 0, sizeof(pipeline));
pipeline.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
- pipeline.pSetLayoutChain = demo->desc_layout_chain;
+ pipeline.layout = demo->pipeline_layout;
memset(&ia, 0, sizeof(ia));
ia.sType = VK_STRUCTURE_TYPE_PIPELINE_IA_STATE_CREATE_INFO;
@@ -1831,7 +1839,7 @@ static void demo_cleanup(struct demo *demo)
vkDestroyObject(demo->depth_stencil);
vkDestroyObject(demo->pipeline);
- vkDestroyObject(demo->desc_layout_chain);
+ vkDestroyObject(demo->pipeline_layout);
vkDestroyObject(demo->desc_layout);
for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
diff --git a/demos/tri.c b/demos/tri.c
index 40f7f824..4bc4ed91 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -78,7 +78,7 @@ struct demo {
} vertices;
VkCmdBuffer cmd; // Buffer for initialization commands
- VkDescriptorSetLayoutChain desc_layout_chain;
+ VkPipelineLayout pipeline_layout;
VkDescriptorSetLayout desc_layout;
VkPipeline pipeline;
@@ -793,8 +793,16 @@ static void demo_prepare_descriptor_layout(struct demo *demo)
&descriptor_layout, &demo->desc_layout);
assert(!err);
- err = vkCreateDescriptorSetLayoutChain(demo->device,
- 1, &demo->desc_layout, &demo->desc_layout_chain);
+ const VkPipelineLayoutCreateInfo pPipelineLayoutCreateInfo = {
+ .sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
+ .pNext = NULL,
+ .descriptorSetCount = 1,
+ .pSetLayouts = &demo->desc_layout,
+ };
+
+ err = vkCreatePipelineLayout(demo->device,
+ &pPipelineLayoutCreateInfo,
+ &demo->pipeline_layout);
assert(!err);
}
@@ -883,7 +891,7 @@ static void demo_prepare_pipeline(struct demo *demo)
memset(&pipeline, 0, sizeof(pipeline));
pipeline.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
- pipeline.pSetLayoutChain = demo->desc_layout_chain;
+ pipeline.layout = demo->pipeline_layout;
vi = demo->vertices.vi;
@@ -1357,7 +1365,7 @@ static void demo_cleanup(struct demo *demo)
vkDestroyObject(demo->depth_stencil);
vkDestroyObject(demo->pipeline);
- vkDestroyObject(demo->desc_layout_chain);
+ vkDestroyObject(demo->pipeline_layout);
vkDestroyObject(demo->desc_layout);
vkQueueBindObjectMemory(demo->queue, demo->vertices.buf, 0, VK_NULL_HANDLE, 0);
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index e00c8a35..e94b7676 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -521,20 +521,19 @@ static VkResult nulldrv_desc_layout_create(struct nulldrv_dev *dev,
return VK_SUCCESS;
}
-static VkResult nulldrv_desc_layout_chain_create(struct nulldrv_dev *dev,
- uint32_t setLayoutArrayCount,
- const VkDescriptorSetLayout *pSetLayoutArray,
- struct nulldrv_desc_layout_chain **chain_ret)
+static VkResult nulldrv_pipeline_layout_create(struct nulldrv_dev *dev,
+ const VkPipelineLayoutCreateInfo* pCreateInfo,
+ struct nulldrv_pipeline_layout **pipeline_layout_ret)
{
- struct nulldrv_desc_layout_chain *chain;
+ struct nulldrv_pipeline_layout *pipeline_layout;
- chain = (struct nulldrv_desc_layout_chain *)
- nulldrv_base_create(dev, sizeof(*chain),
- VK_DBG_OBJECT_DESCRIPTOR_SET_LAYOUT_CHAIN);
- if (!chain)
+ pipeline_layout = (struct nulldrv_pipeline_layout *)
+ nulldrv_base_create(dev, sizeof(*pipeline_layout),
+ VK_DBG_OBJECT_PIPELINE_LAYOUT);
+ if (!pipeline_layout)
return VK_ERROR_OUT_OF_HOST_MEMORY;
- *chain_ret = chain;
+ *pipeline_layout_ret = pipeline_layout;
return VK_SUCCESS;
}
@@ -1966,18 +1965,17 @@ ICD_EXPORT VkResult VKAPI vkCreateDescriptorSetLayout(
(struct nulldrv_desc_layout **) pSetLayout);
}
-ICD_EXPORT VkResult VKAPI vkCreateDescriptorSetLayoutChain(
- VkDevice device,
- uint32_t setLayoutArrayCount,
- const VkDescriptorSetLayout* pSetLayoutArray,
- VkDescriptorSetLayoutChain* pLayoutChain)
+ICD_EXPORT VkResult VKAPI vkCreatePipelineLayout(
+ VkDevice device,
+ const VkPipelineLayoutCreateInfo* pCreateInfo,
+ VkPipelineLayout* pPipelineLayout)
{
NULLDRV_LOG_FUNC;
struct nulldrv_dev *dev = nulldrv_dev(device);
- return nulldrv_desc_layout_chain_create(dev,
- setLayoutArrayCount, pSetLayoutArray,
- (struct nulldrv_desc_layout_chain **) pLayoutChain);
+ return nulldrv_pipeline_layout_create(dev,
+ pCreateInfo,
+ (struct nulldrv_pipeline_layout **) pPipelineLayout);
}
ICD_EXPORT VkResult VKAPI vkBeginDescriptorPoolUpdate(
diff --git a/icd/nulldrv/nulldrv.h b/icd/nulldrv/nulldrv.h
index 6f9895b4..06147dd0 100644
--- a/icd/nulldrv/nulldrv.h
+++ b/icd/nulldrv/nulldrv.h
@@ -23,7 +23,7 @@
*/
#ifndef NULLDRV_H
-#define NULLDRV_H
+#define NULLDRV_H
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>
@@ -142,7 +142,7 @@ struct nulldrv_desc_layout {
struct nulldrv_obj obj;
};
-struct nulldrv_desc_layout_chain {
+struct nulldrv_pipeline_layout {
struct nulldrv_obj obj;
};
@@ -151,7 +151,6 @@ struct nulldrv_shader {
};
-
struct nulldrv_pipeline {
struct nulldrv_obj obj;
struct nulldrv_dev *dev;
diff --git a/include/vkDbg.h b/include/vkDbg.h
index bf27d52f..43a55993 100644
--- a/include/vkDbg.h
+++ b/include/vkDbg.h
@@ -106,7 +106,7 @@ typedef enum _VK_DBG_OBJECT_TYPE
VK_DBG_OBJECT_BUFFER,
VK_DBG_OBJECT_BUFFER_VIEW,
VK_DBG_OBJECT_DESCRIPTOR_SET_LAYOUT,
- VK_DBG_OBJECT_DESCRIPTOR_SET_LAYOUT_CHAIN,
+ VK_DBG_OBJECT_PIPELINE_LAYOUT,
VK_DBG_OBJECT_DESCRIPTOR_POOL,
VK_DBG_OBJECT_TYPE_BEGIN_RANGE = VK_DBG_OBJECT_UNKNOWN,
diff --git a/include/vkLayer.h b/include/vkLayer.h
index 39602e2d..70c36a98 100644
--- a/include/vkLayer.h
+++ b/include/vkLayer.h
@@ -88,9 +88,9 @@ typedef struct VkLayerDispatchTable_
PFN_vkStorePipeline StorePipeline;
PFN_vkLoadPipeline LoadPipeline;
PFN_vkLoadPipelineDerivative LoadPipelineDerivative;
+ PFN_vkCreatePipelineLayout CreatePipelineLayout;
PFN_vkCreateSampler CreateSampler;
PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout;
- PFN_vkCreateDescriptorSetLayoutChain CreateDescriptorSetLayoutChain;
PFN_vkBeginDescriptorPoolUpdate BeginDescriptorPoolUpdate;
PFN_vkEndDescriptorPoolUpdate EndDescriptorPoolUpdate;
PFN_vkCreateDescriptorPool CreateDescriptorPool;
diff --git a/include/vulkan.h b/include/vulkan.h
index b9fce560..98c32852 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -69,10 +69,10 @@ VK_DEFINE_SUBCLASS_HANDLE(VkColorAttachmentView, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkDepthStencilView, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkShader, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkPipeline, VkObject)
+VK_DEFINE_SUBCLASS_HANDLE(VkPipelineLayout, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkSampler, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkDescriptorSet, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkDescriptorSetLayout, VkObject)
-VK_DEFINE_SUBCLASS_HANDLE(VkDescriptorSetLayoutChain, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkDescriptorPool, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkDynamicStateObject, VkObject)
VK_DEFINE_SUBCLASS_HANDLE(VkDynamicVpState, VkDynamicStateObject)
@@ -844,8 +844,9 @@ typedef enum VkStructureType_
VK_STRUCTURE_TYPE_UPDATE_BUFFERS = 49,
VK_STRUCTURE_TYPE_UPDATE_AS_COPY = 50,
VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 51,
+ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 52,
- VK_ENUM_RANGE(STRUCTURE_TYPE, APPLICATION_INFO, INSTANCE_CREATE_INFO)
+ VK_ENUM_RANGE(STRUCTURE_TYPE, APPLICATION_INFO, PIPELINE_LAYOUT_CREATE_INFO)
} VkStructureType;
// ------------------------------------------------------------------------------------------------
@@ -1713,7 +1714,7 @@ typedef struct VkComputePipelineCreateInfo_
const void* pNext; // Pointer to next structure
VkPipelineShader cs;
VkPipelineCreateFlags flags; // Pipeline creation flags
- VkDescriptorSetLayoutChain setLayoutChain;
+ VkPipelineLayout layout; // Interface layout of the pipeline
uint32_t localSizeX;
uint32_t localSizeY;
uint32_t localSizeZ;
@@ -1858,9 +1859,17 @@ typedef struct VkGraphicsPipelineCreateInfo_
VkStructureType sType; // Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
const void* pNext; // Pointer to next structure
VkPipelineCreateFlags flags; // Pipeline creation flags
- VkDescriptorSetLayoutChain pSetLayoutChain;
+ VkPipelineLayout layout; // Interface layout of the pipeline
} VkGraphicsPipelineCreateInfo;
+typedef struct VkPipelineLayoutCreateInfo_
+{
+ VkStructureType sType; // Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
+ const void* pNext; // Pointer to next structure
+ uint32_t descriptorSetCount; // Number of descriptor sets interfaced by the pipeline
+ const VkDescriptorSetLayout* pSetLayouts; // Array of <setCount> number of descriptor set layout objects defining the layout of the
+} VkPipelineLayoutCreateInfo;
+
typedef struct VkSamplerCreateInfo_
{
VkStructureType sType; // Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
@@ -2128,9 +2137,9 @@ typedef VkResult (VKAPI *PFN_vkCreateComputePipeline)(VkDevice device, const VkC
typedef VkResult (VKAPI *PFN_vkStorePipeline)(VkPipeline pipeline, size_t* pDataSize, void* pData);
typedef VkResult (VKAPI *PFN_vkLoadPipeline)(VkDevice device, size_t dataSize, const void* pData, VkPipeline* pPipeline);
typedef VkResult (VKAPI *PFN_vkLoadPipelineDerivative)(VkDevice device, size_t dataSize, const void* pData, VkPipeline basePipeline, VkPipeline* pPipeline);
+typedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout);
typedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, VkSampler* pSampler);
typedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout);
-typedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayoutChain)(VkDevice device, uint32_t setLayoutArrayCount, const VkDescriptorSetLayout* pSetLayoutArray, VkDescriptorSetLayoutChain* pLayoutChain);
typedef VkResult (VKAPI *PFN_vkBeginDescriptorPoolUpdate)(VkDevice device, VkDescriptorUpdateMode updateMode);
typedef VkResult (VKAPI *PFN_vkEndDescriptorPoolUpdate)(VkDevice device, VkCmdBuffer cmd);
typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, VkDescriptorPoolUsage poolUsage, uint32_t maxSets, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
@@ -2540,6 +2549,13 @@ VkResult VKAPI vkLoadPipelineDerivative(
VkPipeline basePipeline,
VkPipeline* pPipeline);
+// Pipeline layout functions
+
+VkResult VKAPI vkCreatePipelineLayout(
+ VkDevice device,
+ const VkPipelineLayoutCreateInfo* pCreateInfo,
+ VkPipelineLayout* pPipelineLayout);
+
// Sampler functions
VkResult VKAPI vkCreateSampler(
@@ -2554,12 +2570,6 @@ VkResult VKAPI vkCreateDescriptorSetLayout(
const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
VkDescriptorSetLayout* pSetLayout);
-VkResult VKAPI vkCreateDescriptorSetLayoutChain(
- VkDevice device,
- uint32_t setLayoutArrayCount,
- const VkDescriptorSetLayout* pSetLayoutArray,
- VkDescriptorSetLayoutChain* pLayoutChain);
-
VkResult VKAPI vkBeginDescriptorPoolUpdate(
VkDevice device,
VkDescriptorUpdateMode updateMode);
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index ab49bce8..852eb915 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1684,11 +1684,11 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDescriptorSetLayout(VkDevice device, cons
return result;
}
-VkResult VKAPI vkCreateDescriptorSetLayoutChain(VkDevice device, uint32_t setLayoutArrayCount, const VkDescriptorSetLayout* pSetLayoutArray, VkDescriptorSetLayoutChain* pLayoutChain)
+VkResult VKAPI vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout)
{
- VkResult result = nextTable.CreateDescriptorSetLayoutChain(device, setLayoutArrayCount, pSetLayoutArray, pLayoutChain);
+ VkResult result = nextTable.CreatePipelineLayout(device, pCreateInfo, pPipelineLayout);
if (VK_SUCCESS == result) {
- // TODO : Need to capture the layout chains
+ // TODO : Need to capture the pipeline layout
}
return result;
}
@@ -2759,8 +2759,8 @@ VK_LAYER_EXPORT void* VKAPI vkGetProcAddr(VkPhysicalDevice gpu, const char* func
return (void*) vkCreateSampler;
if (!strcmp(funcName, "vkCreateDescriptorSetLayout"))
return (void*) vkCreateDescriptorSetLayout;
- if (!strcmp(funcName, "vkCreateDescriptorSetLayoutChain"))
- return (void*) vkCreateDescriptorSetLayoutChain;
+ if (!strcmp(funcName, "vkCreatePipelineLayout"))
+ return (void*) vkCreatePipelineLayout;
if (!strcmp(funcName, "vkBeginDescriptorPoolUpdate"))
return (void*) vkBeginDescriptorPoolUpdate;
if (!strcmp(funcName, "vkEndDescriptorPoolUpdate"))
diff --git a/layers/object_track.h b/layers/object_track.h
index 11dbedaf..64e95b00 100644
--- a/layers/object_track.h
+++ b/layers/object_track.h
@@ -67,7 +67,7 @@ typedef enum _VK_OBJECT_TYPE
VkObjectTypeSemaphore,
VkObjectTypeShader,
VkObjectTypeDescriptorSetLayout,
- VkObjectTypeDescriptorSetLayoutChain,
+ VkObjectTypePipelineLayout,
VkObjectTypeBuffer,
VkObjectTypePipeline,
VkObjectTypeDevice,
@@ -105,10 +105,10 @@ static const char* string_VK_OBJECT_TYPE(VK_OBJECT_TYPE type) {
return "FENCE";
case VkObjectTypeDescriptorSetLayout:
return "DESCRIPTOR_SET_LAYOUT";
- case VkObjectTypeDescriptorSetLayoutChain:
- return "DESCRIPTOR_SET_LAYOUT_CHAIN";
case VkObjectTypeDeviceMemory:
return "DEVICE_MEMORY";
+ case VkObjectTypePipelineLayout:
+ return "PIPELINE_LAYOUT";
case VkObjectTypeQueue:
return "QUEUE";
case VkObjectTypeImage:
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index cbb341a8..e3058a5d 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -985,10 +985,9 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDescriptorSetLayout(VkDevice device, cons
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkCreateDescriptorSetLayoutChain(VkDevice device, uint32_t setLayoutArrayCount, const VkDescriptorSetLayout* pSetLayoutArray, VkDescriptorSetLayoutChain* pLayoutChain)
+VK_LAYER_EXPORT VkResult VKAPI vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout)
{
-
- VkResult result = nextTable.CreateDescriptorSetLayoutChain(device, setLayoutArrayCount, pSetLayoutArray, pLayoutChain);
+ VkResult result = nextTable.CreatePipelineLayout(device, pCreateInfo, pPipelineLayout);
return result;
}
diff --git a/vulkan.py b/vulkan.py
index 9a708fa2..72cb9cd1 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -202,7 +202,7 @@ core = Extension(
"VkSampler",
"VkDescriptorSet",
"VkDescriptorSetLayout",
- "VkDescriptorSetLayoutChain",
+ "VkPipelineLayout",
"VkDescriptorPool",
"VkDynamicStateObject",
"VkDynamicVpState",
@@ -532,6 +532,11 @@ core = Extension(
Param("VkPipeline", "basePipeline"),
Param("VkPipeline*", "pPipeline")]),
+ Proto("VkResult", "CreatePipelineLayout",
+ [Param("VkDevice", "device"),
+ Param("const VkPipelineLayoutCreateInfo*", "pCreateInfo"),
+ Param("VkPipelineLayout*", "pPipelineLayout")]),
+
Proto("VkResult", "CreateSampler",
[Param("VkDevice", "device"),
Param("const VkSamplerCreateInfo*", "pCreateInfo"),
@@ -542,12 +547,6 @@ core = Extension(
Param("const VkDescriptorSetLayoutCreateInfo*", "pCreateInfo"),
Param("VkDescriptorSetLayout*", "pSetLayout")]),
- Proto("VkResult", "CreateDescriptorSetLayoutChain",
- [Param("VkDevice", "device"),
- Param("uint32_t", "setLayoutArrayCount"),
- Param("const VkDescriptorSetLayout*", "pSetLayoutArray"),
- Param("VkDescriptorSetLayoutChain*", "pLayoutChain")]),
-
Proto("VkResult", "BeginDescriptorPoolUpdate",
[Param("VkDevice", "device"),
Param("VkDescriptorUpdateMode", "updateMode")]),
@@ -976,10 +975,10 @@ object_list = [
"VkDepthStencilView",
"VkShader",
"VkPipeline",
+ "VkPipelineLayout",
"VkSampler",
"VkDescriptorSet",
"VkDescriptorSetLayout",
- "VkDescriptorSetLayoutChain",
"VkDescriptorPool",
"VkDynamicStateObject",
"VkCmdBuffer",