aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2019-09-12 17:30:28 -0700
committerKenneth Graunke <[email protected]>2019-09-16 13:17:23 -0700
commitfbad42bbb9d80abc538c698ca413255968eabda4 (patch)
tree6135b15d1e41de442ea2fd922629a7fb7a656fe3 /src/mesa/state_tracker
parentffabcbba606eacb8c955bf9e0424be8ca242b53f (diff)
st/mesa: Prefer 5551 formats for GL_UNSIGNED_SHORT_5_5_5_1.
Previously, internalformat GL_RGBA and type GL_UNSIGNED_SHORT_5_5_5_1 was promoted to RGBA8888 as the table entry with the 5551 formats is listed below the 8888 entry, and it also doesn't have GL_RGBA as a possible internalformat. Using actual 5551 fixes the following dEQP-EGL test: - dEQP-EGL.functional.image.modify.tex_rgb5_a1_tex_subimage_rgba8 Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r--src/mesa/state_tracker/st_format.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index 5f7997c5c5a..38ea51b02cd 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -2266,6 +2266,13 @@ st_choose_format(struct st_context *st, GLenum internalFormat,
internalFormat = GL_RGB10_A2;
}
+ if (type == GL_UNSIGNED_SHORT_5_5_5_1) {
+ if (internalFormat == GL_RGB)
+ internalFormat = GL_RGB5;
+ else if (internalFormat == GL_RGBA)
+ internalFormat = GL_RGB5_A1;
+ }
+
/* search table for internalFormat */
for (i = 0; i < ARRAY_SIZE(format_map); i++) {
const struct format_mapping *mapping = &format_map[i];