vk/image: Stash more information in images and views

This commit is contained in:
Jason Ekstrand 2015-05-13 17:37:12 -07:00
parent 43126388cd
commit 1f7dcf9d75
2 changed files with 13 additions and 3 deletions

View file

@ -244,6 +244,7 @@ VkResult VKAPI vkCreateImage(
image->bo = NULL;
image->offset = 0;
image->type = pCreateInfo->imageType;
image->format = pCreateInfo->format;
image->extent = pCreateInfo->extent;
assert(image->extent.width > 0);
@ -362,6 +363,9 @@ VkResult VKAPI vkCreateImageView(
view->surface_state = create_surface_state(device, view->image, format);
/* TODO: Miplevels */
view->extent = view->image->extent;
*pView = (VkImageView) view;
return VK_SUCCESS;
@ -374,7 +378,6 @@ VkResult VKAPI vkCreateColorAttachmentView(
{
struct anv_device *device = (struct anv_device *) _device;
struct anv_color_attachment_view *view;
struct anv_image *image;
const struct anv_format *format =
anv_format_for_vk_format(pCreateInfo->format);
@ -386,9 +389,11 @@ VkResult VKAPI vkCreateColorAttachmentView(
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
view->image = (struct anv_image *) pCreateInfo->image;
image = view->image;
view->surface_state = create_surface_state(device, image, format);
view->surface_state = create_surface_state(device, view->image, format);
/* TODO: Miplevels */
view->extent = view->image->extent;
*pView = (VkColorAttachmentView) view;

View file

@ -610,6 +610,7 @@ anv_format_for_vk_format(VkFormat format);
struct anv_image {
VkImageType type;
VkFormat format;
VkExtent3D extent;
uint32_t tile_mode;
VkDeviceSize size;
@ -630,11 +631,15 @@ struct anv_buffer_view {
struct anv_color_attachment_view {
struct anv_image * image;
struct anv_state surface_state;
VkExtent3D extent;
};
struct anv_image_view {
struct anv_image * image;
struct anv_state surface_state;
VkExtent3D extent;
};
struct anv_sampler {