swr: properly expose compressed format support

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Tim Rowley 2016-05-12 11:27:57 -05:00
parent 5186545d66
commit 2785f2f2d7
2 changed files with 23 additions and 0 deletions

View file

@ -32,6 +32,9 @@
#include "pipe/p_compiler.h"
#ifdef __cplusplus
extern "C" {
#endif
enum util_format_dxtn {
UTIL_FORMAT_DXT1_RGB = 0x83F0,
@ -214,5 +217,8 @@ util_format_dxt5_srgba_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, co
void
util_format_dxt5_srgba_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j);
#ifdef __cplusplus
}
#endif
#endif /* U_FORMAT_S3TC_H_ */

View file

@ -27,6 +27,7 @@
#include "util/u_format.h"
#include "util/u_inlines.h"
#include "util/u_cpu_detect.h"
#include "util/u_format_s3tc.h"
#include "state_tracker/sw_winsys.h"
@ -128,6 +129,20 @@ swr_is_format_supported(struct pipe_screen *screen,
return FALSE;
}
if (format_desc->layout == UTIL_FORMAT_LAYOUT_BPTC ||
format_desc->layout == UTIL_FORMAT_LAYOUT_ASTC) {
return FALSE;
}
if (format_desc->layout == UTIL_FORMAT_LAYOUT_ETC &&
format != PIPE_FORMAT_ETC1_RGB8) {
return FALSE;
}
if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC) {
return util_format_s3tc_enabled;
}
return TRUE;
}
@ -735,6 +750,8 @@ swr_create_screen(struct sw_winsys *winsys)
swr_fence_init(&screen->base);
util_format_s3tc_init();
return &screen->base;
}