From 74132b761cd064d7a059571772befb7266a6f7f5 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Mon, 7 Dec 2020 20:53:31 +0100 Subject: [PATCH] zink: add format test This will help avoid future mistakes when mapping formats. Reviewed-By: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/meson.build | 13 ++++++++++ src/gallium/drivers/zink/zink_format_test.c | 27 +++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/gallium/drivers/zink/zink_format_test.c diff --git a/src/gallium/drivers/zink/meson.build b/src/gallium/drivers/zink/meson.build index 61f157a9a27..252261b9da2 100644 --- a/src/gallium/drivers/zink/meson.build +++ b/src/gallium/drivers/zink/meson.build @@ -82,3 +82,16 @@ driver_zink = declare_dependency( compile_args : '-DGALLIUM_ZINK', link_with : [libzink], ) + +if with_tests + test( + 'zink_format_test', + executable( + 'zink_format_test', + ['zink_format_test.c', 'zink_format.c'], + dependencies : [idep_mesautil, idep_vulkan_util], + include_directories : [inc_gallium, inc_gallium_aux, inc_include, inc_src], + ), + suite : ['zink'], + ) +endif diff --git a/src/gallium/drivers/zink/zink_format_test.c b/src/gallium/drivers/zink/zink_format_test.c new file mode 100644 index 00000000000..502a2cbb661 --- /dev/null +++ b/src/gallium/drivers/zink/zink_format_test.c @@ -0,0 +1,27 @@ +#include "zink_format.h" +#include "vk_format.h" + +int +main(int argc, char *argv[]) +{ + int ret = 0; + for (int i = 0; i < PIPE_FORMAT_COUNT; ++i) { + enum pipe_format pipe_fmt = i; + VkFormat vk_fmt = zink_pipe_format_to_vk_format(i); + + /* skip unsupported formats */ + if (vk_fmt == VK_FORMAT_UNDEFINED) + continue; + + enum pipe_format roundtrip = vk_format_to_pipe_format(vk_fmt); + if (roundtrip != pipe_fmt) { + fprintf(stderr, "Format does not roundtrip\n" + "\tgot: %s\n" + "\texpected: %s\n", + util_format_name(roundtrip), + util_format_name(pipe_fmt)); + ret = 1; + } + } + return ret; +}