.format = VK_FORMAT_R8G8B8A8_UNORM,
.extent = (VkExtent3D) { extent.width, extent.height, 1 },
.mipLevels = 1,
- .arraySize = 1,
+ .arrayLayers = 1,
.samples = 1,
.tiling = VK_IMAGE_TILING_LINEAR,
.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
.flags = 0,
- }, ©_image);
+ }, NULL, ©_image);
assert(result == VK_SUCCESS);
VkMemoryRequirements reqs;
- result = anv_GetImageMemoryRequirements(vk_device, copy_image, &reqs);
+ anv_GetImageMemoryRequirements(vk_device, copy_image, &reqs);
VkDeviceMemory memory;
- result = anv_AllocMemory(vk_device,
- &(VkMemoryAllocInfo) {
- .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO,
+ result = anv_AllocateMemory(vk_device,
+ &(VkMemoryAllocateInfo) {
+ .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
.allocationSize = reqs.size,
.memoryTypeIndex = 0,
- }, &memory);
+ }, NULL, &memory);
assert(result == VK_SUCCESS);
result = anv_BindImageMemory(vk_device, copy_image, memory, 0);
.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
.queueFamilyIndex = 0,
.flags = 0,
- }, &commandPool);
+ }, NULL, &commandPool);
assert(result == VK_SUCCESS);
VkCommandBuffer cmd;
- result = anv_CreateCommandBuffer(vk_device,
- &(VkCommandBufferCreateInfo) {
- .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_CREATE_INFO,
+ result = anv_AllocateCommandBuffers(vk_device,
+ &(VkCommandBufferAllocateInfo) {
+ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
.commandPool = commandPool,
.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
- .flags = 0,
+ .commandBufferCount = 1,
}, &cmd);
assert(result == VK_SUCCESS);
result = anv_BeginCommandBuffer(cmd,
&(VkCommandBufferBeginInfo) {
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
- .flags = VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT,
+ .flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
});
assert(result == VK_SUCCESS);
copy_image, VK_IMAGE_LAYOUT_GENERAL, 1,
&(VkImageBlit) {
.srcSubresource = {
- .aspect = VK_IMAGE_ASPECT_COLOR,
+ .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
.mipLevel = miplevel,
- .arrayLayer = array_layer,
- .arraySize = 1,
+ .baseArrayLayer = array_layer,
+ .layerCount = 1,
},
.srcOffset = (VkOffset3D) { 0, 0, 0 },
.srcExtent = (VkExtent3D) {
extent.height,
1
},
- .destSubresource = {
- .aspect = VK_IMAGE_ASPECT_COLOR,
+ .dstSubresource = {
+ .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
.mipLevel = 0,
- .arrayLayer = 0,
- .arraySize = 1,
+ .baseArrayLayer = 0,
+ .layerCount = 1,
},
- .destOffset = (VkOffset3D) { 0, 0, 0 },
- .destExtent = (VkExtent3D) {
+ .dstOffset = (VkOffset3D) { 0, 0, 0 },
+ .dstExtent = (VkExtent3D) {
extent.width,
extent.height,
1
},
- }, VK_TEX_FILTER_NEAREST);
+ }, VK_FILTER_NEAREST);
ANV_CALL(CmdPipelineBarrier)(cmd,
VK_PIPELINE_STAGE_TRANSFER_BIT,
true, 1,
(const void * []) { &(VkImageMemoryBarrier) {
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
- .outputMask = VK_MEMORY_OUTPUT_TRANSFER_BIT,
- .inputMask = VK_MEMORY_INPUT_HOST_READ_BIT,
+ .srcAccessMask = VK_ACCESS_HOST_READ_BIT,
+ .dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_GENERAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = 0,
- .destQueueFamilyIndex = 0,
+ .dstQueueFamilyIndex = 0,
.image = copy_image,
.subresourceRange = (VkImageSubresourceRange) {
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
.baseMipLevel = 0,
- .mipLevels = 1,
+ .levelCount = 1,
.baseArrayLayer = 0,
- .arraySize = 1,
+ .layerCount = 1,
},
}});
&(VkFenceCreateInfo) {
.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
.flags = 0,
- }, &fence);
+ }, NULL, &fence);
assert(result == VK_SUCCESS);
- result = anv_QueueSubmit(anv_queue_to_handle(&device->queue),
- 1, &cmd, fence);
+ result = anv_QueueSubmit(anv_queue_to_handle(&device->queue), 1,
+ &(VkSubmitInfo) {
+ .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
+ .commandBufferCount = 1,
+ .pCommandBuffers = &cmd,
+ }, fence);
assert(result == VK_SUCCESS);
result = anv_WaitForFences(vk_device, 1, &fence, true, UINT64_MAX);
assert(result == VK_SUCCESS);
- anv_DestroyFence(vk_device, fence);
- anv_DestroyCommandPool(vk_device, commandPool);
+ anv_DestroyFence(vk_device, fence, NULL);
+ anv_DestroyCommandPool(vk_device, commandPool, NULL);
uint8_t *map;
result = anv_MapMemory(vk_device, memory, 0, reqs.size, 0, (void **)&map);
assert(result == VK_SUCCESS);
VkSubresourceLayout layout;
- result = anv_GetImageSubresourceLayout(vk_device, copy_image,
+ anv_GetImageSubresourceLayout(vk_device, copy_image,
&(VkImageSubresource) {
- .aspect = VK_IMAGE_ASPECT_COLOR,
+ .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
.mipLevel = 0,
.arrayLayer = 0,
}, &layout);
- assert(result == VK_SUCCESS);
map += layout.offset;
fclose(file);
anv_UnmapMemory(vk_device, memory);
- anv_DestroyImage(vk_device, copy_image);
- anv_FreeMemory(vk_device, memory);
+ anv_DestroyImage(vk_device, copy_image, NULL);
+ anv_FreeMemory(vk_device, memory, NULL);
}