util/format: add trivial srgb<->linear conversion test
This would've caught 8829f9ccb0
("u_format: add ETC2 to
util_format_srgb/util_format_linear").
Suggested-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
8f4d4c808b
commit
da9937d09b
|
@ -287,4 +287,5 @@ if with_tests
|
|||
subdir('tests/vma')
|
||||
subdir('tests/set')
|
||||
subdir('tests/sparse_array')
|
||||
subdir('tests/format')
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
foreach t : ['srgb']
|
||||
test(t,
|
||||
executable(
|
||||
t,
|
||||
'@0@.c'.format(t),
|
||||
include_directories : inc_common,
|
||||
dependencies : idep_mesautil,
|
||||
),
|
||||
suite : 'format',
|
||||
should_fail : meson.get_cross_property('xfail', '').contains(t),
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,40 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "util/macros.h"
|
||||
#include "util/format/u_format.h"
|
||||
#include "pipe/p_format.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
for (enum pipe_format format = 0; format < PIPE_FORMAT_COUNT; format++)
|
||||
{
|
||||
if (!util_format_is_srgb(format)) {
|
||||
const enum pipe_format linear = util_format_linear(format);
|
||||
if (format != linear) {
|
||||
fprintf(stderr, "%s converted to linear is %s\n",
|
||||
util_format_name(format),
|
||||
util_format_name(linear));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
const enum pipe_format linear = util_format_linear(format);
|
||||
if (format == linear) {
|
||||
fprintf(stderr, "%s can't be converted to a linear equivalent\n",
|
||||
util_format_name(format));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
const enum pipe_format srgb = util_format_srgb(linear);
|
||||
if (format != srgb) {
|
||||
fprintf(stderr, "%s converted to linear and back to srgb becomes %s\n",
|
||||
util_format_name(format),
|
||||
util_format_name(srgb));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
Loading…
Reference in New Issue