update vulkan.h for multi-level command buffers (V121)
With minimal changes to keep everything building and functioning.
diff --git a/icd/intel/cmd.c b/icd/intel/cmd.c
index 9463fd5..bfdc7be 100644
--- a/icd/intel/cmd.c
+++ b/icd/intel/cmd.c
@@ -312,33 +312,13 @@
VkResult intel_cmd_begin(struct intel_cmd *cmd, const VkCmdBufferBeginInfo *info)
{
- const VkCmdBufferGraphicsBeginInfo *ginfo;
VkResult ret;
uint32_t i;
- VkFlags flags = 0;
cmd_reset(cmd);
- while (info != NULL) {
- switch (info->sType) {
- case VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO:
- flags = info->flags;
- break;
- case VK_STRUCTURE_TYPE_CMD_BUFFER_GRAPHICS_BEGIN_INFO:
- ginfo = (const VkCmdBufferGraphicsBeginInfo *) info;
- cmd_begin_render_pass(cmd, intel_render_pass(ginfo->renderPassContinue.renderPass),
- intel_fb(ginfo->renderPassContinue.framebuffer));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- break;
- }
-
- info = (const VkCmdBufferBeginInfo*) info->pNext;
- }
-
- if (cmd->flags != flags) {
- cmd->flags = flags;
+ if (cmd->flags != info->flags) {
+ cmd->flags = info->flags;
cmd->writers[INTEL_CMD_WRITER_BATCH].size = 0;
}
@@ -346,7 +326,7 @@
const uint32_t size = cmd->dev->gpu->max_batch_buffer_size / 2;
uint32_t divider = 1;
- if (flags & VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT)
+ if (info->flags & VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT)
divider *= 4;
cmd->writers[INTEL_CMD_WRITER_BATCH].size = size / divider;
diff --git a/icd/intel/cmd_pipeline.c b/icd/intel/cmd_pipeline.c
index f7bca5f..5e7cf67 100644
--- a/icd/intel/cmd_pipeline.c
+++ b/icd/intel/cmd_pipeline.c
@@ -3624,10 +3624,19 @@
}
ICD_EXPORT void VKAPI vkCmdEndRenderPass(
- VkCmdBuffer cmdBuffer,
- VkRenderPass renderPass)
+ VkCmdBuffer cmdBuffer)
{
struct intel_cmd *cmd = intel_cmd(cmdBuffer);
- cmd_end_render_pass(cmd, (struct intel_render_pass *) renderPass);
+ cmd_end_render_pass(cmd);
+}
+
+ICD_EXPORT void VKAPI vkCmdExecuteCommands(
+ VkCmdBuffer cmdBuffer,
+ uint32_t cmdBuffersCount,
+ const VkCmdBuffer* pCmdBuffers)
+{
+ struct intel_cmd *cmd = intel_cmd(cmdBuffer);
+
+ cmd->result = VK_ERROR_UNKNOWN;
}
diff --git a/icd/intel/cmd_priv.h b/icd/intel/cmd_priv.h
index 1e42c07..df0a072 100644
--- a/icd/intel/cmd_priv.h
+++ b/icd/intel/cmd_priv.h
@@ -493,8 +493,7 @@
cmd->bind.fb = fb;
}
-static inline void cmd_end_render_pass(struct intel_cmd *cmd,
- const struct intel_render_pass *rp)
+static inline void cmd_end_render_pass(struct intel_cmd *cmd)
{
//note what to do if rp != bound rp
cmd->bind.render_pass = 0;