aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorCody Northrop <cody@lunarg.com>2015-07-09 18:08:05 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-17 10:05:20 -0600
commite91de3b255afc4a84b5bd7a6815278646beee60d (patch)
tree1e64e33616e2a78f4e35aaa22828220e41e8e58a /loader
parent860c33b07f995910cf266993a126f67ec641aab1 (diff)
downloadusermoji-e91de3b255afc4a84b5bd7a6815278646beee60d.tar.xz
icd: Support for command pools
Diffstat (limited to 'loader')
-rw-r--r--loader/gpa_helper.h6
-rw-r--r--loader/loader.c2
-rw-r--r--loader/table_ops.h9
-rw-r--r--loader/trampoline.c31
4 files changed, 45 insertions, 3 deletions
diff --git a/loader/gpa_helper.h b/loader/gpa_helper.h
index a6d88085..08d3b60d 100644
--- a/loader/gpa_helper.h
+++ b/loader/gpa_helper.h
@@ -227,6 +227,12 @@ static inline void* globalGetProcAddr(const char *name)
return (void*) vkCreateDynamicDepthStencilState;
if (!strcmp(name, "DestroyDynamicDepthStencilState"))
return (void*) vkDestroyDynamicDepthStencilState;
+ if (!strcmp(name, "CreateCommandPool"))
+ return (void*) vkCreateCommandPool;
+ if (!strcmp(name, "DestroyCommandPool"))
+ return (void*) vkDestroyCommandPool;
+ if (!strcmp(name, "ResetCommandPool"))
+ return (void*) vkResetCommandPool;
if (!strcmp(name, "CreateCommandBuffer"))
return (void*) vkCreateCommandBuffer;
if (!strcmp(name, "DestroyCommandBuffer"))
diff --git a/loader/loader.c b/loader/loader.c
index 20ff816c..75701cf2 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -2331,7 +2331,7 @@ VkResult loader_validate_instance_extensions(
VkResult loader_validate_device_extensions(
struct loader_icd *icd,
- u_int32_t gpu_index,
+ uint32_t gpu_index,
const VkDeviceCreateInfo *pCreateInfo)
{
struct loader_extension_property *extension_prop;
diff --git a/loader/table_ops.h b/loader/table_ops.h
index 601be425..9bcd1296 100644
--- a/loader/table_ops.h
+++ b/loader/table_ops.h
@@ -118,6 +118,9 @@ static inline void loader_init_device_dispatch_table(VkLayerDispatchTable *table
table->DestroyDynamicColorBlendState = (PFN_vkDestroyDynamicColorBlendState) gpa(dev, "vkDestroyDynamicColorBlendState");
table->CreateDynamicDepthStencilState = (PFN_vkCreateDynamicDepthStencilState) gpa(dev, "vkCreateDynamicDepthStencilState");
table->DestroyDynamicDepthStencilState = (PFN_vkDestroyDynamicDepthStencilState) gpa(dev, "vkDestroyDynamicDepthStencilState");
+ table->CreateCommandPool = (PFN_vkCreateCommandPool) gpa(dev, "vkCreateCommandPool");
+ table->DestroyCommandPool = (PFN_vkDestroyCommandPool) gpa(dev, "vkDestroyCommandPool");
+ table->ResetCommandPool = (PFN_vkResetCommandPool) gpa(dev, "vkResetCommandPool");
table->CreateCommandBuffer = (PFN_vkCreateCommandBuffer) gpa(dev, "vkCreateCommandBuffer");
table->DestroyCommandBuffer = (PFN_vkDestroyCommandBuffer) gpa(dev, "vkDestroyCommandBuffer");
table->BeginCommandBuffer = (PFN_vkBeginCommandBuffer) gpa(dev, "vkBeginCommandBuffer");
@@ -347,6 +350,12 @@ static inline void *loader_lookup_device_dispatch_table(
return (void *) table->CreateDynamicDepthStencilState;
if (!strcmp(name, "DestroyDynamicDepthStencilState"))
return (void *) table->DestroyDynamicDepthStencilState;
+ if (!strcmp(name, "CreateCommandPool"))
+ return (void *) table->CreateCommandPool;
+ if (!strcmp(name, "DestroyCommandPool"))
+ return (void *) table->DestroyCommandPool;
+ if (!strcmp(name, "ResetCommandPool"))
+ return (void *) table->ResetCommandPool;
if (!strcmp(name, "CreateCommandBuffer"))
return (void *) table->CreateCommandBuffer;
if (!strcmp(name, "DestroyCommandBuffer"))
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 0e102741..183062c4 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -1052,6 +1052,33 @@ LOADER_EXPORT VkResult VKAPI vkDestroyDynamicDepthStencilState(VkDevice device,
return disp->DestroyDynamicDepthStencilState(device, dynamicDepthStencilState);
}
+LOADER_EXPORT VkResult VKAPI vkCreateCommandPool(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool)
+{
+ const VkLayerDispatchTable *disp;
+
+ disp = loader_get_dispatch(device);
+
+ return disp->CreateCommandPool(device, pCreateInfo, pCmdPool);
+}
+
+LOADER_EXPORT VkResult VKAPI vkDestroyCommandPool(VkDevice device, VkCmdPool cmdPool)
+{
+ const VkLayerDispatchTable *disp;
+
+ disp = loader_get_dispatch(device);
+
+ return disp->DestroyCommandPool(device, cmdPool);
+}
+
+LOADER_EXPORT VkResult VKAPI vkResetCommandPool(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags)
+{
+ const VkLayerDispatchTable *disp;
+
+ disp = loader_get_dispatch(device);
+
+ return disp->ResetCommandPool(device, cmdPool, flags);
+}
+
LOADER_EXPORT VkResult VKAPI vkCreateCommandBuffer(VkDevice device, const VkCmdBufferCreateInfo* pCreateInfo, VkCmdBuffer* pCmdBuffer)
{
const VkLayerDispatchTable *disp;
@@ -1094,13 +1121,13 @@ LOADER_EXPORT VkResult VKAPI vkEndCommandBuffer(VkCmdBuffer cmdBuffer)
return disp->EndCommandBuffer(cmdBuffer);
}
-LOADER_EXPORT VkResult VKAPI vkResetCommandBuffer(VkCmdBuffer cmdBuffer)
+LOADER_EXPORT VkResult VKAPI vkResetCommandBuffer(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(cmdBuffer);
- return disp->ResetCommandBuffer(cmdBuffer);
+ return disp->ResetCommandBuffer(cmdBuffer, flags);
}
LOADER_EXPORT void VKAPI vkCmdBindPipeline(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline)