zink: add format test

This will help avoid future mistakes when mapping formats.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7982>
This commit is contained in:
Erik Faye-Lund 2020-12-07 20:53:31 +01:00 committed by Marge Bot
parent d788a1d6f4
commit 74132b761c
2 changed files with 40 additions and 0 deletions

View File

@ -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

View File

@ -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;
}