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:
parent
d788a1d6f4
commit
74132b761c
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue