summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-11-18 13:35:16 -0800
committerJason Ekstrand <[email protected]>2016-11-22 14:24:29 -0800
commit772d223c9c05322ef26640667d1938d8c378b531 (patch)
treebe939a7680cd131d2a84db88ac2112c146170dd5 /src/intel
parentd1d6b788989e73edd2426999d891230500dc1a73 (diff)
anv: Add a vk_to_isl_color helper
Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/vulkan/anv_blorp.c10
-rw-r--r--src/intel/vulkan/anv_private.h13
2 files changed, 16 insertions, 7 deletions
diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index 56552ae2296..0565f0ca926 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 7b521b1268d..7931d4bb790 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; \