The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

comp: Reuse vk_create_view function in swapchain

+11 -47
+11 -47
src/xrt/compositor/common/comp_vk_swapchain.c
··· 44 44 */ 45 45 46 46 static void 47 - vk_swapchain_create_image_view(struct vk_bundle *vk, 48 - VkImage image, 49 - VkFormat format, 50 - VkImageView *view); 51 - 52 - static void 53 47 vk_swapchain_create_image_views(struct vk_swapchain *sc); 54 48 55 49 static void ··· 450 444 sc->buffers = 451 445 U_TYPED_ARRAY_CALLOC(struct vk_swapchain_buffer, sc->image_count); 452 446 447 + VkImageSubresourceRange subresource_range = { 448 + .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, 449 + .baseMipLevel = 0, 450 + .levelCount = 1, 451 + .baseArrayLayer = 0, 452 + .layerCount = 1, 453 + }; 454 + 453 455 for (uint32_t i = 0; i < sc->image_count; i++) { 454 456 sc->buffers[i].image = images[i]; 455 - vk_swapchain_create_image_view(sc->vk, sc->buffers[i].image, 456 - sc->surface_format.format, 457 - &sc->buffers[i].view); 457 + vk_create_view(sc->vk, sc->buffers[i].image, 458 + sc->surface_format.format, subresource_range, 459 + &sc->buffers[i].view); 458 460 } 459 461 460 462 free(images); ··· 477 479 sc->swap_chain = VK_NULL_HANDLE; 478 480 } 479 481 } 480 - 481 - static void 482 - vk_swapchain_create_image_view(struct vk_bundle *vk, 483 - VkImage image, 484 - VkFormat format, 485 - VkImageView *view) 486 - { 487 - VkResult ret; 488 - 489 - VkImageViewCreateInfo view_create_info = { 490 - .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, 491 - .pNext = NULL, 492 - .flags = 0, 493 - .image = image, 494 - .viewType = VK_IMAGE_VIEW_TYPE_2D, 495 - .format = format, 496 - .components = 497 - { 498 - .r = VK_COMPONENT_SWIZZLE_R, 499 - .g = VK_COMPONENT_SWIZZLE_G, 500 - .b = VK_COMPONENT_SWIZZLE_B, 501 - .a = VK_COMPONENT_SWIZZLE_A, 502 - }, 503 - .subresourceRange = 504 - { 505 - .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, 506 - .baseMipLevel = 0, 507 - .levelCount = 1, 508 - .baseArrayLayer = 0, 509 - .layerCount = 1, 510 - }, 511 - }; 512 - 513 - ret = vk->vkCreateImageView(vk->device, &view_create_info, NULL, view); 514 - if (ret != VK_SUCCESS) { 515 - VK_ERROR(vk, "vkCreateImageView: %s", vk_result_string(ret)); 516 - } 517 - }