Mesa (master): anv: Add a vk_to_isl_color helper

Jason Ekstrand jekstrand at kemper.freedesktop.org
Tue Nov 22 22:51:19 UTC 2016


Module: Mesa
Branch: master
Commit: 772d223c9c05322ef26640667d1938d8c378b531
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=772d223c9c05322ef26640667d1938d8c378b531

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Fri Nov 18 13:35:16 2016 -0800

anv: Add a vk_to_isl_color helper

Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

---

 src/intel/vulkan/anv_blorp.c   | 10 +++-------
 src/intel/vulkan/anv_private.h | 13 +++++++++++++
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index 56552ae..0565f0c 100644
--- a/src/intel/vulkan/anv_blorp.c
+++ b/src/intel/vulkan/anv_blorp.c
@@ -802,9 +802,6 @@ void anv_CmdClearColorImage(
    struct blorp_batch batch;
    blorp_batch_init(&cmd_buffer->device->blorp, &batch, cmd_buffer, 0);
 
-   union isl_color_value clear_color;
-   memcpy(clear_color.u32, pColor->uint32, sizeof(pColor->uint32));
-
    struct blorp_surf surf;
    get_blorp_surf_for_anv_image(image, VK_IMAGE_ASPECT_COLOR_BIT,
                                 image->aux_usage, &surf);
@@ -836,7 +833,7 @@ void anv_CmdClearColorImage(
                      src_format.isl_format, src_format.swizzle,
                      level, base_layer, layer_count,
                      0, 0, level_width, level_height,
-                     clear_color, color_write_disable);
+                     vk_to_isl_color(*pColor), color_write_disable);
       }
    }
 
@@ -963,9 +960,8 @@ clear_color_attachment(struct anv_cmd_buffer *cmd_buffer,
    uint32_t binding_table =
       binding_table_for_surface_state(cmd_buffer, att_state->color_rt_state);
 
-   union isl_color_value clear_color;
-   memcpy(clear_color.u32, attachment->clearValue.color.uint32,
-          sizeof(clear_color.u32));
+   union isl_color_value clear_color =
+      vk_to_isl_color(attachment->clearValue.color);
 
    for (uint32_t r = 0; r < rectCount; ++r) {
       const VkOffset2D offset = pRects[r].rect.offset;
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index 7b521b1..7931d4b 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -153,6 +153,19 @@ anv_clear_mask(uint32_t *inout_mask, uint32_t clear_mask)
    }
 }
 
+static inline union isl_color_value
+vk_to_isl_color(VkClearColorValue color)
+{
+   return (union isl_color_value) {
+      .u32 = {
+         color.uint32[0],
+         color.uint32[1],
+         color.uint32[2],
+         color.uint32[3],
+      },
+   };
+}
+
 #define for_each_bit(b, dword)                          \
    for (uint32_t __dword = (dword);                     \
         (b) = __builtin_ffs(__dword) - 1, __dword;      \




More information about the mesa-commit mailing list