anv: Change render_pass_attachment.format to a VkFormat
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 13 May 2016 21:07:21 +0000 (14:07 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 17 May 2016 19:17:22 +0000 (12:17 -0700)
src/intel/vulkan/anv_cmd_buffer.c
src/intel/vulkan/anv_pass.c
src/intel/vulkan/anv_private.h

index 77f4283f77a1260400569220d9468dde7a6e6ce3..bba24e82337e853fda0d71494bb64a7111cc1660 100644 (file)
@@ -29,6 +29,8 @@
 
 #include "anv_private.h"
 
+#include "vk_format_info.h"
+
 /** \file anv_cmd_buffer.c
  *
  * This file contains all of the stuff for emitting commands into a command
@@ -168,20 +170,21 @@ anv_cmd_state_setup_attachments(struct anv_cmd_buffer *cmd_buffer,
 
    for (uint32_t i = 0; i < pass->attachment_count; ++i) {
       struct anv_render_pass_attachment *att = &pass->attachments[i];
+      VkImageAspectFlags att_aspects = vk_format_aspects(att->format);
       VkImageAspectFlags clear_aspects = 0;
 
-      if (anv_format_is_color(att->format)) {
+      if (att_aspects == VK_IMAGE_ASPECT_COLOR_BIT) {
          /* color attachment */
          if (att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
             clear_aspects |= VK_IMAGE_ASPECT_COLOR_BIT;
          }
       } else {
          /* depthstencil attachment */
-         if (att->format->has_depth &&
+         if ((att_aspects & VK_IMAGE_ASPECT_DEPTH_BIT) &&
              att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
             clear_aspects |= VK_IMAGE_ASPECT_DEPTH_BIT;
          }
-         if (att->format->has_stencil &&
+         if ((att_aspects & VK_IMAGE_ASPECT_STENCIL_BIT) &&
              att->stencil_load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
             clear_aspects |= VK_IMAGE_ASPECT_STENCIL_BIT;
          }
index d07e9fec6cccf881b22a0d7a2cd85b36d5c14009..b7407548779f64d3831fd655ff547c451bfd3a83 100644 (file)
@@ -57,7 +57,7 @@ VkResult anv_CreateRenderPass(
    for (uint32_t i = 0; i < pCreateInfo->attachmentCount; i++) {
       struct anv_render_pass_attachment *att = &pass->attachments[i];
 
-      att->format = anv_format_for_vk_format(pCreateInfo->pAttachments[i].format);
+      att->format = pCreateInfo->pAttachments[i].format;
       att->samples = pCreateInfo->pAttachments[i].samples;
       att->load_op = pCreateInfo->pAttachments[i].loadOp;
       att->stencil_load_op = pCreateInfo->pAttachments[i].stencilLoadOp;
index c3b31e612f49cb3d39fc3a768ec0efc05344828d..6284be92f6dff1003d5c4ae49ed9de0f5f5c8453 100644 (file)
@@ -1751,7 +1751,7 @@ struct anv_subpass {
 };
 
 struct anv_render_pass_attachment {
-   const struct anv_format                      *format;
+   VkFormat                                     format;
    uint32_t                                     samples;
    VkAttachmentLoadOp                           load_op;
    VkAttachmentLoadOp                           stencil_load_op;