misc: Move to Vulkan header version 0.222
diff --git a/demos/cube.c b/demos/cube.c
index f1202cb..44c34b7 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -492,16 +492,15 @@
.pNext = NULL,
.commandPool = demo->cmd_pool,
.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
- .bufferCount = 1,
+ .commandBufferCount = 1,
};
err = vkAllocateCommandBuffers(demo->device, &cmd, &demo->cmd);
assert(!err);
- VkCommandBufferBeginInfo cmd_buf_info = {
- .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+ VkCommandBufferInheritanceInfo cmd_buf_hinfo = {
+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
.pNext = NULL,
- .flags = 0,
.renderPass = VK_NULL_HANDLE,
.subpass = 0,
.framebuffer = VK_NULL_HANDLE,
@@ -509,6 +508,12 @@
.queryFlags = 0,
.pipelineStatistics = 0,
};
+ VkCommandBufferBeginInfo cmd_buf_info = {
+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+ .pNext = NULL,
+ .flags = 0,
+ .pInheritanceInfo = &cmd_buf_hinfo,
+ };
err = vkBeginCommandBuffer(demo->cmd, &cmd_buf_info);
assert(!err);
}
@@ -547,15 +552,14 @@
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
- vkCmdPipelineBarrier(demo->cmd, src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier(demo->cmd, src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
}
static void demo_draw_build_cmd(struct demo *demo, VkCommandBuffer cmd_buf)
{
- const VkCommandBufferBeginInfo cmd_buf_info = {
- .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+ VkCommandBufferInheritanceInfo cmd_buf_hinfo = {
+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
.pNext = NULL,
- .flags = 0,
.renderPass = VK_NULL_HANDLE,
.subpass = 0,
.framebuffer = VK_NULL_HANDLE,
@@ -563,6 +567,12 @@
.queryFlags = 0,
.pipelineStatistics = 0,
};
+ const VkCommandBufferBeginInfo cmd_buf_info = {
+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+ .pNext = NULL,
+ .flags = 0,
+ .pInheritanceInfo = &cmd_buf_hinfo,
+ };
const VkClearValue clear_values[2] = {
[0] = { .color.float32 = { 0.2f, 0.2f, 0.2f, 0.2f } },
[1] = { .depthStencil = { 1.0f, 0 } },
@@ -625,7 +635,7 @@
prePresentBarrier.image = demo->buffers[demo->current_buffer].image;
VkImageMemoryBarrier *pmemory_barrier = &prePresentBarrier;
vkCmdPipelineBarrier(cmd_buf, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
- 0, 1, (const void * const*)&pmemory_barrier);
+ 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
err = vkEndCommandBuffer(cmd_buf);
@@ -776,7 +786,7 @@
VkExtent2D swapchainExtent;
// width and height are either both -1, or both not -1.
- if (surfCapabilities.currentExtent.width == -1)
+ if (surfCapabilities.currentExtent.width == (uint32_t) -1)
{
// If the surface size is undefined, the size is set to
// the size of the images requested.
@@ -1214,7 +1224,7 @@
.pNext = NULL,
.magFilter = VK_FILTER_NEAREST,
.minFilter = VK_FILTER_NEAREST,
- .mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE,
+ .mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST,
.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
@@ -1652,7 +1662,7 @@
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
.pNext = NULL,
.descriptorPool = demo->desc_pool,
- .setLayoutCount = 1,
+ .descriptorSetCount = 1,
.pSetLayouts = &demo->desc_layout
};
err = vkAllocateDescriptorSets(demo->device, &alloc_info, &demo->desc_set);
@@ -1729,7 +1739,7 @@
.pNext = NULL,
.commandPool = demo->cmd_pool,
.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
- .bufferCount = 1,
+ .commandBufferCount = 1,
};
demo_prepare_buffers(demo);
@@ -2247,9 +2257,9 @@
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
.pNext = NULL,
.pApplicationInfo = &app,
- .enabledLayerNameCount = enabled_layer_count,
+ .enabledLayerCount = enabled_layer_count,
.ppEnabledLayerNames = (const char *const*) ((demo->validate) ? instance_validation_layers : NULL),
- .enabledExtensionNameCount = enabled_extension_count,
+ .enabledExtensionCount = enabled_extension_count,
.ppEnabledExtensionNames = (const char *const*) extension_names,
};
@@ -2423,9 +2433,9 @@
.pNext = NULL,
.queueCreateInfoCount = 1,
.pQueueCreateInfos = &queue,
- .enabledLayerNameCount = enabled_layer_count,
+ .enabledLayerCount = enabled_layer_count,
.ppEnabledLayerNames = (const char *const*) ((demo->validate) ? device_validation_layers : NULL),
- .enabledExtensionNameCount = enabled_extension_count,
+ .enabledExtensionCount = enabled_extension_count,
.ppEnabledExtensionNames = (const char *const*) extension_names,
.pEnabledFeatures = NULL, // If specific features are required, pass them in here
};
diff --git a/demos/tri.c b/demos/tri.c
index 391a118..8773e54 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -315,16 +315,15 @@
.pNext = NULL,
.commandPool = demo->cmd_pool,
.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
- .bufferCount = 1,
+ .commandBufferCount = 1,
};
err = vkAllocateCommandBuffers(demo->device, &cmd, &demo->setup_cmd);
assert(!err);
- VkCommandBufferBeginInfo cmd_buf_info = {
- .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+ VkCommandBufferInheritanceInfo cmd_buf_hinfo = {
+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
.pNext = NULL,
- .flags = 0,
.renderPass = VK_NULL_HANDLE,
.subpass = 0,
.framebuffer = VK_NULL_HANDLE,
@@ -332,6 +331,12 @@
.queryFlags = 0,
.pipelineStatistics = 0,
};
+ VkCommandBufferBeginInfo cmd_buf_info = {
+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+ .pNext = NULL,
+ .flags = 0,
+ .pInheritanceInfo = &cmd_buf_hinfo,
+ };
err = vkBeginCommandBuffer(demo->setup_cmd, &cmd_buf_info);
assert(!err);
}
@@ -370,21 +375,26 @@
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
- vkCmdPipelineBarrier(demo->setup_cmd, src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier(demo->setup_cmd, src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
}
static void demo_draw_build_cmd(struct demo *demo)
{
+ const VkCommandBufferInheritanceInfo cmd_buf_hinfo = {
+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
+ .pNext = NULL,
+ .renderPass = VK_NULL_HANDLE,
+ .subpass = 0,
+ .framebuffer = VK_NULL_HANDLE,
+ .occlusionQueryEnable = VK_FALSE,
+ .queryFlags = 0,
+ .pipelineStatistics = 0,
+ };
const VkCommandBufferBeginInfo cmd_buf_info = {
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
.pNext = NULL,
.flags = 0,
- .renderPass = VK_NULL_HANDLE,
- .subpass = 0,
- .framebuffer = VK_NULL_HANDLE,
- .occlusionQueryEnable = VK_FALSE,
- .queryFlags = 0,
- .pipelineStatistics = 0,
+ .pInheritanceInfo = &cmd_buf_hinfo,
};
const VkClearValue clear_values[2] = {
[0] = { .color.float32 = { 0.2f, 0.2f, 0.2f, 0.2f } },
@@ -450,7 +460,7 @@
prePresentBarrier.image = demo->buffers[demo->current_buffer].image;
VkImageMemoryBarrier *pmemory_barrier = &prePresentBarrier;
vkCmdPipelineBarrier(demo->draw_cmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
- 0, 1, (const void * const*)&pmemory_barrier);
+ 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
err = vkEndCommandBuffer(demo->draw_cmd);
assert(!err);
@@ -578,7 +588,7 @@
VkExtent2D swapchainExtent;
// width and height are either both -1, or both not -1.
- if (surfCapabilities.currentExtent.width == -1)
+ if (surfCapabilities.currentExtent.width == (uint32_t) -1)
{
// If the surface size is undefined, the size is set to
// the size of the images requested.
@@ -951,7 +961,7 @@
.pNext = NULL,
.magFilter = VK_FILTER_NEAREST,
.minFilter = VK_FILTER_NEAREST,
- .mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE,
+ .mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST,
.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT,
.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT,
.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT,
@@ -1382,7 +1392,7 @@
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
.pNext = NULL,
.descriptorPool = demo->desc_pool,
- .setLayoutCount = 1,
+ .descriptorSetCount = 1,
.pSetLayouts = &demo->desc_layout
};
err = vkAllocateDescriptorSets(demo->device, &alloc_info, &demo->desc_set);
@@ -1451,7 +1461,7 @@
.pNext = NULL,
.commandPool = demo->cmd_pool,
.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
- .bufferCount = 1,
+ .commandBufferCount = 1,
};
err = vkAllocateCommandBuffers(demo->device, &cmd, &demo->draw_cmd);
assert(!err);
@@ -1832,9 +1842,9 @@
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
.pNext = NULL,
.pApplicationInfo = &app,
- .enabledLayerNameCount = enabled_layer_count,
+ .enabledLayerCount = enabled_layer_count,
.ppEnabledLayerNames = (const char *const*) layer_names,
- .enabledExtensionNameCount = enabled_extension_count,
+ .enabledExtensionCount = enabled_extension_count,
.ppEnabledExtensionNames = (const char *const*) extension_names,
};
float queue_priorities[1] = { 0.0 };
@@ -1940,9 +1950,9 @@
.pNext = NULL,
.queueCreateInfoCount = 1,
.pQueueCreateInfos = &queue,
- .enabledLayerNameCount = enabled_layer_count,
+ .enabledLayerCount = enabled_layer_count,
.ppEnabledLayerNames = (const char *const*) ((demo->validate) ? device_validation_layers : NULL),
- .enabledExtensionNameCount = enabled_extension_count,
+ .enabledExtensionCount = enabled_extension_count,
.ppEnabledExtensionNames = (const char *const*) extension_names,
};
diff --git a/demos/vulkaninfo.c b/demos/vulkaninfo.c
index 74f65e9..926127d 100644
--- a/demos/vulkaninfo.c
+++ b/demos/vulkaninfo.c
@@ -447,9 +447,9 @@
.pNext = NULL,
.queueCreateInfoCount = 0,
.pQueueCreateInfos = NULL,
- .enabledLayerNameCount = 0,
+ .enabledLayerCount = 0,
.ppEnabledLayerNames = NULL,
- .enabledExtensionNameCount = 0,
+ .enabledExtensionCount = 0,
.ppEnabledExtensionNames = NULL,
};
VkResult U_ASSERT_ONLY err;
@@ -532,9 +532,9 @@
info.queueCreateInfoCount = gpu->queue_count;
info.pQueueCreateInfos = gpu->queue_reqs;
- info.enabledLayerNameCount = 0;
+ info.enabledLayerCount = 0;
info.ppEnabledLayerNames = NULL;
- info.enabledExtensionNameCount = enabled_extension_count;
+ info.enabledExtensionCount = enabled_extension_count;
info.ppEnabledExtensionNames = (const char*const*) known_extensions;
dev->gpu = gpu;
err = vkCreateDevice(gpu->obj, &info, NULL, &dev->obj);
@@ -589,9 +589,9 @@
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
.pNext = NULL,
.pApplicationInfo = &app_info,
- .enabledLayerNameCount = 0,
+ .enabledLayerCount = 0,
.ppEnabledLayerNames = NULL,
- .enabledExtensionNameCount = 0,
+ .enabledExtensionCount = 0,
.ppEnabledExtensionNames = NULL,
};
VkResult U_ASSERT_ONLY err;
@@ -684,7 +684,7 @@
}
}
- inst_info.enabledExtensionNameCount = global_extension_count;
+ inst_info.enabledExtensionCount = global_extension_count;
inst_info.ppEnabledExtensionNames = (const char * const *) known_extensions;
VkDebugReportCallbackCreateInfoEXT dbg_info;
diff --git a/icd/intel/cmd.c b/icd/intel/cmd.c
index 6f4ced4..1cf9273 100644
--- a/icd/intel/cmd.c
+++ b/icd/intel/cmd.c
@@ -323,11 +323,12 @@
cmd_reset(cmd);
/* TODOVV: Check that render pass is defined */
+ const VkCommandBufferInheritanceInfo *hinfo = info->pInheritanceInfo;
if (!cmd->primary) {
cmd_begin_render_pass(cmd,
- intel_render_pass(info->renderPass),
- intel_fb(info->framebuffer),
- info->subpass,
+ intel_render_pass(hinfo->renderPass),
+ intel_fb(hinfo->framebuffer),
+ hinfo->subpass,
VK_SUBPASS_CONTENTS_INLINE);
}
@@ -472,9 +473,9 @@
VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
VkDevice device,
- const VkCommandPoolCreateInfo* pCreateInfo,
- const VkAllocationCallbacks* pAllocator,
- VkCommandPool* pCommandPool)
+ const VkCommandPoolCreateInfo* pCreateInfo,
+ const VkAllocationCallbacks* pAllocator,
+ VkCommandPool* pCommandPool)
{
struct intel_dev *dev = intel_dev(device);
@@ -483,14 +484,14 @@
}
VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
- VkDevice device,
+ VkDevice device,
VkCommandPool commandPool,
- const VkAllocationCallbacks* pAllocator)
+ const VkAllocationCallbacks* pAllocator)
{
}
VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
- VkDevice device,
+ VkDevice device,
VkCommandPool commandPool,
VkCommandPoolResetFlags flags)
{
@@ -511,16 +512,16 @@
}
VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
- VkDevice device,
+ VkDevice device,
const VkCommandBufferAllocateInfo* pAllocateInfo,
- VkCommandBuffer* pCommandBuffers)
+ VkCommandBuffer* pCommandBuffers)
{
struct intel_dev *dev = intel_dev(device);
struct intel_cmd_pool *pool = intel_cmd_pool(pAllocateInfo->commandPool);
uint32_t num_allocated = 0;
VkResult res;
- for (uint32_t i = 0; i < pAllocateInfo->bufferCount; i++) {
+ for (uint32_t i = 0; i < pAllocateInfo->commandBufferCount; i++) {
res = intel_cmd_create(dev, pAllocateInfo,
(struct intel_cmd **) &pCommandBuffers[i]);
if (res != VK_SUCCESS) {
@@ -536,9 +537,9 @@
}
VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
- VkDevice device,
+ VkDevice device,
VkCommandPool commandPool,
- uint32_t commandBufferCount,
+ uint32_t commandBufferCount,
const VkCommandBuffer* pCommandBuffers)
{
intel_free_cmd_buffers(intel_cmd_pool(commandPool), commandBufferCount, pCommandBuffers);
diff --git a/icd/intel/cmd_barrier.c b/icd/intel/cmd_barrier.c
index c0720fb..5a3ad2b 100644
--- a/icd/intel/cmd_barrier.c
+++ b/icd/intel/cmd_barrier.c
@@ -180,50 +180,46 @@
static void cmd_memory_barriers(struct intel_cmd *cmd,
uint32_t flush_flags,
- uint32_t memory_barrier_count,
- const void* const* memory_barriers)
+ uint32_t mem_barrier_count,
+ const VkMemoryBarrier* mem_barriers,
+ uint32_t buf_mem_barrier_count,
+ const VkBufferMemoryBarrier* buf_mem_barriers,
+ uint32_t image_mem_barrier_count,
+ const VkImageMemoryBarrier* image_mem_barriers)
{
uint32_t i;
VkFlags input_mask = 0;
VkFlags output_mask = 0;
- for (i = 0; i < memory_barrier_count; i++) {
+ for (i = 0; i < mem_barrier_count; i++) {
+ const VkMemoryBarrier *b = &mem_barriers[i];
+ assert(b->sType == VK_STRUCTURE_TYPE_MEMORY_BARRIER);
+ output_mask |= b->srcAccessMask;
+ input_mask |= b->dstAccessMask;
+ }
- const union {
- VkStructureType type;
+ for (i = 0; i < buf_mem_barrier_count; i++) {
+ const VkBufferMemoryBarrier *b = &buf_mem_barriers[i];
+ assert(b->sType == VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER);
+ output_mask |= b->srcAccessMask;
+ input_mask |= b->dstAccessMask;
+ }
- VkMemoryBarrier mem;
- VkBufferMemoryBarrier buf;
- VkImageMemoryBarrier img;
- } *u = memory_barriers[i];
-
- switch(u->type)
+ for (i = 0; i < image_mem_barrier_count; i++) {
+ const VkImageMemoryBarrier *b = &image_mem_barriers[i];
+ assert(b->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER);
+ output_mask |= b->srcAccessMask;
+ input_mask |= b->dstAccessMask;
{
- case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
- output_mask |= u->mem.srcAccessMask;
- input_mask |= u->mem.dstAccessMask;
- break;
- case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
- output_mask |= u->buf.srcAccessMask;
- input_mask |= u->buf.dstAccessMask;
- break;
- case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
- output_mask |= u->img.srcAccessMask;
- input_mask |= u->img.dstAccessMask;
- {
- struct intel_img *img = intel_img(u->img.image);
+ struct intel_img *img = intel_img(b->image);
- cmd_resolve_depth(cmd, img, u->img.oldLayout,
- u->img.newLayout, &u->img.subresourceRange);
+ cmd_resolve_depth(cmd, img, b->oldLayout,
+ b->newLayout, &b->subresourceRange);
- flush_flags |= cmd_get_flush_flags(cmd,
- img_get_layout_caches(img, u->img.oldLayout),
- img_get_layout_caches(img, u->img.newLayout),
- icd_format_is_ds(img->layout.format));
- }
- break;
- default:
- break;
+ flush_flags |= cmd_get_flush_flags(cmd,
+ img_get_layout_caches(img, b->oldLayout),
+ img_get_layout_caches(img, b->newLayout),
+ icd_format_is_ds(img->layout.format));
}
}
@@ -265,13 +261,17 @@
}
VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
- VkCommandBuffer commandBuffer,
+ VkCommandBuffer commandBuffer,
uint32_t eventCount,
const VkEvent* pEvents,
VkPipelineStageFlags sourceStageMask,
VkPipelineStageFlags dstStageMask,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers)
{
struct intel_cmd *cmd = intel_cmd(commandBuffer);
@@ -287,18 +287,23 @@
* cmd_memory_barriers will wait for GEN6_PIPE_CONTROL_CS_STALL and perform
* appropriate cache control.
*/
- cmd_memory_barriers(cmd,
- GEN6_PIPE_CONTROL_CS_STALL,
- memoryBarrierCount, ppMemoryBarriers);
+ cmd_memory_barriers(cmd, GEN6_PIPE_CONTROL_CS_STALL,
+ memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
}
VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
- VkCommandBuffer commandBuffer,
+ VkCommandBuffer commandBuffer,
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask,
- VkDependencyFlags dependencyFlags,
+ VkDependencyFlags dependencyFlags,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers)
{
struct intel_cmd *cmd = intel_cmd(commandBuffer);
uint32_t pipe_control_flags = 0;
@@ -321,7 +326,8 @@
/* cmd_memory_barriers can wait for GEN6_PIPE_CONTROL_CS_STALL and perform
* appropriate cache control.
*/
- cmd_memory_barriers(cmd,
- pipe_control_flags,
- memoryBarrierCount, ppMemoryBarriers);
+ cmd_memory_barriers(cmd, pipe_control_flags,
+ memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
}
diff --git a/icd/intel/desc.c b/icd/intel/desc.c
index 0db4be4..5338826 100644
--- a/icd/intel/desc.c
+++ b/icd/intel/desc.c
@@ -847,7 +847,7 @@
VkResult ret = VK_SUCCESS;
uint32_t i;
- for (i = 0; i < pAllocateInfo->setLayoutCount; i++) {
+ for (i = 0; i < pAllocateInfo->descriptorSetCount; i++) {
const struct intel_desc_layout *layout =
intel_desc_layout((VkDescriptorSetLayout) pAllocateInfo->pSetLayouts[i]);
diff --git a/icd/intel/dev.c b/icd/intel/dev.c
index 20195fd..db3955a 100644
--- a/icd/intel/dev.c
+++ b/icd/intel/dev.c
@@ -112,7 +112,7 @@
if (!dev)
return VK_ERROR_OUT_OF_HOST_MEMORY;
- for (i = 0; i < info->enabledExtensionNameCount; i++) {
+ for (i = 0; i < info->enabledExtensionCount; i++) {
const enum intel_phy_dev_ext_type ext =
intel_gpu_lookup_phy_dev_extension(gpu,
info->ppEnabledExtensionNames[i]);
diff --git a/icd/intel/instance.c b/icd/intel/instance.c
index 6ae9b7d..368d15f 100644
--- a/icd/intel/instance.c
+++ b/icd/intel/instance.c
@@ -170,7 +170,7 @@
instance->icd = icd;
- for (i = 0; i < info->enabledExtensionNameCount; i++) {
+ for (i = 0; i < info->enabledExtensionCount; i++) {
const enum intel_global_ext_type ext =
intel_gpu_lookup_global_extension(
info->ppEnabledExtensionNames[i]);
@@ -191,7 +191,7 @@
/*
* This ICD does not support any layers.
*/
- if (info->enabledLayerNameCount > 0) {
+ if (info->enabledLayerCount > 0) {
icd_instance_destroy(icd);
intel_instance_destroy(instance);
return VK_ERROR_LAYER_NOT_PRESENT;
diff --git a/icd/intel/obj.c b/icd/intel/obj.c
index ae01f89..57ff832 100644
--- a/icd/intel/obj.c
+++ b/icd/intel/obj.c
@@ -174,8 +174,8 @@
size += src->pQueueCreateInfos[i].queueCount * sizeof(float);
}
size += sizeof(src->ppEnabledExtensionNames[0]) *
- src->enabledExtensionNameCount;
- for (uint32_t i = 0; i < src->enabledExtensionNameCount; i++) {
+ src->enabledExtensionCount;
+ for (uint32_t i = 0; i < src->enabledExtensionCount; i++) {
size += strlen(src->ppEnabledExtensionNames[i]) + 1;
}
@@ -201,11 +201,11 @@
}
size = sizeof(src->ppEnabledExtensionNames[0]) *
- src->enabledExtensionNameCount;
+ src->enabledExtensionCount;
dst->ppEnabledExtensionNames = (const char **) d;
memcpy(d, src->ppEnabledExtensionNames, size);
d += size;
- for (uint32_t i = 0; i < src->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < src->enabledExtensionCount; i++) {
char **ptr = (char **) &dst->ppEnabledExtensionNames[i];
strcpy((char *) d, src->ppEnabledExtensionNames[i]);
*ptr = (char *) d;
diff --git a/icd/intel/query.c b/icd/intel/query.c
index 7698193..e88327d 100644
--- a/icd/intel/query.c
+++ b/icd/intel/query.c
@@ -90,7 +90,7 @@
return VK_ERROR_OUT_OF_HOST_MEMORY;
query->type = info->queryType;
- query->slot_count = info->entryCount;
+ query->slot_count = info->queryCount;
/*
* For each query type, the GPU will be asked to write the values of some
diff --git a/icd/intel/queue.c b/icd/intel/queue.c
index 03a313f..b0fd421 100644
--- a/icd/intel/queue.c
+++ b/icd/intel/queue.c
@@ -440,7 +440,7 @@
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
VkDevice device,
const VkSemaphoreCreateInfo *pCreateInfo,
- const VkAllocationCallbacks* pAllocator,
+ const VkAllocationCallbacks *pAllocator,
VkSemaphore *pSemaphore)
{
/*
diff --git a/icd/intel/sampler.c b/icd/intel/sampler.c
index f952612..3c153e9 100644
--- a/icd/intel/sampler.c
+++ b/icd/intel/sampler.c
@@ -48,7 +48,6 @@
switch (mode) {
case VK_SAMPLER_MIPMAP_MODE_NEAREST: return GEN6_MIPFILTER_NEAREST;
case VK_SAMPLER_MIPMAP_MODE_LINEAR: return GEN6_MIPFILTER_LINEAR;
- case VK_SAMPLER_MIPMAP_MODE_BASE: return GEN6_MIPFILTER_NONE;
default:
assert(!"unknown tex mipmap mode");
return GEN6_MIPFILTER_NONE;
@@ -260,10 +259,6 @@
* To achieve our goal, we just need to set MinLod to zero and set
* MagFilter to MinFilter when mipmapping is disabled.
*/
- if (info->mipmapMode == VK_SAMPLER_MIPMAP_MODE_BASE && min_lod) {
- min_lod = 0;
- mag_filter = min_filter;
- }
/* determine wrap s/t/r */
wrap_s = translate_tex_addr(info->addressModeU);
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index 0971aa9..3523f48 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -203,7 +203,7 @@
if (!dev)
return VK_ERROR_OUT_OF_HOST_MEMORY;
- for (i = 0; i < info->enabledExtensionNameCount; i++) {
+ for (i = 0; i < info->enabledExtensionCount; i++) {
const enum nulldrv_ext_type ext = nulldrv_gpu_lookup_extension(
gpu,
info->ppEnabledExtensionNames[i]);
@@ -478,7 +478,7 @@
struct nulldrv_cmd *cmd;
uint32_t num_allocated = 0;
- for (uint32_t i = 0; i < info->bufferCount; i++) {
+ for (uint32_t i = 0; i < info->commandBufferCount; i++) {
cmd = (struct nulldrv_cmd *) nulldrv_base_create(dev, sizeof(*cmd),
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT);
if (!cmd) {
@@ -1175,24 +1175,32 @@
}
VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
- VkCommandBuffer commandBuffer,
+ VkCommandBuffer commandBuffer,
uint32_t eventCount,
const VkEvent* pEvents,
VkPipelineStageFlags sourceStageMask,
VkPipelineStageFlags dstStageMask,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers)
{
NULLDRV_LOG_FUNC;
}
VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
- VkCommandBuffer commandBuffer,
+ VkCommandBuffer commandBuffer,
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask,
VkDependencyFlags dependencyFlags,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers)
{
NULLDRV_LOG_FUNC;
}
@@ -1982,7 +1990,7 @@
VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
VkDevice device,
- const VkDescriptorSetAllocateInfo* pAllocateInfo,
+ const VkDescriptorSetAllocateInfo* pAllocateInfo,
VkDescriptorSet* pDescriptorSets)
{
NULLDRV_LOG_FUNC;
@@ -1991,7 +1999,7 @@
VkResult ret = VK_SUCCESS;
uint32_t i;
- for (i = 0; i < pAllocateInfo->setLayoutCount; i++) {
+ for (i = 0; i < pAllocateInfo->descriptorSetCount; i++) {
const struct nulldrv_desc_layout *layout =
nulldrv_desc_layout(pAllocateInfo->pSetLayouts[i]);
diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h
index 0563eb7..a64f6a5 100644
--- a/include/vulkan/vulkan.h
+++ b/include/vulkan/vulkan.h
@@ -41,7 +41,7 @@
((major << 22) | (minor << 12) | patch)
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 221, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 222, 0)
#define VK_NULL_HANDLE 0
@@ -187,13 +187,14 @@
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
- VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 41,
- VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 42,
- VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 43,
- VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 44,
- VK_STRUCTURE_TYPE_MEMORY_BARRIER = 45,
- VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 46,
- VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 47,
+ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
+ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
+ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
+ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
+ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
+ VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
+ VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
+ VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
@@ -682,12 +683,11 @@
} VkFilter;
typedef enum VkSamplerMipmapMode {
- VK_SAMPLER_MIPMAP_MODE_BASE = 0,
- VK_SAMPLER_MIPMAP_MODE_NEAREST = 1,
- VK_SAMPLER_MIPMAP_MODE_LINEAR = 2,
- VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_BASE,
+ VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
+ VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
+ VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
- VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_BASE + 1),
+ VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
} VkSamplerMipmapMode;
@@ -980,7 +980,7 @@
} VkShaderStageFlagBits;
typedef VkFlags VkPipelineVertexInputStateCreateFlags;
typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
-typedef VkFlags VkPipelineTesselationStateCreateFlags;
+typedef VkFlags VkPipelineTessellationStateCreateFlags;
typedef VkFlags VkPipelineViewportStateCreateFlags;
typedef VkFlags VkPipelineRasterizationStateCreateFlags;
@@ -1129,9 +1129,9 @@
const void* pNext;
VkInstanceCreateFlags flags;
const VkApplicationInfo* pApplicationInfo;
- uint32_t enabledLayerNameCount;
+ uint32_t enabledLayerCount;
const char* const* ppEnabledLayerNames;
- uint32_t enabledExtensionNameCount;
+ uint32_t enabledExtensionCount;
const char* const* ppEnabledExtensionNames;
} VkInstanceCreateInfo;
@@ -1209,9 +1209,9 @@
} VkFormatProperties;
typedef struct VkExtent3D {
- int32_t width;
- int32_t height;
- int32_t depth;
+ uint32_t width;
+ uint32_t height;
+ uint32_t depth;
} VkExtent3D;
typedef struct VkImageFormatProperties {
@@ -1390,9 +1390,9 @@
VkDeviceCreateFlags flags;
uint32_t queueCreateInfoCount;
const VkDeviceQueueCreateInfo* pQueueCreateInfos;
- uint32_t enabledLayerNameCount;
+ uint32_t enabledLayerCount;
const char* const* ppEnabledLayerNames;
- uint32_t enabledExtensionNameCount;
+ uint32_t enabledExtensionCount;
const char* const* ppEnabledExtensionNames;
const VkPhysicalDeviceFeatures* pEnabledFeatures;
} VkDeviceCreateInfo;
@@ -1541,7 +1541,7 @@
const void* pNext;
VkQueryPoolCreateFlags flags;
VkQueryType queryType;
- uint32_t entryCount;
+ uint32_t queryCount;
VkQueryPipelineStatisticFlags pipelineStatistics;
} VkQueryPoolCreateInfo;
@@ -1691,7 +1691,7 @@
typedef struct VkPipelineTessellationStateCreateInfo {
VkStructureType sType;
const void* pNext;
- VkPipelineTesselationStateCreateFlags flags;
+ VkPipelineTessellationStateCreateFlags flags;
uint32_t patchControlPoints;
} VkPipelineTessellationStateCreateInfo;
@@ -1710,8 +1710,8 @@
} VkOffset2D;
typedef struct VkExtent2D {
- int32_t width;
- int32_t height;
+ uint32_t width;
+ uint32_t height;
} VkExtent2D;
typedef struct VkRect2D {
@@ -1915,7 +1915,7 @@
VkStructureType sType;
const void* pNext;
VkDescriptorPool descriptorPool;
- uint32_t setLayoutCount;
+ uint32_t descriptorSetCount;
const VkDescriptorSetLayout* pSetLayouts;
} VkDescriptorSetAllocateInfo;
@@ -1995,7 +1995,7 @@
const VkAttachmentReference* pResolveAttachments;
const VkAttachmentReference* pDepthStencilAttachment;
uint32_t preserveAttachmentCount;
- const VkAttachmentReference* pPreserveAttachments;
+ const uint32_t* pPreserveAttachments;
} VkSubpassDescription;
typedef struct VkSubpassDependency {
@@ -2032,19 +2032,25 @@
const void* pNext;
VkCommandPool commandPool;
VkCommandBufferLevel level;
- uint32_t bufferCount;
+ uint32_t commandBufferCount;
} VkCommandBufferAllocateInfo;
-typedef struct VkCommandBufferBeginInfo {
+typedef struct VkCommandBufferInheritanceInfo {
VkStructureType sType;
const void* pNext;
- VkCommandBufferUsageFlags flags;
VkRenderPass renderPass;
uint32_t subpass;
VkFramebuffer framebuffer;
VkBool32 occlusionQueryEnable;
VkQueryControlFlags queryFlags;
VkQueryPipelineStatisticFlags pipelineStatistics;
+} VkCommandBufferInheritanceInfo;
+
+typedef struct VkCommandBufferBeginInfo {
+ VkStructureType sType;
+ const void* pNext;
+ VkCommandBufferUsageFlags flags;
+ const VkCommandBufferInheritanceInfo* pInheritanceInfo;
} VkCommandBufferBeginInfo;
typedef struct VkBufferCopy {
@@ -2070,11 +2076,9 @@
typedef struct VkImageBlit {
VkImageSubresourceLayers srcSubresource;
- VkOffset3D srcOffset;
- VkExtent3D srcExtent;
+ VkOffset3D srcOffsets[2];
VkImageSubresourceLayers dstSubresource;
- VkOffset3D dstOffset;
- VkExtent3D dstExtent;
+ VkOffset3D dstOffsets[2];
} VkImageBlit;
typedef struct VkBufferImageCopy {
@@ -2122,15 +2126,12 @@
VkExtent3D extent;
} VkImageResolve;
-typedef struct VkRenderPassBeginInfo {
+typedef struct VkMemoryBarrier {
VkStructureType sType;
const void* pNext;
- VkRenderPass renderPass;
- VkFramebuffer framebuffer;
- VkRect2D renderArea;
- uint32_t clearValueCount;
- const VkClearValue* pClearValues;
-} VkRenderPassBeginInfo;
+ VkAccessFlags srcAccessMask;
+ VkAccessFlags dstAccessMask;
+} VkMemoryBarrier;
typedef struct VkBufferMemoryBarrier {
VkStructureType sType;
@@ -2144,6 +2145,29 @@
VkDeviceSize size;
} VkBufferMemoryBarrier;
+typedef struct VkImageMemoryBarrier {
+ VkStructureType sType;
+ const void* pNext;
+ VkAccessFlags srcAccessMask;
+ VkAccessFlags dstAccessMask;
+ VkImageLayout oldLayout;
+ VkImageLayout newLayout;
+ uint32_t srcQueueFamilyIndex;
+ uint32_t dstQueueFamilyIndex;
+ VkImage image;
+ VkImageSubresourceRange subresourceRange;
+} VkImageMemoryBarrier;
+
+typedef struct VkRenderPassBeginInfo {
+ VkStructureType sType;
+ const void* pNext;
+ VkRenderPass renderPass;
+ VkFramebuffer framebuffer;
+ VkRect2D renderArea;
+ uint32_t clearValueCount;
+ const VkClearValue* pClearValues;
+} VkRenderPassBeginInfo;
+
typedef struct VkDispatchIndirectCommand {
uint32_t x;
uint32_t y;
@@ -2165,26 +2189,6 @@
uint32_t firstInstance;
} VkDrawIndirectCommand;
-typedef struct VkImageMemoryBarrier {
- VkStructureType sType;
- const void* pNext;
- VkAccessFlags srcAccessMask;
- VkAccessFlags dstAccessMask;
- VkImageLayout oldLayout;
- VkImageLayout newLayout;
- uint32_t srcQueueFamilyIndex;
- uint32_t dstQueueFamilyIndex;
- VkImage image;
- VkImageSubresourceRange subresourceRange;
-} VkImageMemoryBarrier;
-
-typedef struct VkMemoryBarrier {
- VkStructureType sType;
- const void* pNext;
- VkAccessFlags srcAccessMask;
- VkAccessFlags dstAccessMask;
-} VkMemoryBarrier;
-
typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
@@ -2311,18 +2315,18 @@
typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
-typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
-typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
-typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry, VkQueryControlFlags flags);
-typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry);
+typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
+typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
+typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
+typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
-typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t entry);
+typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
-typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBuffersCount, const VkCommandBuffer* pCommandBuffers);
+typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
#ifdef VK_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
@@ -3046,7 +3050,11 @@
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers);
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers);
VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
VkCommandBuffer commandBuffer,
@@ -3054,18 +3062,22 @@
VkPipelineStageFlags dstStageMask,
VkDependencyFlags dependencyFlags,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers);
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers);
VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
VkCommandBuffer commandBuffer,
VkQueryPool queryPool,
- uint32_t entry,
+ uint32_t query,
VkQueryControlFlags flags);
VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
VkCommandBuffer commandBuffer,
VkQueryPool queryPool,
- uint32_t entry);
+ uint32_t query);
VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
VkCommandBuffer commandBuffer,
@@ -3077,7 +3089,7 @@
VkCommandBuffer commandBuffer,
VkPipelineStageFlagBits pipelineStage,
VkQueryPool queryPool,
- uint32_t entry);
+ uint32_t query);
VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
VkCommandBuffer commandBuffer,
@@ -3111,7 +3123,7 @@
VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
VkCommandBuffer commandBuffer,
- uint32_t commandBuffersCount,
+ uint32_t commandBufferCount,
const VkCommandBuffer* pCommandBuffers);
#endif
@@ -3374,7 +3386,7 @@
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
-typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
@@ -3393,6 +3405,7 @@
VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
VkPhysicalDevice physicalDevice,
+ uint32_t planeIndex,
uint32_t* pDisplayCount,
VkDisplayKHR* pDisplays);
diff --git a/layers/api_dump.h b/layers/api_dump.h
index 5675233..3dc8e2f 100644
--- a/layers/api_dump.h
+++ b/layers/api_dump.h
@@ -76,7 +76,7 @@
pDisp->QueuePresentKHR = (PFN_vkQueuePresentKHR) gpa(device, "vkQueuePresentKHR");
deviceExtMap[pDisp].wsi_enabled = false;
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0)
deviceExtMap[pDisp].wsi_enabled = true;
@@ -118,7 +118,7 @@
#endif // VK_USE_PLATFORM_ANDROID_KHR
instanceExtMap[pDisp].wsi_enabled = false;
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SURFACE_EXTENSION_NAME) == 0)
instanceExtMap[pDisp].wsi_enabled = true;
diff --git a/layers/device_limits.cpp b/layers/device_limits.cpp
index fc180fe..e46149f 100644
--- a/layers/device_limits.cpp
+++ b/layers/device_limits.cpp
@@ -191,7 +191,7 @@
my_data->report_data = debug_report_create_instance(
pTable,
*pInstance,
- pCreateInfo->enabledExtensionNameCount,
+ pCreateInfo->enabledExtensionCount,
pCreateInfo->ppEnabledExtensionNames);
init_device_limits(my_data, pAllocator);
@@ -377,7 +377,7 @@
layer_data *my_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map);
my_data->device_extensions.debug_marker_enabled = false;
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], DEBUG_MARKER_EXTENSION_NAME) == 0) {
/* Found a matching extension name, mark it enabled and init dispatch table*/
initDebugMarkerTable(device);
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 1355960..6c341f1 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -2764,7 +2764,7 @@
my_data->report_data = debug_report_create_instance(
pTable,
*pInstance,
- pCreateInfo->enabledExtensionNameCount,
+ pCreateInfo->enabledExtensionCount,
pCreateInfo->ppEnabledExtensionNames);
init_draw_state(my_data, pAllocator);
@@ -2816,7 +2816,7 @@
pDisp->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) gpa(device, "vkAcquireNextImageKHR");
pDisp->QueuePresentKHR = (PFN_vkQueuePresentKHR) gpa(device, "vkQueuePresentKHR");
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0) {
dev_data->device_extensions.wsi_enabled = true;
}
@@ -3792,7 +3792,7 @@
skipCall |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, (uint64_t) pAllocateInfo->descriptorPool, __LINE__, DRAWSTATE_INVALID_POOL, "DS",
"Unable to find pool node for pool %#" PRIxLEAST64 " specified in vkAllocateDescriptorSets() call", (uint64_t) pAllocateInfo->descriptorPool);
} else { // Make sure pool has all the available descriptors before calling down chain
- skipCall |= validate_descriptor_availability_in_pool(dev_data, pPoolNode, pAllocateInfo->setLayoutCount, pAllocateInfo->pSetLayouts);
+ skipCall |= validate_descriptor_availability_in_pool(dev_data, pPoolNode, pAllocateInfo->descriptorSetCount, pAllocateInfo->pSetLayouts);
}
if (skipCall)
return VK_ERROR_VALIDATION_FAILED_EXT;
@@ -3800,11 +3800,11 @@
if (VK_SUCCESS == result) {
DESCRIPTOR_POOL_NODE *pPoolNode = getPoolNode(dev_data, pAllocateInfo->descriptorPool);
if (pPoolNode) {
- if (pAllocateInfo->setLayoutCount == 0) {
- log_msg(dev_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, pAllocateInfo->setLayoutCount, __LINE__, DRAWSTATE_NONE, "DS",
+ if (pAllocateInfo->descriptorSetCount == 0) {
+ log_msg(dev_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, pAllocateInfo->descriptorSetCount, __LINE__, DRAWSTATE_NONE, "DS",
"AllocateDescriptorSets called with 0 count");
}
- for (uint32_t i = 0; i < pAllocateInfo->setLayoutCount; i++) {
+ for (uint32_t i = 0; i < pAllocateInfo->descriptorSetCount; i++) {
log_msg(dev_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, (uint64_t) pDescriptorSets[i], __LINE__, DRAWSTATE_NONE, "DS",
"Created Descriptor Set %#" PRIxLEAST64, (uint64_t) pDescriptorSets[i]);
// Create new set node and add to head of pool nodes
@@ -3888,7 +3888,7 @@
layer_data* dev_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map);
VkResult result = dev_data->device_dispatch_table->AllocateCommandBuffers(device, pCreateInfo, pCommandBuffer);
if (VK_SUCCESS == result) {
- for (uint32_t i = 0; i < pCreateInfo->bufferCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->commandBufferCount; i++) {
// Validate command pool
if (dev_data->commandPoolMap.find(pCreateInfo->commandPool) != dev_data->commandPoolMap.end()) {
loader_platform_thread_lock_mutex(&globalLock);
@@ -3914,32 +3914,28 @@
// Validate command buffer level
GLOBAL_CB_NODE* pCB = getCBNode(dev_data, commandBuffer);
if (pCB) {
- if (pCB->createInfo.level == VK_COMMAND_BUFFER_LEVEL_PRIMARY) {
- if (pBeginInfo->renderPass || pBeginInfo->framebuffer) {
- // These should be NULL for a Primary CB
- skipCall |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, (uint64_t)commandBuffer, __LINE__, DRAWSTATE_BEGIN_CB_INVALID_STATE, "DS",
- "vkBeginCommandBuffer(): Primary Command Buffer (%p) may not specify framebuffer or renderpass parameters.", (void*)commandBuffer);
- }
- } else { // Secondary Command Buffer
+ if (pCB->createInfo.level != VK_COMMAND_BUFFER_LEVEL_PRIMARY) {
+ // Secondary Command Buffer
// TODO : Add check here from spec "If commandBuffer is a secondary command buffer and either the
// occlusionQueryEnable member of pBeginInfo is VK_FALSE, or the precise occlusion queries feature
// is not enabled, the queryFlags member of pBeginInfo must not contain VK_QUERY_CONTROL_PRECISE_BIT"
+ const VkCommandBufferInheritanceInfo *pInfo = pBeginInfo->pInheritanceInfo;
if (pBeginInfo->flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT) {
- if (!pBeginInfo->renderPass) { // renderpass should NOT be null for an Secondary CB
+ if (!pInfo->renderPass) { // renderpass should NOT be null for an Secondary CB
skipCall |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, (uint64_t)commandBuffer, __LINE__, DRAWSTATE_BEGIN_CB_INVALID_STATE, "DS",
"vkBeginCommandBuffer(): Secondary Command Buffers (%p) must specify a valid renderpass parameter.", (void*)commandBuffer);
}
- if (!pBeginInfo->framebuffer) { // framebuffer may be null for an Secondary CB, but this affects perf
+ if (!pInfo->framebuffer) { // framebuffer may be null for an Secondary CB, but this affects perf
skipCall |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_PERF_WARN_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, (uint64_t)commandBuffer, __LINE__, DRAWSTATE_BEGIN_CB_INVALID_STATE, "DS",
"vkBeginCommandBuffer(): Secondary Command Buffers (%p) may perform better if a valid framebuffer parameter is specified.", (void*)commandBuffer);
} else {
string errorString = "";
- VkRenderPass fbRP = dev_data->frameBufferMap[pBeginInfo->framebuffer]->renderPass;
- if (!verify_renderpass_compatibility(dev_data, fbRP, pBeginInfo->renderPass, errorString)) {
+ VkRenderPass fbRP = dev_data->frameBufferMap[pInfo->framebuffer]->renderPass;
+ if (!verify_renderpass_compatibility(dev_data, fbRP, pInfo->renderPass, errorString)) {
// renderPass that framebuffer was created with must be compatible with local renderPass
skipCall |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, (uint64_t)commandBuffer, __LINE__, DRAWSTATE_RENDERPASS_INCOMPATIBLE, "DS",
"vkBeginCommandBuffer(): Secondary Command Buffer (%p) renderPass (%#" PRIxLEAST64 ") is incompatible w/ framebuffer (%#" PRIxLEAST64 ") w/ render pass (%#" PRIxLEAST64 ") due to: %s",
- (void*)commandBuffer, (uint64_t)pBeginInfo->renderPass, (uint64_t)pBeginInfo->framebuffer, (uint64_t)fbRP, errorString.c_str());
+ (void*)commandBuffer, (uint64_t)pInfo->renderPass, (uint64_t)pInfo->framebuffer, (uint64_t)fbRP, errorString.c_str());
}
}
}
@@ -4812,7 +4808,7 @@
dev_data->device_dispatch_table->CmdResetEvent(commandBuffer, event, stageMask);
}
-VkBool32 TransitionImageLayouts(VkCommandBuffer cmdBuffer, uint32_t memBarrierCount, const void* const* ppMemBarriers) {
+VkBool32 TransitionImageLayouts(VkCommandBuffer cmdBuffer, uint32_t memBarrierCount, const VkImageMemoryBarrier* pImgMemBarriers) {
layer_data* dev_data = get_my_data_ptr(get_dispatch_key(cmdBuffer), layer_data_map);
GLOBAL_CB_NODE* pCB = getCBNode(dev_data, cmdBuffer);
VkBool32 skip = VK_FALSE;
@@ -4823,19 +4819,18 @@
#endif // DISABLE_IMAGE_LAYOUT_VALIDATION
for (uint32_t i = 0; i < memBarrierCount; ++i) {
- auto mem_barrier = reinterpret_cast<const VkMemoryBarrier*>(ppMemBarriers[i]);
+ auto mem_barrier = &pImgMemBarriers[i];
if (mem_barrier && mem_barrier->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER) {
- auto image_mem_barrier = reinterpret_cast<const VkImageMemoryBarrier*>(mem_barrier);
- auto image_data = pCB->imageLayoutMap.find(image_mem_barrier->image);
+ auto image_data = pCB->imageLayoutMap.find(mem_barrier->image);
if (image_data == pCB->imageLayoutMap.end()) {
- pCB->imageLayoutMap[image_mem_barrier->image].initialLayout = image_mem_barrier->oldLayout;
- pCB->imageLayoutMap[image_mem_barrier->image].layout = image_mem_barrier->newLayout;
+ pCB->imageLayoutMap[mem_barrier->image].initialLayout = mem_barrier->oldLayout;
+ pCB->imageLayoutMap[mem_barrier->image].layout = mem_barrier->newLayout;
} else {
- if (image_data->second.layout != image_mem_barrier->oldLayout) {
+ if (image_data->second.layout != mem_barrier->oldLayout) {
skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT)0, 0, __LINE__, DRAWSTATE_INVALID_IMAGE_LAYOUT, "DS",
- "You cannot transition the layout from %d when current layout is %d.", image_mem_barrier->oldLayout, image_data->second.layout);
+ "You cannot transition the layout from %d when current layout is %d.", mem_barrier->oldLayout, image_data->second.layout);
}
- image_data->second.layout = image_mem_barrier->newLayout;
+ image_data->second.layout = mem_barrier->newLayout;
}
}
}
@@ -4946,13 +4941,14 @@
return skip_call;
}
-VkBool32 ValidateBarriers(VkCommandBuffer cmdBuffer, uint32_t memBarrierCount, const void* const* ppMemBarriers) {
+VkBool32 ValidateBarriers(VkCommandBuffer cmdBuffer, uint32_t memBarrierCount, const VkMemoryBarrier* pMemBarriers, uint32_t imageMemBarrierCount, const VkImageMemoryBarrier *pImageMemBarriers)
+{
VkBool32 skip_call = VK_FALSE;
layer_data* dev_data = get_my_data_ptr(get_dispatch_key(cmdBuffer), layer_data_map);
GLOBAL_CB_NODE* pCB = getCBNode(dev_data, cmdBuffer);
if (pCB->activeRenderPass && memBarrierCount) {
for (uint32_t i = 0; i < memBarrierCount; ++i) {
- auto mem_barrier = reinterpret_cast<const VkMemoryBarrier*>(ppMemBarriers[i]);
+ auto mem_barrier = &pMemBarriers[i];
if (mem_barrier && mem_barrier->sType != VK_STRUCTURE_TYPE_MEMORY_BARRIER) {
skip_call |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT)0, 0, __LINE__, DRAWSTATE_INVALID_BARRIER, "DS",
"Image or Buffers Barriers cannot be used during a render pass.");
@@ -4964,19 +4960,23 @@
}
}
- for (uint32_t i = 0; i < memBarrierCount; ++i) {
- auto mem_barrier = reinterpret_cast<const VkMemoryBarrier*>(ppMemBarriers[i]);
+ for (uint32_t i = 0; i < imageMemBarrierCount; ++i) {
+ auto mem_barrier = &pImageMemBarriers[i];
if (mem_barrier && mem_barrier->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER) {
- auto image_mem_barrier = reinterpret_cast<const VkImageMemoryBarrier*>(mem_barrier);
- skip_call |= ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, image_mem_barrier->srcAccessMask, image_mem_barrier->oldLayout, "Source");
- skip_call |= ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, image_mem_barrier->dstAccessMask, image_mem_barrier->newLayout, "Dest");
+ skip_call |= ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, mem_barrier->srcAccessMask, mem_barrier->oldLayout, "Source");
+ skip_call |= ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, mem_barrier->dstAccessMask, mem_barrier->newLayout, "Dest");
}
}
return skip_call;
}
-VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags sourceStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers)
+VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
+ VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents,
+ VkPipelineStageFlags sourceStageMask, VkPipelineStageFlags dstStageMask,
+ uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers)
{
VkBool32 skipCall = VK_FALSE;
layer_data* dev_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map);
@@ -4990,25 +4990,36 @@
} else {
skipCall |= report_error_no_cb_begin(dev_data, commandBuffer, "vkCmdWaitEvents()");
}
- skipCall |= TransitionImageLayouts(commandBuffer, memoryBarrierCount, ppMemoryBarriers);
- skipCall |= ValidateBarriers(commandBuffer, memoryBarrierCount, ppMemoryBarriers);
+ skipCall |= TransitionImageLayouts(commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers);
+ skipCall |= ValidateBarriers(commandBuffer, memoryBarrierCount, pMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
}
if (VK_FALSE == skipCall)
- dev_data->device_dispatch_table->CmdWaitEvents(commandBuffer, eventCount, pEvents, sourceStageMask, dstStageMask, memoryBarrierCount, ppMemoryBarriers);
+ dev_data->device_dispatch_table->CmdWaitEvents(commandBuffer, eventCount, pEvents, sourceStageMask, dstStageMask,
+ memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
}
-VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers)
+VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
+ VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask,
+ VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags,
+ uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers)
{
VkBool32 skipCall = VK_FALSE;
layer_data* dev_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map);
GLOBAL_CB_NODE* pCB = getCBNode(dev_data, commandBuffer);
if (pCB) {
skipCall |= addCmd(dev_data, pCB, CMD_PIPELINEBARRIER, "vkCmdPipelineBarrier()");
- skipCall |= TransitionImageLayouts(commandBuffer, memoryBarrierCount, ppMemoryBarriers);
- skipCall |= ValidateBarriers(commandBuffer, memoryBarrierCount, ppMemoryBarriers);
+ skipCall |= TransitionImageLayouts(commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers);
+ skipCall |= ValidateBarriers(commandBuffer, memoryBarrierCount, pMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
}
if (VK_FALSE == skipCall)
- dev_data->device_dispatch_table->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, ppMemoryBarriers);
+ dev_data->device_dispatch_table->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags,
+ memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
}
VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t slot, VkFlags flags)
@@ -5179,7 +5190,7 @@
return result;
}
-VkBool32 CheckPreserved(const layer_data* my_data, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const int index, const int attachment, const std::vector<DAGNode>& subpass_to_node, int depth, VkBool32& skip_call) {
+VkBool32 CheckPreserved(const layer_data* my_data, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const int index, const uint32_t attachment, const std::vector<DAGNode>& subpass_to_node, int depth, VkBool32& skip_call) {
const DAGNode& node = subpass_to_node[index];
// If this node writes to the attachment return true as next nodes need to preserve the attachment.
const VkSubpassDescription& subpass = pCreateInfo->pSubpasses[index];
@@ -5202,7 +5213,7 @@
const VkSubpassDescription& subpass = pCreateInfo->pSubpasses[index];
VkBool32 has_preserved = VK_FALSE;
for (uint32_t j = 0; j < subpass.preserveAttachmentCount; ++j) {
- if (subpass.pPreserveAttachments[j].attachment == attachment) {
+ if (subpass.pPreserveAttachments[j] == attachment) {
has_preserved = VK_TRUE;
break;
}
@@ -5421,7 +5432,7 @@
memcpy(attachments, subpass->pPreserveAttachments,
sizeof(attachments[0]) * subpass->preserveAttachmentCount);
- subpass->pPreserveAttachments = attachments;
+ subpass->pPreserveAttachments = &attachments->attachment;
}
}
if (pCreateInfo->pDependencies) {
@@ -5669,18 +5680,18 @@
"vkCmdExecuteCommands(): Secondary Command Buffer (%p) executed within render pass (%#" PRIxLEAST64 ") must have had vkBeginCommandBuffer() called w/ VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT set.", (void*)pCommandBuffers[i], (uint64_t)pCB->activeRenderPass);
}
string errorString = "";
- if (!verify_renderpass_compatibility(dev_data, pCB->activeRenderPass, pSubCB->beginInfo.renderPass, errorString)) {
+ if (!verify_renderpass_compatibility(dev_data, pCB->activeRenderPass, pSubCB->beginInfo.pInheritanceInfo->renderPass, errorString)) {
skipCall |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, (uint64_t)pCommandBuffers[i], __LINE__, DRAWSTATE_RENDERPASS_INCOMPATIBLE, "DS",
"vkCmdExecuteCommands(): Secondary Command Buffer (%p) w/ render pass (%#" PRIxLEAST64 ") is incompatible w/ primary command buffer (%p) w/ render pass (%#" PRIxLEAST64 ") due to: %s",
- (void*)pCommandBuffers[i], (uint64_t)pSubCB->beginInfo.renderPass, (void*)commandBuffer, (uint64_t)pCB->activeRenderPass, errorString.c_str());
+ (void*)pCommandBuffers[i], (uint64_t)pSubCB->beginInfo.pInheritanceInfo->renderPass, (void*)commandBuffer, (uint64_t)pCB->activeRenderPass, errorString.c_str());
}
// If framebuffer for secondary CB is not NULL, then it must match FB from vkCmdBeginRenderPass()
// that this CB will be executed in AND framebuffer must have been created w/ RP compatible w/ renderpass
- if (pSubCB->beginInfo.framebuffer) {
- if (pSubCB->beginInfo.framebuffer != pCB->activeRenderPassBeginInfo.framebuffer) {
+ if (pSubCB->beginInfo.pInheritanceInfo->framebuffer) {
+ if (pSubCB->beginInfo.pInheritanceInfo->framebuffer != pCB->activeRenderPassBeginInfo.framebuffer) {
skipCall |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, (uint64_t)pCommandBuffers[i], __LINE__, DRAWSTATE_FRAMEBUFFER_INCOMPATIBLE, "DS",
"vkCmdExecuteCommands(): Secondary Command Buffer (%p) references framebuffer (%#" PRIxLEAST64 ") that does not match framebuffer (%#" PRIxLEAST64 ") in active renderpass (%#" PRIxLEAST64 ").",
- (void*)pCommandBuffers[i], (uint64_t)pSubCB->beginInfo.framebuffer, (uint64_t)pCB->activeRenderPassBeginInfo.framebuffer, (uint64_t)pCB->activeRenderPass);
+ (void*)pCommandBuffers[i], (uint64_t)pSubCB->beginInfo.pInheritanceInfo->framebuffer, (uint64_t)pCB->activeRenderPassBeginInfo.framebuffer, (uint64_t)pCB->activeRenderPass);
}
}
}
diff --git a/layers/generic.h b/layers/generic.h
index bc5c555..32a78ef 100644
--- a/layers/generic.h
+++ b/layers/generic.h
@@ -84,7 +84,7 @@
pDisp->QueuePresentKHR = (PFN_vkQueuePresentKHR) gpa(device, "vkQueuePresentKHR");
deviceExtMap[pDisp].wsi_enabled = false;
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0)
deviceExtMap[pDisp].wsi_enabled = true;
@@ -101,7 +101,7 @@
pDisp->GetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR) gpa(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR");
pDisp->GetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR) gpa(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR");
instanceExtMap[pDisp].wsi_enabled = false;
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SURFACE_EXTENSION_NAME) == 0)
instanceExtMap[pDisp].wsi_enabled = true;
diff --git a/layers/image.cpp b/layers/image.cpp
index 1d8de45..658b5a1 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -151,7 +151,7 @@
VkResult result = pTable->CreateInstance(pCreateInfo, pAllocator, pInstance);
if (result == VK_SUCCESS) {
- my_data->report_data = debug_report_create_instance(pTable, *pInstance, pCreateInfo->enabledExtensionNameCount,
+ my_data->report_data = debug_report_create_instance(pTable, *pInstance, pCreateInfo->enabledExtensionCount,
pCreateInfo->ppEnabledExtensionNames);
InitImage(my_data, pAllocator);
@@ -986,14 +986,18 @@
VkPipelineStageFlags dstStageMask,
VkDependencyFlags dependencyFlags,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ const VkMemoryBarrier *pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier *pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier *pImageMemoryBarriers)
{
VkBool32 skipCall = VK_FALSE;
layer_data *device_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map);
- for (uint32_t i = 0; i < memoryBarrierCount; ++i)
+ for (uint32_t i = 0; i < imageMemoryBarrierCount; ++i)
{
- VkImageMemoryBarrier const*const barrier = (VkImageMemoryBarrier const*const)ppMemoryBarriers[i];
+ VkImageMemoryBarrier const*const barrier = (VkImageMemoryBarrier const*const) &pImageMemoryBarriers[i];
if (barrier->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER)
{
if (barrier->subresourceRange.layerCount == 0)
@@ -1012,7 +1016,9 @@
}
device_data->device_dispatch_table->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags,
- memoryBarrierCount, ppMemoryBarriers);
+ memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
}
VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index f924205..321cf1e 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -1127,7 +1127,7 @@
my_data->report_data = debug_report_create_instance(
pTable,
*pInstance,
- pCreateInfo->enabledExtensionNameCount,
+ pCreateInfo->enabledExtensionCount,
pCreateInfo->ppEnabledExtensionNames);
init_mem_tracker(my_data, pAllocator);
@@ -1149,7 +1149,7 @@
pDisp->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) gpa(device, "vkAcquireNextImageKHR");
pDisp->QueuePresentKHR = (PFN_vkQueuePresentKHR) gpa(device, "vkQueuePresentKHR");
my_device_data->wsi_enabled = VK_FALSE;
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0)
my_device_data->wsi_enabled = true;
}
@@ -2107,7 +2107,7 @@
loader_platform_thread_lock_mutex(&globalLock);
if (VK_SUCCESS == result) {
- for (uint32_t i = 0; i < pCreateInfo->bufferCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->commandBufferCount; i++) {
add_cmd_buf_info(my_data, pCreateInfo->commandPool, pCommandBuffer[i]);
}
}
diff --git a/layers/object_tracker.h b/layers/object_tracker.h
index c5a2452..de44f0e 100644
--- a/layers/object_tracker.h
+++ b/layers/object_tracker.h
@@ -193,7 +193,7 @@
pDisp->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) gpa(device, "vkAcquireNextImageKHR");
pDisp->QueuePresentKHR = (PFN_vkQueuePresentKHR) gpa(device, "vkQueuePresentKHR");
my_device_data->wsi_enabled = false;
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0)
my_device_data->wsi_enabled = true;
@@ -237,7 +237,7 @@
#endif // VK_USE_PLATFORM_ANDROID_KHR
instanceExtMap[pDisp].wsi_enabled = false;
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SURFACE_EXTENSION_NAME) == 0)
instanceExtMap[pDisp].wsi_enabled = true;
@@ -698,7 +698,7 @@
my_data->report_data = debug_report_create_instance(
pInstanceTable,
*pInstance,
- pCreateInfo->enabledExtensionNameCount,
+ pCreateInfo->enabledExtensionCount,
pCreateInfo->ppEnabledExtensionNames);
createInstanceRegisterExtensions(pCreateInfo, *pInstance);
@@ -867,7 +867,7 @@
device, pAllocateInfo, pCommandBuffers);
loader_platform_thread_lock_mutex(&objLock);
- for (uint32_t i = 0; i < pAllocateInfo->bufferCount; i++) {
+ for (uint32_t i = 0; i < pAllocateInfo->commandBufferCount; i++) {
alloc_command_buffer(device, pAllocateInfo->commandPool, pCommandBuffers[i], VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT);
}
loader_platform_thread_unlock_mutex(&objLock);
@@ -885,7 +885,7 @@
loader_platform_thread_lock_mutex(&objLock);
skipCall |= validate_device(device, device, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, false);
skipCall |= validate_descriptor_pool(device, pAllocateInfo->descriptorPool, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, false);
- for (uint32_t i = 0; i < pAllocateInfo->setLayoutCount; i++) {
+ for (uint32_t i = 0; i < pAllocateInfo->descriptorSetCount; i++) {
skipCall |= validate_descriptor_set_layout(device, pAllocateInfo->pSetLayouts[i], VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, false);
}
loader_platform_thread_unlock_mutex(&objLock);
@@ -896,7 +896,7 @@
device, pAllocateInfo, pDescriptorSets);
loader_platform_thread_lock_mutex(&objLock);
- for (uint32_t i = 0; i < pAllocateInfo->setLayoutCount; i++) {
+ for (uint32_t i = 0; i < pAllocateInfo->descriptorSetCount; i++) {
alloc_descriptor_set(device, pAllocateInfo->descriptorPool, pDescriptorSets[i], VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT);
}
loader_platform_thread_unlock_mutex(&objLock);
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 1822743..2521ffb 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -1765,7 +1765,7 @@
if (result == VK_SUCCESS) {
layer_data *data = get_my_data_ptr(get_dispatch_key(*pInstance), layer_data_map);
- data->report_data = debug_report_create_instance(pTable, *pInstance, pCreateInfo->enabledExtensionNameCount,
+ data->report_data = debug_report_create_instance(pTable, *pInstance, pCreateInfo->enabledExtensionCount,
pCreateInfo->ppEnabledExtensionNames);
InitParamChecker(data, pAllocator);
@@ -4442,7 +4442,7 @@
VkResult result = get_dispatch_table(pc_device_table_map, device)->AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
- PostAllocateDescriptorSets(device, pAllocateInfo->descriptorPool, pAllocateInfo->setLayoutCount, pDescriptorSets, result);
+ PostAllocateDescriptorSets(device, pAllocateInfo->descriptorPool, pAllocateInfo->descriptorSetCount, pDescriptorSets, result);
return result;
}
@@ -4717,16 +4717,7 @@
"vkCreateRenderPass parameter, VkImageLayout pCreateInfo->pSubpasses->pDepthStencilAttachment->layout, is an unrecognized enumerator");
return false;
}
- if(pCreateInfo->pSubpasses->pPreserveAttachments != nullptr)
- {
- if(pCreateInfo->pSubpasses->pPreserveAttachments->layout < VK_IMAGE_LAYOUT_BEGIN_RANGE ||
- pCreateInfo->pSubpasses->pPreserveAttachments->layout > VK_IMAGE_LAYOUT_END_RANGE)
- {
- log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT)0, 0, __LINE__, 1, "PARAMCHECK",
- "vkCreateRenderPass parameter, VkImageLayout pCreateInfo->pSubpasses->pPreserveAttachments->layout, is an unrecognized enumerator");
- return false;
- }
- }
+
}
if(pCreateInfo->pDependencies != nullptr)
{
@@ -6040,13 +6031,18 @@
bool PreCmdWaitEvents(
VkCommandBuffer commandBuffer,
const VkEvent* pEvents,
- const void* const* ppMemoryBarriers)
+ uint32_t memoryBarrierCount,
+ const VkMemoryBarrier *pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier *pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier *pImageMemoryBarriers)
{
if(pEvents != nullptr)
{
}
- if(ppMemoryBarriers != nullptr)
+ if(pMemoryBarriers != nullptr)
{
}
@@ -6069,26 +6065,35 @@
}
VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
- VkCommandBuffer commandBuffer,
- uint32_t eventCount,
- const VkEvent* pEvents,
- VkPipelineStageFlags srcStageMask,
- VkPipelineStageFlags dstStageMask,
- uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ VkCommandBuffer commandBuffer,
+ uint32_t eventCount,
+ const VkEvent *pEvents,
+ VkPipelineStageFlags srcStageMask,
+ VkPipelineStageFlags dstStageMask,
+ uint32_t memoryBarrierCount,
+ const VkMemoryBarrier *pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier *pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier *pImageMemoryBarriers)
{
- PreCmdWaitEvents(commandBuffer, pEvents, ppMemoryBarriers);
+ PreCmdWaitEvents(commandBuffer, pEvents, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
- get_dispatch_table(pc_device_table_map, commandBuffer)->CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, ppMemoryBarriers);
+ get_dispatch_table(pc_device_table_map, commandBuffer)->CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
PostCmdWaitEvents(commandBuffer, eventCount, srcStageMask, dstStageMask, memoryBarrierCount);
}
bool PreCmdPipelineBarrier(
- VkCommandBuffer commandBuffer,
- const void* const* ppMemoryBarriers)
+ VkCommandBuffer commandBuffer,
+ uint32_t memoryBarrierCount,
+ const VkMemoryBarrier *pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier *pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier *pImageMemoryBarriers)
{
- if(ppMemoryBarriers != nullptr)
+ if(pMemoryBarriers != nullptr)
{
}
@@ -6111,16 +6116,20 @@
}
VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
- VkCommandBuffer commandBuffer,
- VkPipelineStageFlags srcStageMask,
- VkPipelineStageFlags dstStageMask,
- VkDependencyFlags dependencyFlags,
- uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ VkCommandBuffer commandBuffer,
+ VkPipelineStageFlags srcStageMask,
+ VkPipelineStageFlags dstStageMask,
+ VkDependencyFlags dependencyFlags,
+ uint32_t memoryBarrierCount,
+ const VkMemoryBarrier *pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier *pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier *pImageMemoryBarriers)
{
- PreCmdPipelineBarrier(commandBuffer, ppMemoryBarriers);
+ PreCmdPipelineBarrier(commandBuffer, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
- get_dispatch_table(pc_device_table_map, commandBuffer)->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, ppMemoryBarriers);
+ get_dispatch_table(pc_device_table_map, commandBuffer)->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
PostCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount);
}
diff --git a/layers/screenshot.cpp b/layers/screenshot.cpp
index b3bd9af..a3ac0a9 100644
--- a/layers/screenshot.cpp
+++ b/layers/screenshot.cpp
@@ -146,8 +146,8 @@
VkPhysicalDevice physicalDevice = deviceMap[device]->physicalDevice;
VkInstance instance = physDeviceMap[physicalDevice]->instance;
VkQueue queue = deviceMap[device]->queue;
- int width = imageMap[image1]->imageExtent.width;
- int height = imageMap[image1]->imageExtent.height;
+ uint32_t width = imageMap[image1]->imageExtent.width;
+ uint32_t height = imageMap[image1]->imageExtent.height;
VkFormat format = imageMap[image1]->format;
const VkImageSubresource sr = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0};
VkSubresourceLayout sr_layout;
@@ -326,7 +326,7 @@
pDisp->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) gpa(device, "vkAcquireNextImageKHR");
pDisp->QueuePresentKHR = (PFN_vkQueuePresentKHR) gpa(device, "vkQueuePresentKHR");
deviceExtMap[pDisp].wsi_enabled = false;
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0)
deviceExtMap[pDisp].wsi_enabled = true;
}
diff --git a/layers/swapchain.cpp b/layers/swapchain.cpp
index f84f48f..d9e0a09 100644
--- a/layers/swapchain.cpp
+++ b/layers/swapchain.cpp
@@ -107,7 +107,7 @@
// Record whether the WSI device extension was enabled for this VkDevice.
// No need to check if the extension was advertised by
// vkEnumerateDeviceExtensionProperties(), since the loader handles that.
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0) {
my_device_data->deviceMap[device].swapchainExtensionEnabled = true;
@@ -177,7 +177,7 @@
// Record whether the WSI instance extension was enabled for this
// VkInstance. No need to check if the extension was advertised by
// vkEnumerateInstanceExtensionProperties(), since the loader handles that.
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SURFACE_EXTENSION_NAME) == 0) {
my_data->instanceMap[instance].surfaceExtensionEnabled = true;
@@ -296,7 +296,7 @@
my_data->report_data = debug_report_create_instance(
pTable,
*pInstance,
- pCreateInfo->enabledExtensionNameCount,
+ pCreateInfo->enabledExtensionCount,
pCreateInfo->ppEnabledExtensionNames);
// Call the following function after my_data is initialized:
createInstanceRegisterExtensions(pCreateInfo, *pInstance);
diff --git a/layers/unique_objects.h b/layers/unique_objects.h
index 68505e2..02e6699 100644
--- a/layers/unique_objects.h
+++ b/layers/unique_objects.h
@@ -105,7 +105,7 @@
#endif // VK_USE_PLATFORM_ANDROID_KHR
instanceExtMap[pDisp] = {};
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SURFACE_EXTENSION_NAME) == 0)
instanceExtMap[pDisp].wsi_enabled = true;
#ifdef VK_USE_PLATFORM_XLIB_KHR
@@ -163,7 +163,7 @@
pDisp->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) gpa(device, "vkAcquireNextImageKHR");
pDisp->QueuePresentKHR = (PFN_vkQueuePresentKHR) gpa(device, "vkQueuePresentKHR");
my_device_data->wsi_enabled = false;
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0)
my_device_data->wsi_enabled = true;
}
diff --git a/loader/debug_report.c b/loader/debug_report.c
index 4065fb0..7d1a9b3 100644
--- a/loader/debug_report.c
+++ b/loader/debug_report.c
@@ -58,7 +58,7 @@
{
ptr_instance->debug_report_enabled = false;
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DEBUG_REPORT_EXTENSION_NAME) == 0) {
ptr_instance->debug_report_enabled = true;
return;
diff --git a/loader/loader.c b/loader/loader.c
index 81c805a..0b9beb0 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -2788,7 +2788,7 @@
err = loader_add_layer_names_to_list(
inst,
&inst->activated_layer_list,
- pCreateInfo->enabledLayerNameCount,
+ pCreateInfo->enabledLayerCount,
pCreateInfo->ppEnabledLayerNames,
instance_layers);
@@ -2926,7 +2926,7 @@
err = loader_add_layer_names_to_list(
inst,
&dev->activated_layer_list,
- pCreateInfo->enabledLayerNameCount,
+ pCreateInfo->enabledLayerCount,
pCreateInfo->ppEnabledLayerNames,
device_layers);
@@ -3055,7 +3055,7 @@
VkExtensionProperties *extension_prop;
struct loader_layer_properties *layer_prop;
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
extension_prop = get_extension_property(pCreateInfo->ppEnabledExtensionNames[i],
icd_exts);
@@ -3066,7 +3066,7 @@
extension_prop = NULL;
/* Not in global list, search layer extension lists */
- for (uint32_t j = 0; j < pCreateInfo->enabledLayerNameCount; j++) {
+ for (uint32_t j = 0; j < pCreateInfo->enabledLayerCount; j++) {
layer_prop = loader_get_layer_property(pCreateInfo->ppEnabledLayerNames[i],
instance_layer);
if (!layer_prop) {
@@ -3100,7 +3100,7 @@
VkExtensionProperties *extension_prop;
struct loader_layer_properties *layer_prop;
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
const char *extension_name = pCreateInfo->ppEnabledExtensionNames[i];
extension_prop = get_extension_property(extension_name,
&phys_dev->device_extension_cache);
@@ -3110,7 +3110,7 @@
}
/* Not in global list, search layer extension lists */
- for (uint32_t j = 0; j < pCreateInfo->enabledLayerNameCount; j++) {
+ for (uint32_t j = 0; j < pCreateInfo->enabledLayerCount; j++) {
const char *layer_name = pCreateInfo->ppEnabledLayerNames[j];
layer_prop = loader_get_layer_property(layer_name,
device_layer);
@@ -3153,7 +3153,7 @@
memcpy(&icd_create_info, pCreateInfo, sizeof(icd_create_info));
- icd_create_info.enabledLayerNameCount = 0;
+ icd_create_info.enabledLayerCount = 0;
icd_create_info.ppEnabledLayerNames = NULL;
/*
@@ -3163,7 +3163,7 @@
* library could support a layer, but it would be
* independent of the actual ICD, just in the same library.
*/
- filtered_extension_names = loader_stack_alloc(pCreateInfo->enabledExtensionNameCount * sizeof(char *));
+ filtered_extension_names = loader_stack_alloc(pCreateInfo->enabledExtensionCount * sizeof(char *));
if (!filtered_extension_names) {
return VK_ERROR_OUT_OF_HOST_MEMORY;
}
@@ -3172,7 +3172,7 @@
for (uint32_t i = 0; i < ptr_instance->icd_libs.count; i++) {
icd = loader_icd_add(ptr_instance, &ptr_instance->icd_libs.list[i]);
if (icd) {
- icd_create_info.enabledExtensionNameCount = 0;
+ icd_create_info.enabledExtensionCount = 0;
struct loader_extension_list icd_exts;
loader_log(ptr_instance, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0, "Build ICD instance extension list");
@@ -3184,12 +3184,12 @@
icd->this_icd_lib->lib_name,
&icd_exts);
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
prop = get_extension_property(pCreateInfo->ppEnabledExtensionNames[i],
&icd_exts);
if (prop) {
- filtered_extension_names[icd_create_info.enabledExtensionNameCount] = (char *) pCreateInfo->ppEnabledExtensionNames[i];
- icd_create_info.enabledExtensionNameCount++;
+ filtered_extension_names[icd_create_info.enabledExtensionCount] = (char *) pCreateInfo->ppEnabledExtensionNames[i];
+ icd_create_info.enabledExtensionCount++;
}
}
@@ -3500,8 +3500,8 @@
}
/* validate any app enabled layers are available */
- if (pCreateInfo->enabledLayerNameCount > 0) {
- res = loader_validate_layers(pCreateInfo->enabledLayerNameCount,
+ if (pCreateInfo->enabledLayerCount > 0) {
+ res = loader_validate_layers(pCreateInfo->enabledLayerCount,
pCreateInfo->ppEnabledLayerNames,
&inst->device_layer_list);
if (res != VK_SUCCESS) {
@@ -3537,7 +3537,7 @@
* library could support a layer, but it would be
* independent of the actual ICD, just in the same library.
*/
- filtered_extension_names = loader_stack_alloc(pCreateInfo->enabledExtensionNameCount * sizeof(char *));
+ filtered_extension_names = loader_stack_alloc(pCreateInfo->enabledExtensionCount * sizeof(char *));
if (!filtered_extension_names) {
return VK_ERROR_OUT_OF_HOST_MEMORY;
}
@@ -3546,19 +3546,19 @@
memcpy(&device_create_info, pCreateInfo, sizeof(VkDeviceCreateInfo));
/* ICD's do not use layers */
- device_create_info.enabledLayerNameCount = 0;
+ device_create_info.enabledLayerCount = 0;
device_create_info.ppEnabledLayerNames = NULL;
- device_create_info.enabledExtensionNameCount = 0;
+ device_create_info.enabledExtensionCount = 0;
device_create_info.ppEnabledExtensionNames = (const char * const *) filtered_extension_names;
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
const char *extension_name = pCreateInfo->ppEnabledExtensionNames[i];
VkExtensionProperties *prop = get_extension_property(extension_name,
&phys_dev->device_extension_cache);
if (prop) {
- filtered_extension_names[device_create_info.enabledExtensionNameCount] = (char *) extension_name;
- device_create_info.enabledExtensionNameCount++;
+ filtered_extension_names[device_create_info.enabledExtensionCount] = (char *) extension_name;
+ device_create_info.enabledExtensionCount++;
}
}
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 6a81caf..64285b0 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -87,7 +87,7 @@
}
/* Due to implicit layers need to get layer list even if
- * enabledLayerNameCount == 0 and VK_INSTANCE_LAYERS is unset. For now always
+ * enabledLayerCount == 0 and VK_INSTANCE_LAYERS is unset. For now always
* get layer list (both instance and device) via loader_layer_scan(). */
memset(&ptr_instance->instance_layer_list, 0, sizeof(ptr_instance->instance_layer_list));
memset(&ptr_instance->device_layer_list, 0, sizeof(ptr_instance->device_layer_list));
@@ -96,8 +96,8 @@
&ptr_instance->device_layer_list);
/* validate the app requested layers to be enabled */
- if (pCreateInfo->enabledLayerNameCount > 0) {
- res = loader_validate_layers(pCreateInfo->enabledLayerNameCount,
+ if (pCreateInfo->enabledLayerCount > 0) {
+ res = loader_validate_layers(pCreateInfo->enabledLayerCount,
pCreateInfo->ppEnabledLayerNames,
&ptr_instance->instance_layer_list);
if (res != VK_SUCCESS) {
@@ -1026,7 +1026,7 @@
res = disp->AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
if (res == VK_SUCCESS) {
- for (uint32_t i =0; i < pAllocateInfo->bufferCount; i++) {
+ for (uint32_t i =0; i < pAllocateInfo->commandBufferCount; i++) {
if (pCommandBuffers[i]) {
loader_init_dispatch(pCommandBuffers[i], disp);
}
@@ -1364,22 +1364,49 @@
disp->CmdResetEvent(commandBuffer, event, stageMask);
}
-LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags sourceStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers)
+LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
+ VkCommandBuffer commandBuffer,
+ uint32_t eventCount,
+ const VkEvent* pEvents,
+ VkPipelineStageFlags sourceStageMask,
+ VkPipelineStageFlags dstStageMask,
+ uint32_t memoryBarrierCount,
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(commandBuffer);
- disp->CmdWaitEvents(commandBuffer, eventCount, pEvents, sourceStageMask, dstStageMask, memoryBarrierCount, ppMemoryBarriers);
+ disp->CmdWaitEvents(commandBuffer, eventCount, pEvents, sourceStageMask,
+ dstStageMask, memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
}
-LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers)
+LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
+ VkCommandBuffer commandBuffer,
+ VkPipelineStageFlags srcStageMask,
+ VkPipelineStageFlags dstStageMask,
+ VkDependencyFlags dependencyFlags,
+ uint32_t memoryBarrierCount,
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(commandBuffer);
- disp->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, ppMemoryBarriers);
+ disp->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask,
+ dependencyFlags, memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
}
LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t slot, VkFlags flags)
diff --git a/loader/wsi.c b/loader/wsi.c
index f9a82f5..584e3e6 100644
--- a/loader/wsi.c
+++ b/loader/wsi.c
@@ -130,7 +130,7 @@
ptr_instance->wsi_android_surface_enabled = false;
#endif // VK_USE_PLATFORM_ANDROID_KHR
- for (uint32_t i = 0; i < pCreateInfo->enabledExtensionNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SURFACE_EXTENSION_NAME) == 0) {
ptr_instance->wsi_surface_enabled = true;
continue;
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index 967d75a..68e7938 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -800,11 +800,11 @@
// is this necessary?
VkBufferMemoryBarrier memory_barrier = bufs[0].buffer_memory_barrier(
VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_MEMORY_READ_BIT, 0, 4);
- VkBufferMemoryBarrier *pmemory_barrier = &memory_barrier;
+ const VkBufferMemoryBarrier *pmemory_barrier = &memory_barrier;
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
- vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 0, NULL, 1, pmemory_barrier, 0, NULL);
VkBufferCopy region = {};
region.size = 4;
@@ -813,7 +813,7 @@
memory_barrier = bufs[1].buffer_memory_barrier(
VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_MEMORY_READ_BIT, 0, 4);
pmemory_barrier = &memory_barrier;
- vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 0, NULL, 1, pmemory_barrier, 0, NULL);
vkCmdCopyBuffer(cmd_.handle(), bufs[1].handle(), bufs[2].handle(), 1, ®ion);
@@ -827,7 +827,7 @@
memory_barrier = bufs[1].buffer_memory_barrier(
VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_HOST_READ_BIT, 0, 4);
pmemory_barrier = &memory_barrier;
- vkCmdWaitEvents(cmd_.handle(), 1, &event, src_stages, dest_stages, 1, (const void **)&pmemory_barrier);
+ vkCmdWaitEvents(cmd_.handle(), 1, &event, src_stages, dest_stages, 0, NULL, 1, pmemory_barrier, 0, NULL);
cmd_.end();
@@ -1252,13 +1252,13 @@
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
- vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 1, (const void * const*)&p_to_clear[0]);
+ vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, p_to_clear[0]);
vkCmdClearColorImage(cmd_.handle(),
img.handle(), VK_IMAGE_LAYOUT_GENERAL,
&clear_color, ranges.size(), &ranges[0]);
- vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 1, (const void * const*)&p_to_xfer[0]);
+ vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, p_to_xfer[0]);
cmd_.end();
@@ -1438,7 +1438,7 @@
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
- vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, to_clear.size(), (const void * const*) p_to_clear.data());
+ vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, to_clear.size(), *(p_to_clear.data()));
VkClearDepthStencilValue clear_value = {
depth,
@@ -1449,7 +1449,7 @@
&clear_value,
ranges.size(), &ranges[0]);
- vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, to_xfer.size(), (const void * const*)p_to_xfer.data());
+ vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, to_xfer.size(), *(p_to_xfer.data()));
cmd_.end();
diff --git a/tests/image_tests.cpp b/tests/image_tests.cpp
index 709595b..add22aa 100644
--- a/tests/image_tests.cpp
+++ b/tests/image_tests.cpp
@@ -100,9 +100,9 @@
inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
inst_info.pNext = NULL;
inst_info.pApplicationInfo = &app_info;
- inst_info.enabledLayerNameCount = 0;
+ inst_info.enabledLayerCount = 0;
inst_info.ppEnabledLayerNames = NULL;
- inst_info.enabledExtensionNameCount = 0;
+ inst_info.enabledExtensionCount = 0;
inst_info.ppEnabledExtensionNames = NULL;
err = vkCreateInstance(&inst_info, NULL, &this->inst);
ASSERT_VK_SUCCESS(err);
diff --git a/tests/init.cpp b/tests/init.cpp
index 93fa997..12d8dfd 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -105,9 +105,9 @@
inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
inst_info.pNext = NULL;
inst_info.pApplicationInfo = &app_info;
- inst_info.enabledLayerNameCount = 0;
+ inst_info.enabledLayerCount = 0;
inst_info.ppEnabledLayerNames = NULL;
- inst_info.enabledExtensionNameCount = 0;
+ inst_info.enabledExtensionCount = 0;
inst_info.ppEnabledExtensionNames = NULL;
err = vkCreateInstance(&inst_info, NULL, &inst);
ASSERT_VK_SUCCESS(err);
@@ -446,7 +446,7 @@
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
info.commandPool = commandPool;
- info.bufferCount = 1;
+ info.commandBufferCount = 1;
info.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
err = vkAllocateCommandBuffers(device(), &info, &commandBuffer);
ASSERT_VK_SUCCESS(err) << "vkAllocateCommandBuffers failed";
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index d3e8c94..bdf75db 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -550,7 +550,7 @@
err = vkQueueSubmit( m_device->m_queue, 1, &submit_info, testFence.handle());
ASSERT_VK_SUCCESS( err );
-
+ VkCommandBufferInheritanceInfo hinfo = {};
VkCommandBufferBeginInfo info = {};
info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
@@ -958,7 +958,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -1369,7 +1369,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -1405,9 +1405,12 @@
VkCommandBufferObj commandBuffer(m_device, m_commandPool);
VkCommandBufferBeginInfo cmd_buf_info = {};
memset(&cmd_buf_info, 0, sizeof(VkCommandBufferBeginInfo));
+ VkCommandBufferInheritanceInfo cmd_buf_hinfo = {};
+ memset(&cmd_buf_hinfo, 0, sizeof(VkCommandBufferInheritanceInfo));
cmd_buf_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
cmd_buf_info.pNext = NULL;
cmd_buf_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
+ cmd_buf_info.pInheritanceInfo = &cmd_buf_hinfo;
vkBeginCommandBuffer(commandBuffer.GetBufferHandle(), &cmd_buf_info);
vkCmdBindPipeline(commandBuffer.GetBufferHandle(), VK_PIPELINE_BIND_POINT_GRAPHICS, pipe.handle());
@@ -1470,7 +1473,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -1532,7 +1535,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -1648,7 +1651,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -1730,7 +1733,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -1805,7 +1808,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -2002,13 +2005,13 @@
VkDescriptorSet descriptorSet[NUM_SETS] = {};
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = NUM_LAYOUTS;
+ alloc_info.descriptorSetCount = NUM_LAYOUTS;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, descriptorSet);
ASSERT_VK_SUCCESS(err);
VkDescriptorSet ds0_fs_only = {};
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.pSetLayouts = &ds_layout_fs_only;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &ds0_fs_only);
ASSERT_VK_SUCCESS(err);
@@ -2300,34 +2303,7 @@
}
}
-TEST_F(VkLayerTest, PrimaryCommandBufferFramebufferAndRenderpass)
-{
- m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT,
- "may not specify framebuffer or renderpass parameters");
-
- ASSERT_NO_FATAL_FAILURE(InitState());
-
- // Calls AllocateCommandBuffers
- VkCommandBufferObj commandBuffer(m_device, m_commandPool);
-
- // Force the failure by setting the Renderpass and Framebuffer fields with (fake) data
- VkCommandBufferBeginInfo cmd_buf_info = {};
- cmd_buf_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
- cmd_buf_info.pNext = NULL;
- cmd_buf_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
- cmd_buf_info.renderPass = (VkRenderPass)((size_t)0xcadecade);
- cmd_buf_info.framebuffer = (VkFramebuffer)((size_t)0xcadecade);
-
-
- // The error should be caught by validation of the BeginCommandBuffer call
- vkBeginCommandBuffer(commandBuffer.GetBufferHandle(), &cmd_buf_info);
-
- if (!m_errorMonitor->DesiredMsgFound()) {
- FAIL() << "Did not receive Error 'vkAllocateCommandBuffers(): Primary Command Buffer may not specify framebuffer or renderpass parameters'";
- m_errorMonitor->DumpFailureMsgs();
- }
-}
TEST_F(VkLayerTest, SecondaryCommandBufferNullRenderpass)
{
@@ -2344,16 +2320,18 @@
cmd.pNext = NULL;
cmd.commandPool = m_commandPool;
cmd.level = VK_COMMAND_BUFFER_LEVEL_SECONDARY;
- cmd.bufferCount = 1;
+ cmd.commandBufferCount = 1;
err = vkAllocateCommandBuffers(m_device->device(), &cmd, &draw_cmd);
ASSERT_VK_SUCCESS(err);
// Force the failure by not setting the Renderpass and Framebuffer fields
VkCommandBufferBeginInfo cmd_buf_info = {};
+ VkCommandBufferInheritanceInfo cmd_buf_hinfo = {};
cmd_buf_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
cmd_buf_info.pNext = NULL;
cmd_buf_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT | VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT;
+ cmd_buf_info.pInheritanceInfo = &cmd_buf_hinfo;
// The error should be caught by validation of the BeginCommandBuffer call
vkBeginCommandBuffer(draw_cmd, &cmd_buf_info);
@@ -2381,9 +2359,11 @@
// Force the failure by setting the Renderpass and Framebuffer fields with (fake) data
VkCommandBufferBeginInfo cmd_buf_info = {};
+ VkCommandBufferInheritanceInfo cmd_buf_hinfo = {};
cmd_buf_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
cmd_buf_info.pNext = NULL;
cmd_buf_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
+ cmd_buf_info.pInheritanceInfo = &cmd_buf_hinfo;
// Begin CB to transition to recording state
vkBeginCommandBuffer(commandBuffer.GetBufferHandle(), &cmd_buf_info);
@@ -2458,7 +2438,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -2681,7 +2661,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -2787,7 +2767,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -2892,7 +2872,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -3050,7 +3030,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -3493,7 +3473,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -3504,7 +3484,7 @@
sampler_ci.pNext = NULL;
sampler_ci.magFilter = VK_FILTER_NEAREST;
sampler_ci.minFilter = VK_FILTER_NEAREST;
- sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE;
+ sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
sampler_ci.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
@@ -3591,7 +3571,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -3602,7 +3582,7 @@
sampler_ci.pNext = NULL;
sampler_ci.magFilter = VK_FILTER_NEAREST;
sampler_ci.minFilter = VK_FILTER_NEAREST;
- sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE;
+ sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
sampler_ci.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
@@ -3689,7 +3669,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -3700,7 +3680,7 @@
sampler_ci.pNext = NULL;
sampler_ci.magFilter = VK_FILTER_NEAREST;
sampler_ci.minFilter = VK_FILTER_NEAREST;
- sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE;
+ sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
sampler_ci.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
@@ -3787,7 +3767,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -3798,7 +3778,7 @@
sampler_ci.pNext = NULL;
sampler_ci.magFilter = VK_FILTER_NEAREST;
sampler_ci.minFilter = VK_FILTER_NEAREST;
- sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE;
+ sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
sampler_ci.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
@@ -3884,7 +3864,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -3959,7 +3939,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -3970,7 +3950,7 @@
sampler_ci.pNext = NULL;
sampler_ci.magFilter = VK_FILTER_NEAREST;
sampler_ci.minFilter = VK_FILTER_NEAREST;
- sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE;
+ sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
sampler_ci.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
@@ -4067,7 +4047,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -4078,7 +4058,7 @@
sampler_ci.pNext = NULL;
sampler_ci.magFilter = VK_FILTER_NEAREST;
sampler_ci.minFilter = VK_FILTER_NEAREST;
- sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE;
+ sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
sampler_ci.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
sampler_ci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
@@ -4209,7 +4189,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -4302,7 +4282,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -4347,7 +4327,7 @@
color_attachment.clearValue.color.float32[2] = 1.0;
color_attachment.clearValue.color.float32[3] = 1.0;
color_attachment.colorAttachment = 0;
- VkClearRect clear_rect = { { { 0, 0 }, { (int)m_width, (int)m_height } } };
+ VkClearRect clear_rect = { { { 0, 0 }, { (uint32_t)m_width, (uint32_t)m_height } } };
vkCmdClearAttachments(m_commandBuffer->GetBufferHandle(), 1, &color_attachment, 1, &clear_rect);
@@ -4407,7 +4387,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
@@ -6281,7 +6261,7 @@
VkDescriptorSet descriptorSet;
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = 1;
+ alloc_info.descriptorSetCount = 1;
alloc_info.descriptorPool = ds_pool;
alloc_info.pSetLayouts = &ds_layout;
err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
diff --git a/tests/render_tests.cpp b/tests/render_tests.cpp
index 5e1039b..6c48e9d 100644
--- a/tests/render_tests.cpp
+++ b/tests/render_tests.cpp
@@ -4260,7 +4260,7 @@
color_attachment.clearValue.color.float32[2] = 0;
color_attachment.clearValue.color.float32[3] = 0;
color_attachment.colorAttachment = 0;
- VkClearRect clear_rect = { { { 0, 0 }, { (int)m_width, (int)m_height } } };
+ VkClearRect clear_rect = { { { 0, 0 }, { (uint32_t)m_width, (uint32_t)m_height } } };
vkCmdClearAttachments(m_commandBuffer->handle(), 1, &color_attachment,
1, &clear_rect);
diff --git a/tests/test_environment.cpp b/tests/test_environment.cpp
index 766cd60..a3ae06e 100644
--- a/tests/test_environment.cpp
+++ b/tests/test_environment.cpp
@@ -85,9 +85,9 @@
inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
inst_info.pNext = NULL;
inst_info.pApplicationInfo = &app_;
- inst_info.enabledExtensionNameCount = instance_extension_names.size();
+ inst_info.enabledExtensionCount = instance_extension_names.size();
inst_info.ppEnabledExtensionNames = (instance_extension_names.size()) ? &instance_extension_names[0] : NULL;
- inst_info.enabledLayerNameCount = 0;
+ inst_info.enabledLayerCount = 0;
inst_info.ppEnabledLayerNames = NULL;
err = vkCreateInstance(&inst_info, NULL, &inst);
ASSERT_EQ(VK_SUCCESS, err);
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 465c1ab..a087a7c 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -99,9 +99,9 @@
instInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instInfo.pNext = NULL;
instInfo.pApplicationInfo = &app_info;
- instInfo.enabledLayerNameCount = instance_layer_names.size();
+ instInfo.enabledLayerCount = instance_layer_names.size();
instInfo.ppEnabledLayerNames = instance_layer_names.data();
- instInfo.enabledExtensionNameCount = instance_extension_names.size();
+ instInfo.enabledExtensionCount = instance_extension_names.size();
instInfo.ppEnabledExtensionNames = instance_extension_names.data();
err = vkCreateInstance(&instInfo, NULL, &this->inst);
ASSERT_VK_SUCCESS(err);
@@ -576,7 +576,7 @@
VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
// write barrier to the command buffer
- vkCmdPipelineBarrier(cmd_buf->handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier(cmd_buf->handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
}
void VkImageObj::SetLayout(VkCommandBufferObj *cmd_buf,
@@ -863,7 +863,7 @@
samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
samplerCreateInfo.magFilter = VK_FILTER_NEAREST;
samplerCreateInfo.minFilter = VK_FILTER_NEAREST;
- samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_BASE;
+ samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT;
samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT;
samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT;
@@ -970,15 +970,20 @@
// open the command buffer
VkCommandBufferBeginInfo cmd_buf_info = {};
+ VkCommandBufferInheritanceInfo cmd_buf_hinfo= {};
cmd_buf_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
cmd_buf_info.pNext = NULL;
cmd_buf_info.flags = 0;
- cmd_buf_info.renderPass = VK_NULL_HANDLE;
- cmd_buf_info.subpass = 0;
- cmd_buf_info.framebuffer = VK_NULL_HANDLE;
- cmd_buf_info.occlusionQueryEnable = VK_FALSE;
- cmd_buf_info.queryFlags = 0;
- cmd_buf_info.pipelineStatistics = 0;
+ cmd_buf_info.pInheritanceInfo = &cmd_buf_hinfo;
+
+ cmd_buf_hinfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
+ cmd_buf_hinfo.pNext = NULL;
+ cmd_buf_hinfo.renderPass = VK_NULL_HANDLE;
+ cmd_buf_hinfo.subpass = 0;
+ cmd_buf_hinfo.framebuffer = VK_NULL_HANDLE;
+ cmd_buf_hinfo.occlusionQueryEnable = VK_FALSE;
+ cmd_buf_hinfo.queryFlags = 0;
+ cmd_buf_hinfo.pipelineStatistics = 0;
err = m_commandBuffer->BeginCommandBuffer(&cmd_buf_info);
ASSERT_VK_SUCCESS(err);
@@ -991,7 +996,7 @@
VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
// write barrier to the command buffer
- m_commandBuffer->PipelineBarrier(src_stages, dest_stages, 0, 1, (const void **)&pmemory_barrier);
+ m_commandBuffer->PipelineBarrier(src_stages, dest_stages, 0, 0, NULL, 1, pmemory_barrier, 0, NULL);
// finish recording the command buffer
err = m_commandBuffer->EndCommandBuffer();
@@ -1352,9 +1357,15 @@
return VK_SUCCESS;
}
-void VkCommandBufferObj::PipelineBarrier(VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers)
+void VkCommandBufferObj::PipelineBarrier(VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages,
+ VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier *pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier *pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier *pImageMemoryBarriers)
{
- vkCmdPipelineBarrier(handle(), src_stages, dest_stages, dependencyFlags, memoryBarrierCount, ppMemoryBarriers);
+ vkCmdPipelineBarrier(handle(), src_stages, dest_stages, dependencyFlags,
+ memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
}
void VkCommandBufferObj::ClearAllBuffers(VkClearColorValue clear_color, float depth_clear_color, uint32_t stencil_clear_color,
@@ -1391,7 +1402,7 @@
for (i = 0; i < m_renderTargets.size(); i++) {
memory_barrier.image = m_renderTargets[i]->image();
memory_barrier.oldLayout = m_renderTargets[i]->layout();
- vkCmdPipelineBarrier( handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier( handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
m_renderTargets[i]->layout(memory_barrier.newLayout);
vkCmdClearColorImage(handle(),
@@ -1416,7 +1427,7 @@
memory_barrier.image = depthStencilObj->handle();
memory_barrier.subresourceRange = dsRange;
- vkCmdPipelineBarrier( handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier( handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
VkClearDepthStencilValue clear_value = {
depth_clear_color,
@@ -1432,7 +1443,7 @@
memory_barrier.newLayout = memory_barrier.oldLayout;
memory_barrier.oldLayout = VK_IMAGE_LAYOUT_GENERAL;
memory_barrier.subresourceRange = dsRange;
- vkCmdPipelineBarrier( handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier( handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
}
}
@@ -1498,7 +1509,7 @@
{
memory_barrier.image = m_renderTargets[i]->image();
memory_barrier.oldLayout = m_renderTargets[i]->layout();
- vkCmdPipelineBarrier( handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier( handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
m_renderTargets[i]->layout(memory_barrier.newLayout);
}
}
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index 3caee86..7105a68 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -181,7 +181,10 @@
VkResult BeginCommandBuffer();
VkResult BeginCommandBuffer(VkCommandBufferBeginInfo *pInfo);
VkResult EndCommandBuffer();
- void PipelineBarrier(VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
+ void PipelineBarrier(VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages, VkDependencyFlags dependencyFlags,
+ uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
void AddRenderTarget(VkImageObj *renderTarget);
void AddDepthStencil();
void ClearAllBuffers(VkClearColorValue clear_color, float depth_clear_color, uint32_t stencil_clear_color, VkDepthStencilObj *depthStencilObj);
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index 89b2c13..8cf6fb7 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -290,9 +290,9 @@
dev_info.pNext = NULL;
dev_info.queueCreateInfoCount = queue_info.size();
dev_info.pQueueCreateInfos = queue_info.data();
- dev_info.enabledLayerNameCount = layers.size();
+ dev_info.enabledLayerCount = layers.size();
dev_info.ppEnabledLayerNames = layers.data();
- dev_info.enabledExtensionNameCount = extensions.size();
+ dev_info.enabledExtensionCount = extensions.size();
dev_info.ppEnabledExtensionNames = extensions.data();
init(dev_info);
@@ -736,7 +736,7 @@
VkDescriptorSetAllocateInfo alloc_info = {};
alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
- alloc_info.setLayoutCount = layout_handles.size();
+ alloc_info.descriptorSetCount = layout_handles.size();
alloc_info.descriptorPool = handle();
alloc_info.pSetLayouts = layout_handles.data();
VkResult err = vkAllocateDescriptorSets(device(), &alloc_info, set_handles.data());
@@ -811,14 +811,18 @@
void CommandBuffer::begin()
{
VkCommandBufferBeginInfo info = {};
+ VkCommandBufferInheritanceInfo hinfo = {};
info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
- info.renderPass = VK_NULL_HANDLE;
- info.subpass = 0;
- info.framebuffer = VK_NULL_HANDLE;
- info.occlusionQueryEnable = VK_FALSE;
- info.queryFlags = 0;
- info.pipelineStatistics = 0;
+ info.pInheritanceInfo = &hinfo;
+ hinfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
+ hinfo.pNext = NULL;
+ hinfo.renderPass = VK_NULL_HANDLE;
+ hinfo.subpass = 0;
+ hinfo.framebuffer = VK_NULL_HANDLE;
+ hinfo.occlusionQueryEnable = VK_FALSE;
+ hinfo.queryFlags = 0;
+ hinfo.pipelineStatistics = 0;
begin(&info);
}
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 00894c2..e8afe68 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -653,7 +653,7 @@
VkQueryPoolCreateInfo info = {};
info.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
info.queryType = type;
- info.entryCount = slot_count;
+ info.queryCount = slot_count;
return info;
}
@@ -871,7 +871,7 @@
VkCommandBufferAllocateInfo info = {};
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
info.commandPool = pool;
- info.bufferCount = 1;
+ info.commandBufferCount = 1;
return info;
}
diff --git a/tests/vktestframework.cpp b/tests/vktestframework.cpp
index 6ecb5ef..5ea9d1e 100644
--- a/tests/vktestframework.cpp
+++ b/tests/vktestframework.cpp
@@ -648,7 +648,7 @@
memoryBarrier.image = m_buffers[m_current_buffer].image;
VkImageMemoryBarrier *pmemory_barrier = &memoryBarrier;
vkCmdPipelineBarrier(m_cmdbuf.handle(), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
- 0, 1, (const void * const*)&pmemory_barrier);
+ 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
VkBufferImageCopy region = {};
region.bufferRowLength = m_display_image->m_width;
@@ -669,7 +669,7 @@
memoryBarrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
memoryBarrier.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT;
vkCmdPipelineBarrier(m_cmdbuf.handle(), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
- 0, 1, (const void * const*)&pmemory_barrier);
+ 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
m_cmdbuf.end();
VkCommandBuffer cmdBufs[1];
@@ -1092,15 +1092,19 @@
VkResult U_ASSERT_ONLY err;
VkCommandBufferBeginInfo cmd_buf_info = {};
+ VkCommandBufferInheritanceInfo cmd_buf_hinfo = {};
cmd_buf_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
cmd_buf_info.pNext = NULL;
cmd_buf_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
- cmd_buf_info.renderPass = { VK_NULL_HANDLE };
- cmd_buf_info.subpass = 0;
- cmd_buf_info.framebuffer = { VK_NULL_HANDLE };
- cmd_buf_info.occlusionQueryEnable = VK_FALSE;
- cmd_buf_info.queryFlags = 0;
- cmd_buf_info.pipelineStatistics = 0;
+ cmd_buf_info.pInheritanceInfo = &cmd_buf_hinfo;
+ cmd_buf_hinfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
+ cmd_buf_hinfo.pNext = NULL;
+ cmd_buf_hinfo.renderPass = { VK_NULL_HANDLE };
+ cmd_buf_hinfo.subpass = 0;
+ cmd_buf_hinfo.framebuffer = { VK_NULL_HANDLE };
+ cmd_buf_hinfo.occlusionQueryEnable = VK_FALSE;
+ cmd_buf_hinfo.queryFlags = 0;
+ cmd_buf_hinfo.pipelineStatistics = 0;
err = vkBeginCommandBuffer(m_cmdbuf.handle(), &cmd_buf_info);
assert(!err);
@@ -1134,7 +1138,7 @@
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
- vkCmdPipelineBarrier(m_cmdbuf.handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
+ vkCmdPipelineBarrier(m_cmdbuf.handle(), src_stages, dest_stages, 0, 0, NULL, 0, NULL, 1, pmemory_barrier);
err = vkEndCommandBuffer(m_cmdbuf.handle());
assert(!err);
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index b43632a..b12b474 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -891,7 +891,7 @@
' my_data->report_data = debug_report_create_instance(\n'
' instance_dispatch_table(*pInstance),\n'
' *pInstance,\n'
- ' pCreateInfo->enabledExtensionNameCount,\n'
+ ' pCreateInfo->enabledExtensionCount,\n'
' pCreateInfo->ppEnabledExtensionNames);\n'
' init_generic(my_data, pAllocator);\n'
' sprintf(str, "Completed generic layered %s\\n");\n'
@@ -1023,35 +1023,6 @@
header_txt.append(' return retVal;')
header_txt.append('}')
header_txt.append('')
- header_txt.append('void interpret_memBarriers(const void* const* ppMemoryBarriers, uint32_t memoryBarrierCount)')
- header_txt.append('{')
- header_txt.append(' if (ppMemoryBarriers) {')
- header_txt.append(' string tmp_str;')
- header_txt.append(' for (uint32_t i = 0; i < memoryBarrierCount; i++) {')
- header_txt.append(' switch(*(VkStructureType*)ppMemoryBarriers[i])')
- header_txt.append(' {')
- header_txt.append(' case VK_STRUCTURE_TYPE_MEMORY_BARRIER:')
- header_txt.append(' tmp_str = vk_print_vkmemorybarrier((VkMemoryBarrier*)ppMemoryBarriers[i], " ");')
- header_txt.append(' break;')
- header_txt.append(' case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:')
- header_txt.append(' tmp_str = vk_print_vkbuffermemorybarrier((VkBufferMemoryBarrier*)ppMemoryBarriers[i], " ");')
- header_txt.append(' break;')
- header_txt.append(' case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:')
- header_txt.append(' tmp_str = vk_print_vkimagememorybarrier((VkImageMemoryBarrier*)ppMemoryBarriers[i], " ");')
- header_txt.append(' break;')
- header_txt.append(' default:')
- header_txt.append(' break;')
- header_txt.append(' }')
- header_txt.append('')
- header_txt.append(' if (StreamControl::writeAddress == true) {')
- header_txt.append(' (*outputStream) << " ppMemoryBarriers[" << i << "] (" << &ppMemoryBarriers[i] << ")" << endl << tmp_str << endl;')
- header_txt.append(' } else {')
- header_txt.append(' (*outputStream) << " ppMemoryBarriers[" << i << "] (address)" << endl << " address" << endl;')
- header_txt.append(' }')
- header_txt.append(' }')
- header_txt.append(' }')
- header_txt.append('}')
- header_txt.append('')
return "\n".join(header_txt)
def generate_init(self):
@@ -1230,10 +1201,6 @@
log_func += '\n%s(*outputStream) << " %s (" << %s << ")" << endl << tmp_str << endl;' % (indent, local_name, local_name)
indent = indent[4:]
log_func += '\n%s}' % (indent)
- elif 'memoryBarrierCount' == sp_param_dict[sp_index]: # call helper function
- log_func += '\n%sif (ppMemoryBarriers) {' % (indent)
- log_func += '\n%s interpret_memBarriers(ppMemoryBarriers, memoryBarrierCount);' % (indent)
- log_func += '\n%s}' % (indent)
else: # We have a count value stored to iterate over an array
print_cast = ''
print_func = ''
@@ -2123,7 +2090,7 @@
'CreateGraphicsPipelines']
# Give special treatment to create functions that return multiple new objects
# This dict stores array name and size of array
- custom_create_dict = {'pDescriptorSets' : 'pAllocateInfo->setLayoutCount'}
+ custom_create_dict = {'pDescriptorSets' : 'pAllocateInfo->descriptorSetCount'}
if proto.name in explicit_object_tracker_functions:
funcs.append('%s%s\n'
'{\n'
@@ -2489,7 +2456,7 @@
' my_data->report_data = debug_report_create_instance(\n'
' pInstanceTable,\n'
' *pInstance,\n'
- ' pCreateInfo->enabledExtensionNameCount,\n'
+ ' pCreateInfo->enabledExtensionCount,\n'
' pCreateInfo->ppEnabledExtensionNames);\n'
' init_threading(my_data, pAllocator);\n'
' }\n'
diff --git a/vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.c b/vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.c
index a5ec629..482ac22 100644
--- a/vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.c
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.c
@@ -80,10 +80,10 @@
pSrcCreateInfo->pQueueCreateInfos[i].pQueuePriorities);
}
- if (pSrcCreateInfo->enabledExtensionNameCount > 0)
+ if (pSrcCreateInfo->enabledExtensionCount > 0)
{
- vktrace_vk_malloc_and_copy((void**)&pDestCreateInfo->ppEnabledExtensionNames, pSrcCreateInfo->enabledExtensionNameCount * sizeof(char *), pSrcCreateInfo->ppEnabledExtensionNames);
- for (i = 0; i < pSrcCreateInfo->enabledExtensionNameCount; i++)
+ vktrace_vk_malloc_and_copy((void**)&pDestCreateInfo->ppEnabledExtensionNames, pSrcCreateInfo->enabledExtensionCount * sizeof(char *), pSrcCreateInfo->ppEnabledExtensionNames);
+ for (i = 0; i < pSrcCreateInfo->enabledExtensionCount; i++)
{
vktrace_vk_malloc_and_copy((void**)&pDestCreateInfo->ppEnabledExtensionNames[i], strlen(pSrcCreateInfo->ppEnabledExtensionNames[i]) + 1, pSrcCreateInfo->ppEnabledExtensionNames[i]);
}
@@ -92,11 +92,11 @@
VkLayerCreateInfo **ppDstNext = ( VkLayerCreateInfo **) &pDestCreateInfo->pNext;
while (pSrcNext != NULL)
{
- if ((pSrcNext->sType == VK_STRUCTURE_TYPE_LAYER_CREATE_INFO) && pSrcNext->enabledLayerNameCount > 0)
+ if ((pSrcNext->sType == VK_STRUCTURE_TYPE_LAYER_CREATE_INFO) && pSrcNext->enabledLayerCount > 0)
{
vktrace_vk_malloc_and_copy((void**)ppDstNext, sizeof(VkLayerCreateInfo), pSrcNext);
- vktrace_vk_malloc_and_copy((void**)&(*ppDstNext)->ppActiveLayerNames, pSrcNext->enabledLayerNameCount * sizeof(char*), pSrcNext->ppActiveLayerNames);
- for (i = 0; i < pSrcNext->enabledLayerNameCount; i++)
+ vktrace_vk_malloc_and_copy((void**)&(*ppDstNext)->ppActiveLayerNames, pSrcNext->enabledLayerCount * sizeof(char*), pSrcNext->ppActiveLayerNames);
+ for (i = 0; i < pSrcNext->enabledLayerCount; i++)
{
vktrace_vk_malloc_and_copy((void**)&(*ppDstNext)->ppActiveLayerNames[i], strlen(pSrcNext->ppActiveLayerNames[i]) + 1, pSrcNext->ppActiveLayerNames[i]);
}
@@ -120,7 +120,7 @@
if (pCreateInfo->ppEnabledExtensionNames != NULL)
{
- for (i = 0; i < pCreateInfo->enabledExtensionNameCount; i++)
+ for (i = 0; i < pCreateInfo->enabledExtensionCount; i++)
{
free((void*)pCreateInfo->ppEnabledExtensionNames[i]);
}
@@ -131,9 +131,9 @@
while (pSrcNext != NULL)
{
VkLayerCreateInfo* pTmp = (VkLayerCreateInfo*)pSrcNext->pNext;
- if ((pSrcNext->sType == VK_STRUCTURE_TYPE_LAYER_CREATE_INFO) && pSrcNext->enabledLayerNameCount > 0)
+ if ((pSrcNext->sType == VK_STRUCTURE_TYPE_LAYER_CREATE_INFO) && pSrcNext->enabledLayerCount > 0)
{
- for (i = 0; i < pSrcNext->enabledLayerNameCount; i++)
+ for (i = 0; i < pSrcNext->enabledLayerCount; i++)
{
free((void*)pSrcNext->ppActiveLayerNames[i]);
}
diff --git a/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.cpp b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.cpp
index 2b37fc3..a837faa 100644
--- a/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.cpp
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.cpp
@@ -119,7 +119,7 @@
VkDeviceCreateInfo info = {};
info.queueCreateInfoCount = 1;
info.pQueueCreateInfos = &dqci;
- info.enabledExtensionNameCount = static_cast <uint32_t> (m_extensions.size());
+ info.enabledExtensionCount = static_cast <uint32_t> (m_extensions.size());
info.ppEnabledExtensionNames = extensionNames;
info.flags = VK_DEVICE_CREATE_VALIDATION;
info.maxValidationLevel = VK_VALIDATION_LEVEL_4;
diff --git a/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.cpp b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.cpp
index 1cc8abc..5de3a0d 100644
--- a/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.cpp
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.cpp
@@ -226,7 +226,7 @@
// // Third, check extensions requested by the application
// if (bCheckIfNeeded)
// {
- // for (uint32_t j = 0; j < pPacket->pCreateInfo->enabledExtensionNameCount; j++)
+ // for (uint32_t j = 0; j < pPacket->pCreateInfo->enabledExtensionCount; j++)
// {
// if (memcmp(&pPacket->pCreateInfo->pEnabledExtensions[j], &extProp, sizeof(VkExtensionProperties)) == 0)
// {
@@ -248,9 +248,9 @@
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
createInfo.pNext = NULL;
createInfo.pApplicationInfo = pPacket->pCreateInfo->pApplicationInfo;
- createInfo.enabledLayerNameCount = 0;
+ createInfo.enabledLayerCount = 0;
createInfo.ppEnabledLayerNames = NULL;
- createInfo.enabledExtensionNameCount = instance_extension_count;
+ createInfo.enabledExtensionCount = instance_extension_count;
// createInfo.ppEnabledExtensionNames = requiredLayerNames;
// make the call
@@ -264,7 +264,7 @@
if (g_pReplaySettings->screenshotList != NULL) {
// enable screenshot layer if it is available and not already in list
bool found_ss = false;
- for (uint32_t i = 0; i < pCreateInfo->enabledLayerNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledLayerCount; i++) {
if (!strcmp(pCreateInfo->ppEnabledLayerNames[i], strScreenShot)) {
found_ss = true;
break;
@@ -286,12 +286,12 @@
}
if (found_ss) {
// screenshot layer is available so enable it
- ppEnabledLayerNames = (char **) vktrace_malloc((pCreateInfo->enabledLayerNameCount + 1) * sizeof (char *));
- for (uint32_t i = 0; i < pCreateInfo->enabledLayerNameCount && ppEnabledLayerNames; i++) {
+ ppEnabledLayerNames = (char **) vktrace_malloc((pCreateInfo->enabledLayerCount + 1) * sizeof (char *));
+ for (uint32_t i = 0; i < pCreateInfo->enabledLayerCount && ppEnabledLayerNames; i++) {
ppEnabledLayerNames[i] = (char *) pCreateInfo->ppEnabledLayerNames[i];
}
- ppEnabledLayerNames[pCreateInfo->enabledLayerNameCount] = (char *) vktrace_malloc(strlen(strScreenShot) + 1);
- strcpy(ppEnabledLayerNames[pCreateInfo->enabledLayerNameCount++], strScreenShot);
+ ppEnabledLayerNames[pCreateInfo->enabledLayerCount] = (char *) vktrace_malloc(strlen(strScreenShot) + 1);
+ strcpy(ppEnabledLayerNames[pCreateInfo->enabledLayerCount++], strScreenShot);
saved_ppLayers = (char **) pCreateInfo->ppEnabledLayerNames;
pCreateInfo->ppEnabledLayerNames = ppEnabledLayerNames;
}
@@ -301,7 +301,7 @@
replayResult = m_vkFuncs.real_vkCreateInstance(pPacket->pCreateInfo, NULL, &inst);
if (ppEnabledLayerNames) {
// restore the packets CreateInfo struct
- vktrace_free(ppEnabledLayerNames[pCreateInfo->enabledLayerNameCount - 1]);
+ vktrace_free(ppEnabledLayerNames[pCreateInfo->enabledLayerCount - 1]);
vktrace_free(ppEnabledLayerNames);
pCreateInfo->ppEnabledLayerNames = saved_ppLayers;
}
@@ -337,7 +337,7 @@
if (g_pReplaySettings->screenshotList != NULL) {
// enable screenshot layer if it is available and not already in list
bool found_ss = false;
- for (uint32_t i = 0; i < pCreateInfo->enabledLayerNameCount; i++) {
+ for (uint32_t i = 0; i < pCreateInfo->enabledLayerCount; i++) {
if (!strcmp(pCreateInfo->ppEnabledLayerNames[i], strScreenShot)) {
found_ss = true;
break;
@@ -359,13 +359,13 @@
}
if (found_ss) {
// screenshot layer is available so enable it
- ppEnabledLayerNames = (char **) vktrace_malloc((pCreateInfo->enabledLayerNameCount+1) * sizeof(char *));
- for (uint32_t i = 0; i < pCreateInfo->enabledLayerNameCount && ppEnabledLayerNames; i++)
+ ppEnabledLayerNames = (char **) vktrace_malloc((pCreateInfo->enabledLayerCount+1) * sizeof(char *));
+ for (uint32_t i = 0; i < pCreateInfo->enabledLayerCount && ppEnabledLayerNames; i++)
{
ppEnabledLayerNames[i] = (char *) pCreateInfo->ppEnabledLayerNames[i];
}
- ppEnabledLayerNames[pCreateInfo->enabledLayerNameCount] = (char *) vktrace_malloc(strlen(strScreenShot) + 1);
- strcpy(ppEnabledLayerNames[pCreateInfo->enabledLayerNameCount++], strScreenShot);
+ ppEnabledLayerNames[pCreateInfo->enabledLayerCount] = (char *) vktrace_malloc(strlen(strScreenShot) + 1);
+ strcpy(ppEnabledLayerNames[pCreateInfo->enabledLayerCount++], strScreenShot);
saved_ppLayers = (char **) pCreateInfo->ppEnabledLayerNames;
pCreateInfo->ppEnabledLayerNames = ppEnabledLayerNames;
}
@@ -376,7 +376,7 @@
if (ppEnabledLayerNames)
{
// restore the packets CreateInfo struct
- vktrace_free(ppEnabledLayerNames[pCreateInfo->enabledLayerNameCount-1]);
+ vktrace_free(ppEnabledLayerNames[pCreateInfo->enabledLayerCount-1]);
vktrace_free(ppEnabledLayerNames);
pCreateInfo->ppEnabledLayerNames = saved_ppLayers;
}
@@ -1058,7 +1058,7 @@
pDescriptorSets);
if(replayResult == VK_SUCCESS)
{
- for(uint32_t i = 0; i < pPacket->pAllocateInfo->setLayoutCount; ++i)
+ for(uint32_t i = 0; i < pPacket->pAllocateInfo->descriptorSetCount; ++i)
{
m_objMapper.add_to_descriptorsets_map(pPacket->pDescriptorSets[i], pDescriptorSets[i]);
}
@@ -1319,32 +1319,29 @@
*pEvent = m_objMapper.remap_events(pPacket->pEvents[idx]);
}
- VkBuffer* saveBuf = VKTRACE_NEW_ARRAY(VkBuffer, pPacket->memoryBarrierCount);
- VkImage* saveImg = VKTRACE_NEW_ARRAY(VkImage, pPacket->memoryBarrierCount);
- for (idx = 0; idx < pPacket->memoryBarrierCount; idx++)
+ VkBuffer* saveBuf = VKTRACE_NEW_ARRAY(VkBuffer, pPacket->bufferMemoryBarrierCount);
+ for (idx = 0; idx < pPacket->bufferMemoryBarrierCount; idx++)
{
- VkMemoryBarrier *pNext = (VkMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- assert(pNext);
- if (pNext->sType == VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER) {
- VkBufferMemoryBarrier *pNextBuf = (VkBufferMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- saveBuf[numRemapBuf++] = pNextBuf->buffer;
- pNextBuf->buffer = m_objMapper.remap_buffers(pNextBuf->buffer);
- } else if (pNext->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER) {
- VkImageMemoryBarrier *pNextImg = (VkImageMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- saveImg[numRemapImg++] = pNextImg->image;
- pNextImg->image = m_objMapper.remap_images(pNextImg->image);
- }
+ VkBufferMemoryBarrier *pNextBuf = (VkBufferMemoryBarrier *)& (pPacket->pBufferMemoryBarriers[idx]);
+ saveBuf[numRemapBuf++] = pNextBuf->buffer;
+ pNextBuf->buffer = m_objMapper.remap_buffers(pNextBuf->buffer);
}
- m_vkFuncs.real_vkCmdWaitEvents(remappedCommandBuffer, pPacket->eventCount, pPacket->pEvents, pPacket->srcStageMask, pPacket->dstStageMask, pPacket->memoryBarrierCount, pPacket->ppMemoryBarriers);
+ VkImage* saveImg = VKTRACE_NEW_ARRAY(VkImage, pPacket->imageMemoryBarrierCount);
+ for (idx = 0; idx < pPacket->imageMemoryBarrierCount; idx++)
+ {
+ VkImageMemoryBarrier *pNextImg = (VkImageMemoryBarrier *) &(pPacket->pImageMemoryBarriers[idx]);
+ saveImg[numRemapImg++] = pNextImg->image;
+ pNextImg->image = m_objMapper.remap_images(pNextImg->image);
+ }
+ m_vkFuncs.real_vkCmdWaitEvents(remappedCommandBuffer, pPacket->eventCount, pPacket->pEvents, pPacket->srcStageMask, pPacket->dstStageMask, pPacket->memoryBarrierCount, pPacket->pMemoryBarriers, pPacket->bufferMemoryBarrierCount, pPacket->pBufferMemoryBarriers, pPacket->imageMemoryBarrierCount, pPacket->pImageMemoryBarriers);
+
+ for (idx = 0; idx < pPacket->bufferMemoryBarrierCount; idx++) {
+ VkBufferMemoryBarrier *pNextBuf = (VkBufferMemoryBarrier *) &(pPacket->pBufferMemoryBarriers[idx]);
+ pNextBuf->buffer = saveBuf[idx];
+ }
for (idx = 0; idx < pPacket->memoryBarrierCount; idx++) {
- VkMemoryBarrier *pNext = (VkMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- if (pNext->sType == VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER) {
- VkBufferMemoryBarrier *pNextBuf = (VkBufferMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- pNextBuf->buffer = saveBuf[idx];
- } else if (pNext->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER) {
- VkImageMemoryBarrier *pNextImg = (VkImageMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- pNextImg->image = saveImg[idx];
- }
+ VkImageMemoryBarrier *pNextImg = (VkImageMemoryBarrier *) &(pPacket->pImageMemoryBarriers[idx]);
+ pNextImg->image = saveImg[idx];
}
for (idx = 0; idx < pPacket->eventCount; idx++) {
VkEvent *pEvent = (VkEvent *) &(pPacket->pEvents[idx]);
@@ -1368,32 +1365,29 @@
uint32_t idx = 0;
uint32_t numRemapBuf = 0;
uint32_t numRemapImg = 0;
- VkBuffer* saveBuf = VKTRACE_NEW_ARRAY(VkBuffer, pPacket->memoryBarrierCount);
- VkImage* saveImg = VKTRACE_NEW_ARRAY(VkImage, pPacket->memoryBarrierCount);
- for (idx = 0; idx < pPacket->memoryBarrierCount; idx++)
+ VkBuffer* saveBuf = VKTRACE_NEW_ARRAY(VkBuffer, pPacket->bufferMemoryBarrierCount);
+ VkImage* saveImg = VKTRACE_NEW_ARRAY(VkImage, pPacket->imageMemoryBarrierCount);
+ for (idx = 0; idx < pPacket->bufferMemoryBarrierCount; idx++)
{
- VkMemoryBarrier *pNext = (VkMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- assert(pNext);
- if (pNext->sType == VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER) {
- VkBufferMemoryBarrier *pNextBuf = (VkBufferMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- saveBuf[numRemapBuf++] = pNextBuf->buffer;
- pNextBuf->buffer = m_objMapper.remap_buffers(pNextBuf->buffer);
- } else if (pNext->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER) {
- VkImageMemoryBarrier *pNextImg = (VkImageMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- saveImg[numRemapImg++] = pNextImg->image;
- pNextImg->image = m_objMapper.remap_images(pNextImg->image);
- }
+ VkBufferMemoryBarrier *pNextBuf = (VkBufferMemoryBarrier *) &(pPacket->pBufferMemoryBarriers[idx]);
+ saveBuf[numRemapBuf++] = pNextBuf->buffer;
+ pNextBuf->buffer = m_objMapper.remap_buffers(pNextBuf->buffer);
}
- m_vkFuncs.real_vkCmdPipelineBarrier(remappedCommandBuffer, pPacket->srcStageMask, pPacket->dstStageMask, pPacket->dependencyFlags, pPacket->memoryBarrierCount, pPacket->ppMemoryBarriers);
- for (idx = 0; idx < pPacket->memoryBarrierCount; idx++) {
- VkMemoryBarrier *pNext = (VkMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- if (pNext->sType == VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER) {
- VkBufferMemoryBarrier *pNextBuf = (VkBufferMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- pNextBuf->buffer = saveBuf[idx];
- } else if (pNext->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER) {
- VkImageMemoryBarrier *pNextImg = (VkImageMemoryBarrier *) pPacket->ppMemoryBarriers[idx];
- pNextImg->image = saveImg[idx];
- }
+ for (idx = 0; idx < pPacket->imageMemoryBarrierCount; idx++)
+ {
+ VkImageMemoryBarrier *pNextImg = (VkImageMemoryBarrier *) &(pPacket->pImageMemoryBarriers[idx]);
+ saveImg[numRemapImg++] = pNextImg->image;
+ pNextImg->image = m_objMapper.remap_images(pNextImg->image);
+ }
+ m_vkFuncs.real_vkCmdPipelineBarrier(remappedCommandBuffer, pPacket->srcStageMask, pPacket->dstStageMask, pPacket->dependencyFlags, pPacket->memoryBarrierCount, pPacket->pMemoryBarriers, pPacket->bufferMemoryBarrierCount, pPacket->pBufferMemoryBarriers, pPacket->imageMemoryBarrierCount, pPacket->pImageMemoryBarriers);
+
+ for (idx = 0; idx < pPacket->bufferMemoryBarrierCount; idx++) {
+ VkBufferMemoryBarrier *pNextBuf = (VkBufferMemoryBarrier *) &(pPacket->pBufferMemoryBarriers[idx]);
+ pNextBuf->buffer = saveBuf[idx];
+ }
+ for (idx = 0; idx < pPacket->imageMemoryBarrierCount; idx++) {
+ VkImageMemoryBarrier *pNextImg = (VkImageMemoryBarrier *) &(pPacket->pImageMemoryBarriers[idx]);
+ pNextImg->image = saveImg[idx];
}
VKTRACE_DELETE(saveBuf);
VKTRACE_DELETE(saveImg);
@@ -1483,22 +1477,23 @@
return VK_ERROR_VALIDATION_FAILED_EXT;
VkCommandBufferBeginInfo* pInfo = (VkCommandBufferBeginInfo*)pPacket->pBeginInfo;
+ VkCommandBufferInheritanceInfo *pHinfo = (VkCommandBufferInheritanceInfo *) ((pInfo) ? pInfo->pInheritanceInfo : NULL);
// Save the original RP & FB, then overwrite packet with remapped values
VkRenderPass savedRP, *pRP;
VkFramebuffer savedFB, *pFB;
- if (pInfo != NULL)
+ if (pInfo != NULL && pHinfo != NULL)
{
- savedRP = pInfo->renderPass;
- savedFB = pInfo->framebuffer;
- pRP = &(pInfo->renderPass);
- pFB = &(pInfo->framebuffer);
+ savedRP = pHinfo->renderPass;
+ savedFB = pHinfo->framebuffer;
+ pRP = &(pHinfo->renderPass);
+ pFB = &(pHinfo->framebuffer);
*pRP = m_objMapper.remap_renderpasss(savedRP);
*pFB = m_objMapper.remap_framebuffers(savedFB);
}
replayResult = m_vkFuncs.real_vkBeginCommandBuffer(remappedCommandBuffer, pPacket->pBeginInfo);
- if (pInfo != NULL) {
- pInfo->renderPass = savedRP;
- pInfo->framebuffer = savedFB;
+ if (pInfo != NULL && pHinfo != NULL) {
+ pHinfo->renderPass = savedRP;
+ pHinfo->framebuffer = savedFB;
}
return replayResult;
}
@@ -2006,7 +2001,7 @@
// return vktrace_replay::VKTRACE_REPLAY_ERROR;
// }
- VkCommandBuffer *local_pCommandBuffers = new VkCommandBuffer[pPacket->pAllocateInfo->bufferCount];
+ VkCommandBuffer *local_pCommandBuffers = new VkCommandBuffer[pPacket->pAllocateInfo->commandBufferCount];
VkCommandPool local_CommandPool;
local_CommandPool = pPacket->pAllocateInfo->commandPool;
((VkCommandBufferAllocateInfo *) pPacket->pAllocateInfo)->commandPool = m_objMapper.remap_commandpools(pPacket->pAllocateInfo->commandPool);
@@ -2016,7 +2011,7 @@
if (replayResult == VK_SUCCESS)
{
- for (uint32_t i = 0; i < pPacket->pAllocateInfo->bufferCount; i++) {
+ for (uint32_t i = 0; i < pPacket->pAllocateInfo->commandBufferCount; i++) {
m_objMapper.add_to_commandbuffers_map(pPacket->pCommandBuffers[i], local_pCommandBuffers[i]);
}
}
diff --git a/vktrace/src/vktrace_layer/vktrace_lib_helpers.h b/vktrace/src/vktrace_layer/vktrace_lib_helpers.h
index 4ad08c9..2b13640 100644
--- a/vktrace/src/vktrace_layer/vktrace_lib_helpers.h
+++ b/vktrace/src/vktrace_layer/vktrace_lib_helpers.h
@@ -268,29 +268,6 @@
return;
}
-static size_t calculate_memory_barrier_size(uint32_t mbCount, const void* const* ppMemoryBarriers)
-{
- uint32_t i, siz=0;
- for (i = 0; i < mbCount; i++) {
- VkMemoryBarrier *pNext = (VkMemoryBarrier *) ppMemoryBarriers[i];
- switch (pNext->sType) {
- case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
- siz += sizeof(VkMemoryBarrier);
- break;
- case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
- siz += sizeof(VkBufferMemoryBarrier);
- break;
- case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
- siz += sizeof(VkImageMemoryBarrier);
- break;
- default:
- assert(0);
- break;
- }
- }
- return siz;
-}
-
static void add_VkPipelineShaderStageCreateInfo_to_trace_packet(vktrace_trace_packet_header* pHeader, VkPipelineShaderStageCreateInfo* packetShader, const VkPipelineShaderStageCreateInfo* paramShader)
{
vktrace_add_buffer_to_trace_packet(pHeader, (void**)&packetShader->pName, strlen(paramShader->pName) + 1, paramShader->pName);
diff --git a/vktrace/src/vktrace_layer/vktrace_lib_trace.cpp b/vktrace/src/vktrace_layer/vktrace_lib_trace.cpp
index f2aec1f..a94a29b 100644
--- a/vktrace/src/vktrace_layer/vktrace_lib_trace.cpp
+++ b/vktrace/src/vktrace_layer/vktrace_lib_trace.cpp
@@ -300,6 +300,27 @@
return result;
}
+VKTRACER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL __HOOKED_vkBeginCommandBuffer(
+ VkCommandBuffer commandBuffer,
+ const VkCommandBufferBeginInfo* pBeginInfo)
+{
+ vktrace_trace_packet_header* pHeader;
+ VkResult result;
+ packet_vkBeginCommandBuffer* pPacket = NULL;
+ CREATE_TRACE_PACKET(vkBeginCommandBuffer, get_struct_chain_size((void*)pBeginInfo));
+ result = mdd(commandBuffer)->devTable.BeginCommandBuffer(commandBuffer, pBeginInfo);
+ vktrace_set_packet_entrypoint_end_time(pHeader);
+ pPacket = interpret_body_as_vkBeginCommandBuffer(pHeader);
+ pPacket->commandBuffer = commandBuffer;
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pBeginInfo), sizeof(VkCommandBufferBeginInfo), pBeginInfo);
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pBeginInfo->pInheritanceInfo), sizeof(VkCommandBufferInheritanceInfo), pBeginInfo->pInheritanceInfo);
+ pPacket->result = result;
+ vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pBeginInfo->pInheritanceInfo));
+ vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pBeginInfo));
+ FINISH_TRACE_PACKET();
+ return result;
+}
+
VKTRACER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL __HOOKED_vkCreateDescriptorPool(
VkDevice device,
const VkDescriptorPoolCreateInfo* pCreateInfo,
@@ -342,7 +363,7 @@
CREATE_TRACE_PACKET(vkCreateDevice, get_struct_chain_size((void*)pCreateInfo) + sizeof(VkDevice));
result = mdd(*pDevice)->devTable.CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
if (result == VK_SUCCESS)
- ext_init_create_device(mdd(*pDevice), *pDevice, pCreateInfo->enabledExtensionNameCount, pCreateInfo->ppEnabledExtensionNames);
+ ext_init_create_device(mdd(*pDevice), *pDevice, pCreateInfo->enabledExtensionCount, pCreateInfo->ppEnabledExtensionNames);
vktrace_set_packet_entrypoint_end_time(pHeader);
pPacket = interpret_body_as_vkCreateDevice(pHeader);
@@ -403,7 +424,7 @@
result = mid(*pInstance)->instTable.CreateInstance(pCreateInfo, pAllocator, pInstance);
endTime = vktrace_get_time();
if (result == VK_SUCCESS)
- ext_init_create_instance(mid(*pInstance), *pInstance, pCreateInfo->enabledExtensionNameCount, pCreateInfo->ppEnabledExtensionNames);
+ ext_init_create_instance(mid(*pInstance), *pInstance, pCreateInfo->enabledExtensionCount, pCreateInfo->ppEnabledExtensionNames);
CREATE_TRACE_PACKET(vkCreateInstance, sizeof(VkInstance) + get_struct_chain_size((void*)pCreateInfo) + sizeof(VkAllocationCallbacks));
pHeader->vktrace_begin_time = vktraceStartTime;
@@ -651,15 +672,15 @@
startTime = vktrace_get_time();
result = mdd(device)->devTable.AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
endTime = vktrace_get_time();
- CREATE_TRACE_PACKET(vkAllocateDescriptorSets, vk_size_vkdescriptorsetallocateinfo(pAllocateInfo) + (pAllocateInfo->setLayoutCount * sizeof(VkDescriptorSet)));
+ CREATE_TRACE_PACKET(vkAllocateDescriptorSets, vk_size_vkdescriptorsetallocateinfo(pAllocateInfo) + (pAllocateInfo->descriptorSetCount * sizeof(VkDescriptorSet)));
pHeader->vktrace_begin_time = vktraceStartTime;
pHeader->entrypoint_begin_time = startTime;
pHeader->entrypoint_end_time = endTime;
pPacket = interpret_body_as_vkAllocateDescriptorSets(pHeader);
pPacket->device = device;
vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pAllocateInfo), sizeof(VkDescriptorSetAllocateInfo), pAllocateInfo);
- vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pAllocateInfo->pSetLayouts), pPacket->pAllocateInfo->setLayoutCount * sizeof(VkDescriptorSetLayout), pAllocateInfo->pSetLayouts);
- vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pDescriptorSets), pPacket->pAllocateInfo->setLayoutCount * sizeof(VkDescriptorSet), pDescriptorSets);
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pAllocateInfo->pSetLayouts), pPacket->pAllocateInfo->descriptorSetCount * sizeof(VkDescriptorSetLayout), pAllocateInfo->pSetLayouts);
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pDescriptorSets), pPacket->pAllocateInfo->descriptorSetCount * sizeof(VkDescriptorSet), pDescriptorSets);
pPacket->result = result;
vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pAllocateInfo->pSetLayouts));
vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pDescriptorSets));
@@ -795,20 +816,29 @@
}
VKTRACER_EXPORT VKAPI_ATTR void VKAPI_CALL __HOOKED_vkCmdWaitEvents(
- VkCommandBuffer commandBuffer,
+ VkCommandBuffer commandBuffer,
uint32_t eventCount,
const VkEvent* pEvents,
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers)
{
vktrace_trace_packet_header* pHeader;
packet_vkCmdWaitEvents* pPacket = NULL;
size_t customSize;
- customSize = (eventCount * sizeof(VkEvent)) + memoryBarrierCount * sizeof(void*) + calculate_memory_barrier_size(memoryBarrierCount, ppMemoryBarriers);
+ customSize = (eventCount * sizeof(VkEvent)) + (memoryBarrierCount * sizeof(VkMemoryBarrier)) +
+ (bufferMemoryBarrierCount * sizeof(VkBufferMemoryBarrier)) +
+ (imageMemoryBarrierCount * sizeof(VkImageMemoryBarrier));
CREATE_TRACE_PACKET(vkCmdWaitEvents, customSize);
- mdd(commandBuffer)->devTable.CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, ppMemoryBarriers);
+ mdd(commandBuffer)->devTable.CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask,
+ memoryBarrierCount, pMemoryBarriers,
+ bufferMemoryBarrierCount, pBufferMemoryBarriers,
+ imageMemoryBarrierCount, pImageMemoryBarriers);
vktrace_set_packet_entrypoint_end_time(pHeader);
pPacket = interpret_body_as_vkCmdWaitEvents(pHeader);
pPacket->commandBuffer = commandBuffer;
@@ -816,48 +846,40 @@
pPacket->srcStageMask = srcStageMask;
pPacket->dstStageMask = dstStageMask;
pPacket->memoryBarrierCount = memoryBarrierCount;
+ pPacket->bufferMemoryBarrierCount = bufferMemoryBarrierCount;
+ pPacket->imageMemoryBarrierCount = imageMemoryBarrierCount;
vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pEvents), eventCount * sizeof(VkEvent), pEvents);
vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pEvents));
- vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->ppMemoryBarriers), memoryBarrierCount * sizeof(void*), ppMemoryBarriers);
- uint32_t i, siz;
- for (i = 0; i < memoryBarrierCount; i++) {
- VkMemoryBarrier *pNext = (VkMemoryBarrier *) ppMemoryBarriers[i];
- switch (pNext->sType) {
- case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
- siz = sizeof(VkMemoryBarrier);
- break;
- case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
- siz = sizeof(VkBufferMemoryBarrier);
- break;
- case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
- siz = sizeof(VkImageMemoryBarrier);
- break;
- default:
- assert(0);
- siz = 0;
- break;
- }
- vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->ppMemoryBarriers[i]), siz, ppMemoryBarriers[i]);
- vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->ppMemoryBarriers[i]));
- }
- vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->ppMemoryBarriers));
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pMemoryBarriers), memoryBarrierCount * sizeof(VkMemoryBarrier), pMemoryBarriers);
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pBufferMemoryBarriers), bufferMemoryBarrierCount * sizeof(VkBufferMemoryBarrier), pBufferMemoryBarriers);
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pImageMemoryBarriers), imageMemoryBarrierCount * sizeof(VkImageMemoryBarrier), pImageMemoryBarriers);
+
+ vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pMemoryBarriers));
+ vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pBufferMemoryBarriers));
+ vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pImageMemoryBarriers));
FINISH_TRACE_PACKET();
}
VKTRACER_EXPORT VKAPI_ATTR void VKAPI_CALL __HOOKED_vkCmdPipelineBarrier(
- VkCommandBuffer commandBuffer,
+ VkCommandBuffer commandBuffer,
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask,
VkDependencyFlags dependencyFlags,
uint32_t memoryBarrierCount,
- const void* const* ppMemoryBarriers)
+ const VkMemoryBarrier* pMemoryBarriers,
+ uint32_t bufferMemoryBarrierCount,
+ const VkBufferMemoryBarrier* pBufferMemoryBarriers,
+ uint32_t imageMemoryBarrierCount,
+ const VkImageMemoryBarrier* pImageMemoryBarriers)
{
vktrace_trace_packet_header* pHeader;
packet_vkCmdPipelineBarrier* pPacket = NULL;
size_t customSize;
- customSize = (memoryBarrierCount * sizeof(void*)) + calculate_memory_barrier_size(memoryBarrierCount, ppMemoryBarriers);
+ customSize = (memoryBarrierCount * sizeof(VkMemoryBarrier)) +
+ (bufferMemoryBarrierCount * sizeof(VkBufferMemoryBarrier)) +
+ (imageMemoryBarrierCount * sizeof(VkImageMemoryBarrier));
CREATE_TRACE_PACKET(vkCmdPipelineBarrier, customSize);
- mdd(commandBuffer)->devTable.CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, ppMemoryBarriers);
+ mdd(commandBuffer)->devTable.CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
vktrace_set_packet_entrypoint_end_time(pHeader);
pPacket = interpret_body_as_vkCmdPipelineBarrier(pHeader);
pPacket->commandBuffer = commandBuffer;
@@ -865,29 +887,15 @@
pPacket->dstStageMask = dstStageMask;
pPacket->dependencyFlags = dependencyFlags;
pPacket->memoryBarrierCount = memoryBarrierCount;
- vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->ppMemoryBarriers), memoryBarrierCount * sizeof(void*), ppMemoryBarriers);
- uint32_t i, siz;
- for (i = 0; i < memoryBarrierCount; i++) {
- VkMemoryBarrier *pNext = (VkMemoryBarrier *) ppMemoryBarriers[i];
- switch (pNext->sType) {
- case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
- siz = sizeof(VkMemoryBarrier);
- break;
- case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
- siz = sizeof(VkBufferMemoryBarrier);
- break;
- case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
- siz = sizeof(VkImageMemoryBarrier);
- break;
- default:
- assert(0);
- siz = 0;
- break;
- }
- vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->ppMemoryBarriers[i]), siz, ppMemoryBarriers[i]);
- vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->ppMemoryBarriers[i]));
- }
- vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->ppMemoryBarriers));
+ pPacket->bufferMemoryBarrierCount = bufferMemoryBarrierCount;
+ pPacket->imageMemoryBarrierCount = imageMemoryBarrierCount;
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pMemoryBarriers), memoryBarrierCount * sizeof(VkMemoryBarrier), pMemoryBarriers);
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pBufferMemoryBarriers), bufferMemoryBarrierCount * sizeof(VkBufferMemoryBarrier), pBufferMemoryBarriers);
+ vktrace_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pImageMemoryBarriers), imageMemoryBarrierCount * sizeof(VkImageMemoryBarrier), pImageMemoryBarriers);
+
+ vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pMemoryBarriers));
+ vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pBufferMemoryBarriers));
+ vktrace_finalize_buffer_address(pHeader, (void**)&(pPacket->pImageMemoryBarriers));
FINISH_TRACE_PACKET();
}
diff --git a/vktrace/vktrace_generate.py b/vktrace/vktrace_generate.py
index 71da4ae..ea34eaa 100755
--- a/vktrace/vktrace_generate.py
+++ b/vktrace/vktrace_generate.py
@@ -350,6 +350,7 @@
func_body = []
manually_written_hooked_funcs = ['AllocateMemory',
'AllocateDescriptorSets',
+ 'BeginCommandBuffer',
'CreateDescriptorPool',
'CreateDevice',
'CreateFramebuffer',
@@ -563,20 +564,20 @@
pid_enum.append(' add_VkApplicationInfo_to_packet(pHeader, (VkApplicationInfo**)&((*ppStruct)->pApplicationInfo), pInStruct->pApplicationInfo);')
# TODO138 : This is an initial pass at getting the extension/layer arrays correct, needs to be validated.
pid_enum.append(' uint32_t i, siz = 0;')
- pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)&((*ppStruct)->ppEnabledLayerNames), pInStruct->enabledLayerNameCount * sizeof(char*), pInStruct->ppEnabledLayerNames);')
- pid_enum.append(' if (pInStruct->enabledLayerNameCount > 0) ')
+ pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)&((*ppStruct)->ppEnabledLayerNames), pInStruct->enabledLayerCount * sizeof(char*), pInStruct->ppEnabledLayerNames);')
+ pid_enum.append(' if (pInStruct->enabledLayerCount > 0) ')
pid_enum.append(' {')
- pid_enum.append(' for (i = 0; i < pInStruct->enabledLayerNameCount; i++) {')
+ pid_enum.append(' for (i = 0; i < pInStruct->enabledLayerCount; i++) {')
pid_enum.append(' siz = (uint32_t) (1 + strlen(pInStruct->ppEnabledLayerNames[i]));')
pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)(&(*ppStruct)->ppEnabledLayerNames[i]), siz, pInStruct->ppEnabledLayerNames[i]);')
pid_enum.append(' vktrace_finalize_buffer_address(pHeader, (void **)&(*ppStruct)->ppEnabledLayerNames[i]);')
pid_enum.append(' }')
pid_enum.append(' }')
pid_enum.append(' vktrace_finalize_buffer_address(pHeader, (void **)&(*ppStruct)->ppEnabledLayerNames);')
- pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)&((*ppStruct)->ppEnabledExtensionNames), pInStruct->enabledExtensionNameCount * sizeof(char*), pInStruct->ppEnabledExtensionNames);')
- pid_enum.append(' if (pInStruct->enabledExtensionNameCount > 0) ')
+ pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)&((*ppStruct)->ppEnabledExtensionNames), pInStruct->enabledExtensionCount * sizeof(char*), pInStruct->ppEnabledExtensionNames);')
+ pid_enum.append(' if (pInStruct->enabledExtensionCount > 0) ')
pid_enum.append(' {')
- pid_enum.append(' for (i = 0; i < pInStruct->enabledExtensionNameCount; i++) {')
+ pid_enum.append(' for (i = 0; i < pInStruct->enabledExtensionCount; i++) {')
pid_enum.append(' siz = (uint32_t) (1 + strlen(pInStruct->ppEnabledExtensionNames[i]));')
pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)(&(*ppStruct)->ppEnabledExtensionNames[i]), siz, pInStruct->ppEnabledExtensionNames[i]);')
pid_enum.append(' vktrace_finalize_buffer_address(pHeader, (void **)&(*ppStruct)->ppEnabledExtensionNames[i]);')
@@ -599,20 +600,20 @@
pid_enum.append(' vktrace_finalize_buffer_address(pHeader, (void**)&(*ppStruct)->pQueueCreateInfos);')
# TODO138 : This is an initial pass at getting the extension/layer arrays correct, needs to be validated.
pid_enum.append(' uint32_t i, siz = 0;')
- pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)&((*ppStruct)->ppEnabledLayerNames), pInStruct->enabledLayerNameCount * sizeof(char*), pInStruct->ppEnabledLayerNames);')
- pid_enum.append(' if (pInStruct->enabledLayerNameCount > 0) ')
+ pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)&((*ppStruct)->ppEnabledLayerNames), pInStruct->enabledLayerCount * sizeof(char*), pInStruct->ppEnabledLayerNames);')
+ pid_enum.append(' if (pInStruct->enabledLayerCount > 0) ')
pid_enum.append(' {')
- pid_enum.append(' for (i = 0; i < pInStruct->enabledLayerNameCount; i++) {')
+ pid_enum.append(' for (i = 0; i < pInStruct->enabledLayerCount; i++) {')
pid_enum.append(' siz = (uint32_t) (1 + strlen(pInStruct->ppEnabledLayerNames[i]));')
pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)(&(*ppStruct)->ppEnabledLayerNames[i]), siz, pInStruct->ppEnabledLayerNames[i]);')
pid_enum.append(' vktrace_finalize_buffer_address(pHeader, (void **)&(*ppStruct)->ppEnabledLayerNames[i]);')
pid_enum.append(' }')
pid_enum.append(' }')
pid_enum.append(' vktrace_finalize_buffer_address(pHeader, (void **)&(*ppStruct)->ppEnabledLayerNames);')
- pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)&((*ppStruct)->ppEnabledExtensionNames), pInStruct->enabledExtensionNameCount * sizeof(char*), pInStruct->ppEnabledExtensionNames);')
- pid_enum.append(' if (pInStruct->enabledExtensionNameCount > 0) ')
+ pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)&((*ppStruct)->ppEnabledExtensionNames), pInStruct->enabledExtensionCount * sizeof(char*), pInStruct->ppEnabledExtensionNames);')
+ pid_enum.append(' if (pInStruct->enabledExtensionCount > 0) ')
pid_enum.append(' {')
- pid_enum.append(' for (i = 0; i < pInStruct->enabledExtensionNameCount; i++) {')
+ pid_enum.append(' for (i = 0; i < pInStruct->enabledExtensionCount; i++) {')
pid_enum.append(' siz = (uint32_t) (1 + strlen(pInStruct->ppEnabledExtensionNames[i]));')
pid_enum.append(' vktrace_add_buffer_to_trace_packet(pHeader, (void**)(&(*ppStruct)->ppEnabledExtensionNames[i]), siz, pInStruct->ppEnabledExtensionNames[i]);')
pid_enum.append(' vktrace_finalize_buffer_address(pHeader, (void **)&(*ppStruct)->ppEnabledExtensionNames[i]);')
@@ -635,18 +636,18 @@
pid_enum.append(' VkApplicationInfo** ppApplicationInfo = (VkApplicationInfo**) &pVkInstanceCreateInfo->pApplicationInfo;')
pid_enum.append(' (*ppApplicationInfo)->pApplicationName = (const char*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkInstanceCreateInfo->pApplicationInfo->pApplicationName);')
pid_enum.append(' (*ppApplicationInfo)->pEngineName = (const char*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkInstanceCreateInfo->pApplicationInfo->pEngineName);')
- pid_enum.append(' if (pVkInstanceCreateInfo->enabledLayerNameCount > 0)')
+ pid_enum.append(' if (pVkInstanceCreateInfo->enabledLayerCount > 0)')
pid_enum.append(' {')
pid_enum.append(' pVkInstanceCreateInfo->ppEnabledLayerNames = (const char* const*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkInstanceCreateInfo->ppEnabledLayerNames);')
- pid_enum.append(' for (i = 0; i < pVkInstanceCreateInfo->enabledLayerNameCount; i++) {')
+ pid_enum.append(' for (i = 0; i < pVkInstanceCreateInfo->enabledLayerCount; i++) {')
pid_enum.append(' char** ppTmp = (char**)&pVkInstanceCreateInfo->ppEnabledLayerNames[i];')
pid_enum.append(' *ppTmp = (char*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkInstanceCreateInfo->ppEnabledLayerNames[i]);')
pid_enum.append(' }')
pid_enum.append(' }')
- pid_enum.append(' if (pVkInstanceCreateInfo->enabledExtensionNameCount > 0)')
+ pid_enum.append(' if (pVkInstanceCreateInfo->enabledExtensionCount > 0)')
pid_enum.append(' {')
pid_enum.append(' pVkInstanceCreateInfo->ppEnabledExtensionNames = (const char* const*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkInstanceCreateInfo->ppEnabledExtensionNames);')
- pid_enum.append(' for (i = 0; i < pVkInstanceCreateInfo->enabledExtensionNameCount; i++) {')
+ pid_enum.append(' for (i = 0; i < pVkInstanceCreateInfo->enabledExtensionCount; i++) {')
pid_enum.append(' char** ppTmp = (char**)&pVkInstanceCreateInfo->ppEnabledExtensionNames[i];')
pid_enum.append(' *ppTmp = (char*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkInstanceCreateInfo->ppEnabledExtensionNames[i]);')
pid_enum.append(' }')
@@ -662,18 +663,18 @@
pid_enum.append(' if (pVkDeviceCreateInfo != NULL)')
pid_enum.append(' {')
pid_enum.append(' pVkDeviceCreateInfo->pQueueCreateInfos = (const VkDeviceQueueCreateInfo *)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkDeviceCreateInfo->pQueueCreateInfos);\n')
- pid_enum.append(' if (pVkDeviceCreateInfo->enabledLayerNameCount > 0)')
+ pid_enum.append(' if (pVkDeviceCreateInfo->enabledLayerCount > 0)')
pid_enum.append(' {')
pid_enum.append(' pVkDeviceCreateInfo->ppEnabledLayerNames = (const char* const*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkDeviceCreateInfo->ppEnabledLayerNames);')
- pid_enum.append(' for (i = 0; i < pVkDeviceCreateInfo->enabledLayerNameCount; i++) {')
+ pid_enum.append(' for (i = 0; i < pVkDeviceCreateInfo->enabledLayerCount; i++) {')
pid_enum.append(' char** ppTmp = (char**)&pVkDeviceCreateInfo->ppEnabledLayerNames[i];')
pid_enum.append(' *ppTmp = (char*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkDeviceCreateInfo->ppEnabledLayerNames[i]);')
pid_enum.append(' }')
pid_enum.append(' }')
- pid_enum.append(' if (pVkDeviceCreateInfo->enabledExtensionNameCount > 0)')
+ pid_enum.append(' if (pVkDeviceCreateInfo->enabledExtensionCount > 0)')
pid_enum.append(' {')
pid_enum.append(' pVkDeviceCreateInfo->ppEnabledExtensionNames = (const char* const*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkDeviceCreateInfo->ppEnabledExtensionNames);')
- pid_enum.append(' for (i = 0; i < pVkDeviceCreateInfo->enabledExtensionNameCount; i++) {')
+ pid_enum.append(' for (i = 0; i < pVkDeviceCreateInfo->enabledExtensionCount; i++) {')
pid_enum.append(' char** ppTmp = (char**)&pVkDeviceCreateInfo->ppEnabledExtensionNames[i];')
pid_enum.append(' *ppTmp = (char*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pVkDeviceCreateInfo->ppEnabledExtensionNames[i]);')
pid_enum.append(' }')
@@ -825,33 +826,9 @@
' vktrace_LogError("CreateDescriptorSetLayout must have pCreateInfo->stype of VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO.");\n',
' pPacket->header = NULL;\n',
'}']},
-# 'BeginCommandBuffer' : {'param': 'pBeginInfo', 'txt': ['if (pPacket->pBeginInfo->sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO) {\n',
-# ' // need to make a non-const pointer to the pointer so that we can properly change the original pointer to the interpretted one\n',
-# ' VkCommandBufferGraphicsBeginInfo** ppNext = (VkCommandBufferGraphicsBeginInfo**)&(pPacket->pBeginInfo->pNext);\n',
-# ' *ppNext = (VkCommandBufferGraphicsBeginInfo*) vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pPacket->pBeginInfo->pNext);\n',
-# ' VkCommandBufferGraphicsBeginInfo* pNext = *ppNext;\n',
-# ' while (NULL != pNext)\n', ' {\n',
-# ' switch(pNext->sType)\n', ' {\n',
-# ' case VK_STRUCTURE_TYPE_COMMAND_BUFFER_GRAPHICS_BEGIN_INFO:\n',
-# ' {\n',
-# ' ppNext = (VkCommandBufferGraphicsBeginInfo**) &pNext->pNext;\n',
-# ' *ppNext = (VkCommandBufferGraphicsBeginInfo*)vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pNext->pNext);\n',
-# ' break;\n',
-# ' }\n',
-# ' default:\n',
-# ' {\n',
-# ' vktrace_LogError("Encountered an unexpected type in begin command buffer list.");\n',
-# ' pPacket->header = NULL;\n',
-# ' pNext->pNext = NULL;\n',
-# ' }\n',
-# ' }\n',
-# ' pNext = (VkCommandBufferGraphicsBeginInfo*)pNext->pNext;\n',
-# ' }\n',
-# '} else {\n',
-# ' // This is unexpected.\n',
-# ' vktrace_LogError("BeginCommandBuffer must have BeginInfo stype of VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO.");\n',
-# ' pPacket->header = NULL;\n',
-# '}']},
+ 'BeginCommandBuffer' : {'param': 'pBeginInfo', 'txt': [
+ 'VkCommandBufferBeginInfo* pInfo = (VkCommandBufferBeginInfo*) pPacket->pBeginInfo;\n',
+ 'pInfo->pInheritanceInfo = (VkCommandBufferInheritanceInfo*) vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pPacket->pBeginInfo->pInheritanceInfo);\n']},
'AllocateMemory' : {'param': 'pAllocateInfo', 'txt': ['if (pPacket->pAllocateInfo->sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) {\n',
' VkMemoryAllocateInfo** ppNext = (VkMemoryAllocateInfo**) &(pPacket->pAllocateInfo->pNext);\n',
' *ppNext = (VkMemoryAllocateInfo*) vktrace_trace_packet_interpret_buffer_pointer(pHeader, (intptr_t)pPacket->pAllocateInfo->pNext);\n',
@@ -1579,12 +1556,12 @@
elif create_func: # Declare local var to store created handle into
if 'AllocateDescriptorSets' == proto.name:
p_ty = proto.params[-1].ty.strip('*').replace('const ', '')
- rbody.append(' %s* local_%s = (%s*)malloc(pPacket->pAllocateInfo->setLayoutCount * sizeof(%s));' % (p_ty, proto.params[-1].name, p_ty, p_ty))
- rbody.append(' VkDescriptorSetLayout* local_pSetLayouts = (VkDescriptorSetLayout*)malloc(pPacket->pAllocateInfo->setLayoutCount * sizeof(VkDescriptorSetLayout));')
+ rbody.append(' %s* local_%s = (%s*)malloc(pPacket->pAllocateInfo->descriptorSetCount * sizeof(%s));' % (p_ty, proto.params[-1].name, p_ty, p_ty))
+ rbody.append(' VkDescriptorSetLayout* local_pSetLayouts = (VkDescriptorSetLayout*)malloc(pPacket->pAllocateInfo->descriptorSetCount * sizeof(VkDescriptorSetLayout));')
rbody.append(' VkDescriptorSetAllocateInfo local_AllocInfo, *local_pAllocateInfo = &local_AllocInfo;')
rbody.append(' VkDescriptorPool local_descPool;')
rbody.append(' local_descPool = m_objMapper.remap_descriptorpools(pPacket->pAllocateInfo->descriptorPool);')
- rbody.append(' for (uint32_t i = 0; i < pPacket->pAllocateInfo->setLayoutCount; i++)')
+ rbody.append(' for (uint32_t i = 0; i < pPacket->pAllocateInfo->descriptorSetCount; i++)')
rbody.append(' {')
rbody.append(' local_pSetLayouts[i] = m_objMapper.remap_descriptorsetlayouts(pPacket->%s->pSetLayouts[i]);' % (proto.params[-2].name))
rbody.append(' }')
@@ -1714,7 +1691,7 @@
elif 'AllocateDescriptorSets' in proto.name:
rbody.append(' if (replayResult == VK_SUCCESS)')
rbody.append(' {')
- rbody.append(' for (uint32_t i = 0; i < pPacket->pAllocateInfo->setLayoutCount; i++) {')
+ rbody.append(' for (uint32_t i = 0; i < pPacket->pAllocateInfo->descriptorSetCount; i++) {')
rbody.append(' m_objMapper.add_to_descriptorsets_map(pPacket->%s[i], local_%s[i]);' % (proto.params[-1].name, proto.params[-1].name))
rbody.append(' }')
rbody.append(' }')
diff --git a/vulkan.py b/vulkan.py
index 9201f68..9f547a4 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -943,7 +943,11 @@
Param("VkPipelineStageFlags", "srcStageMask"),
Param("VkPipelineStageFlags", "dstStageMask"),
Param("uint32_t", "memoryBarrierCount"),
- Param("const void* const*", "ppMemoryBarriers")]),
+ Param("const VkMemoryBarrier*", "pMemoryBarriers"),
+ Param("uint32_t", "bufferMemoryBarrierCount"),
+ Param("const VkBufferMemoryBarrier*", "pBufferMemoryBarriers"),
+ Param("uint32_t", "imageMemoryBarrierCount"),
+ Param("const VkImageMemoryBarrier*", "pImageMemoryBarriers")]),
Proto("void", "CmdPipelineBarrier",
[Param("VkCommandBuffer", "commandBuffer"),
@@ -951,18 +955,22 @@
Param("VkPipelineStageFlags", "dstStageMask"),
Param("VkDependencyFlags", "dependencyFlags"),
Param("uint32_t", "memoryBarrierCount"),
- Param("const void* const*", "ppMemoryBarriers")]),
+ Param("const VkMemoryBarrier*", "pMemoryBarriers"),
+ Param("uint32_t", "bufferMemoryBarrierCount"),
+ Param("const VkBufferMemoryBarrier*", "pBufferMemoryBarriers"),
+ Param("uint32_t", "imageMemoryBarrierCount"),
+ Param("const VkImageMemoryBarrier*", "pImageMemoryBarriers")]),
Proto("void", "CmdBeginQuery",
[Param("VkCommandBuffer", "commandBuffer"),
Param("VkQueryPool", "queryPool"),
- Param("uint32_t", "entry"),
+ Param("uint32_t", "query"),
Param("VkQueryControlFlags", "flags")]),
Proto("void", "CmdEndQuery",
[Param("VkCommandBuffer", "commandBuffer"),
Param("VkQueryPool", "queryPool"),
- Param("uint32_t", "entry")]),
+ Param("uint32_t", "query")]),
Proto("void", "CmdResetQueryPool",
[Param("VkCommandBuffer", "commandBuffer"),
@@ -974,7 +982,7 @@
[Param("VkCommandBuffer", "commandBuffer"),
Param("VkPipelineStageFlagBits", "pipelineStage"),
Param("VkQueryPool", "queryPool"),
- Param("uint32_t", "entry")]),
+ Param("uint32_t", "query")]),
Proto("void", "CmdCopyQueryPoolResults",
[Param("VkCommandBuffer", "commandBuffer"),
@@ -1008,7 +1016,7 @@
Proto("void", "CmdExecuteCommands",
[Param("VkCommandBuffer", "commandBuffer"),
- Param("uint32_t", "commandBuffersCount"),
+ Param("uint32_t", "commandBufferCount"),
Param("const VkCommandBuffer*", "pCommandBuffers")]),
],
)