[Mesa-dev] [PATCH 1/2] st: fix st_choose_matching_format to ignore intensity
Chris Forbes
chrisf at ijw.co.nz
Fri Mar 28 16:02:54 PDT 2014
_mesa_format_matches_format_and_type() returns true for
GL_RED/GL_RED_INTEGER (with an appropriate type) into an intensity
mesa_format.
We want the `red`-based format instead, regardless of the order we find
them in our walk of the mesa formats list.
Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
---
src/mesa/state_tracker/st_format.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index cd6b466..62cee1c 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -1750,6 +1750,11 @@ st_choose_matching_format(struct pipe_screen *screen, unsigned bind,
if (_mesa_get_format_color_encoding(mesa_format) == GL_SRGB) {
continue;
}
+ if (_mesa_get_format_bits(mesa_format, GL_TEXTURE_INTENSITY_SIZE) > 0) {
+ /* if `format` is GL_RED/GL_RED_INTEGER, then we might match some
+ * intensity formats, which we don't want. */
+ continue;
+ }
if (_mesa_format_matches_format_and_type(mesa_format, format, type,
swapBytes)) {
--
1.9.0
More information about the mesa-dev
mailing list