diff options
author | Jason Ekstrand <[email protected]> | 2016-05-15 21:31:38 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-05-17 12:17:22 -0700 |
commit | 7cae59012d98959a997ef96c217adba0dc8b3ed7 (patch) | |
tree | 1fe5d14f21e30fd1ac1435365650930e54cc8920 /src/intel/vulkan/anv_formats.c | |
parent | 8ed429a4f0d58eafe3e3212552af6fb0cb78feeb (diff) |
anv/formats: Use the isl_channel_select enum for the swizzle
Diffstat (limited to 'src/intel/vulkan/anv_formats.c')
-rw-r--r-- | src/intel/vulkan/anv_formats.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c index 4d5d3ceb598..6d677d54546 100644 --- a/src/intel/vulkan/anv_formats.c +++ b/src/intel/vulkan/anv_formats.c @@ -25,8 +25,15 @@ #include "brw_surface_formats.h" #include "vk_format_info.h" -#define RGBA { 0, 1, 2, 3 } -#define BGRA { 2, 1, 0, 3 } +#define ISL_SWIZZLE(r, g, b, a) { \ + ISL_CHANNEL_SELECT_##r, \ + ISL_CHANNEL_SELECT_##g, \ + ISL_CHANNEL_SELECT_##b, \ + ISL_CHANNEL_SELECT_##a, \ +} + +#define RGBA ISL_SWIZZLE(RED, GREEN, BLUE, ALPHA) +#define BGRA ISL_SWIZZLE(BLUE, GREEN, RED, ALPHA) #define swiz_fmt(__vk_fmt, __hw_fmt, __swizzle) \ [__vk_fmt] = { \ @@ -308,13 +315,16 @@ get_image_format_properties(int gen, enum isl_format base, * moved, then blending won't work correctly. The PRM tells us * straight-up not to render to such a surface. */ - if (info->render_target <= gen && format.swizzle.a == 3) { + if (info->render_target <= gen && + format.swizzle.a == ISL_CHANNEL_SELECT_ALPHA) { flags |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | VK_FORMAT_FEATURE_BLIT_DST_BIT; } - if (info->alpha_blend <= gen && format.swizzle.a == 3) + if (info->alpha_blend <= gen && + format.swizzle.a == ISL_CHANNEL_SELECT_ALPHA) { flags |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT; + } /* Load/store is determined based on base format. This prevents RGB * formats from showing up as load/store capable. |