Mesa (master): broadcom/vc5: Ignore unused usage flags in is_format_supported.
Eric Anholt
anholt at kemper.freedesktop.org
Fri Feb 23 23:07:44 UTC 2018
Module: Mesa
Branch: master
Commit: 97dc0773032d6284ea5c63758abf704d877f65dc
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=97dc0773032d6284ea5c63758abf704d877f65dc
Author: Eric Anholt <eric at anholt.net>
Date: Fri Feb 23 09:10:36 2018 -0800
broadcom/vc5: Ignore unused usage flags in is_format_supported.
Like for vc4, the new DISPLAY_TARGET flag ended up causing no formats to
match. Just drop the whole retval == usage thing and return early when we
hit a known unsupported case.
Fixes: f7604d8af521 ("st/dri: only expose config formats that are display targets")
---
src/gallium/drivers/vc5/vc5_screen.c | 43 ++++++++++++++----------------------
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/src/gallium/drivers/vc5/vc5_screen.c b/src/gallium/drivers/vc5/vc5_screen.c
index 47727d0ada..5d63fb6ec0 100644
--- a/src/gallium/drivers/vc5/vc5_screen.c
+++ b/src/gallium/drivers/vc5/vc5_screen.c
@@ -426,7 +426,6 @@ vc5_screen_is_format_supported(struct pipe_screen *pscreen,
unsigned usage)
{
struct vc5_screen *screen = vc5_screen(pscreen);
- unsigned retval = 0;
if (sample_count > 1 && sample_count != VC5_MAX_SAMPLES)
return FALSE;
@@ -482,49 +481,39 @@ vc5_screen_is_format_supported(struct pipe_screen *pscreen,
case PIPE_FORMAT_R8G8B8_SSCALED:
case PIPE_FORMAT_R8G8_SSCALED:
case PIPE_FORMAT_R8_SSCALED:
- retval |= PIPE_BIND_VERTEX_BUFFER;
break;
default:
- break;
+ return FALSE;
}
}
if ((usage & PIPE_BIND_RENDER_TARGET) &&
- vc5_rt_format_supported(&screen->devinfo, format)) {
- retval |= PIPE_BIND_RENDER_TARGET;
+ !vc5_rt_format_supported(&screen->devinfo, format)) {
+ return FALSE;
}
if ((usage & PIPE_BIND_SAMPLER_VIEW) &&
- vc5_tex_format_supported(&screen->devinfo, format)) {
- retval |= PIPE_BIND_SAMPLER_VIEW;
+ !vc5_tex_format_supported(&screen->devinfo, format)) {
+ return FALSE;
}
if ((usage & PIPE_BIND_DEPTH_STENCIL) &&
- (format == PIPE_FORMAT_S8_UINT_Z24_UNORM ||
- format == PIPE_FORMAT_X8Z24_UNORM ||
- format == PIPE_FORMAT_Z16_UNORM ||
- format == PIPE_FORMAT_Z32_FLOAT ||
- format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT)) {
- retval |= PIPE_BIND_DEPTH_STENCIL;
+ !(format == PIPE_FORMAT_S8_UINT_Z24_UNORM ||
+ format == PIPE_FORMAT_X8Z24_UNORM ||
+ format == PIPE_FORMAT_Z16_UNORM ||
+ format == PIPE_FORMAT_Z32_FLOAT ||
+ format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT)) {
+ return FALSE;
}
if ((usage & PIPE_BIND_INDEX_BUFFER) &&
- (format == PIPE_FORMAT_I8_UINT ||
- format == PIPE_FORMAT_I16_UINT ||
- format == PIPE_FORMAT_I32_UINT)) {
- retval |= PIPE_BIND_INDEX_BUFFER;
- }
-
-#if 0
- if (retval != usage) {
- fprintf(stderr,
- "not supported: format=%s, target=%d, sample_count=%d, "
- "usage=0x%x, retval=0x%x\n", util_format_name(format),
- target, sample_count, usage, retval);
+ !(format == PIPE_FORMAT_I8_UINT ||
+ format == PIPE_FORMAT_I16_UINT ||
+ format == PIPE_FORMAT_I32_UINT)) {
+ return FALSE;
}
-#endif
- return retval == usage;
+ return TRUE;
}
#define PTR_TO_UINT(x) ((unsigned)((intptr_t)(x)))
More information about the mesa-commit
mailing list