vk: Store the original VkFormat in anv_format
authorChad Versace <chad.versace@intel.com>
Mon, 17 Aug 2015 19:52:09 +0000 (12:52 -0700)
committerChad Versace <chad.versace@intel.com>
Mon, 17 Aug 2015 21:07:44 +0000 (14:07 -0700)
Store the original VkFormat as anv_format::vk_format. This will be used
to reduce format indirection, such as lookups into the VkFormat ->
anv_format translation table.

src/vulkan/anv_formats.c
src/vulkan/anv_private.h

index 3cbcff5730f05fcf216bbf95ef4e9a457359a9a8..1d1d1bbe135dcad4e67b212ae521c25a095febfb 100644 (file)
@@ -26,7 +26,7 @@
 #define UNSUPPORTED 0xffff
 
 #define fmt(__vk_fmt, ...) \
-   [__vk_fmt] = { .name = #__vk_fmt, __VA_ARGS__ }
+   [__vk_fmt] = { .vk_format = __vk_fmt, .name = #__vk_fmt, __VA_ARGS__ }
 
 static const struct anv_format anv_formats[] = {
    fmt(VK_FORMAT_UNDEFINED,               RAW,                    .cpp = 1,   .num_channels = 1),
index a94dd63b6aeeff3a531dc63ce9cadedcbe43b6f9..dc14dd2818a1970237ff3e70ad2f35d686c2585d 100644 (file)
@@ -870,6 +870,7 @@ int anv_compiler_run(struct anv_compiler *compiler, struct anv_pipeline *pipelin
 void anv_compiler_free(struct anv_pipeline *pipeline);
 
 struct anv_format {
+   const VkFormat vk_format;
    const char *name;
    uint16_t surface_format; /**< RENDER_SURFACE_STATE.SurfaceFormat */
    uint8_t cpp; /**< Bytes-per-pixel of anv_format::surface_format. */