diff options
author | Anuj Phogat <[email protected]> | 2014-06-12 14:49:50 -0700 |
---|---|---|
committer | Anuj Phogat <[email protected]> | 2014-08-04 17:19:42 -0700 |
commit | 338fef61f86bb121e47b096428dce2a9109d3a3e (patch) | |
tree | e258ce153496a6df6960b2e2dc31ca9ee6d2de32 | |
parent | 4bab55c874141b6a156a2e145443c6e07971ab39 (diff) |
meta: Fix datatype computation in get_temp_image_type()
Changes in the patch will cause datatype to be computed
correctly for 8 and 16 bit integer formats. For example:
GL_RG8I, GL_RG16I etc.
Fixes many failures in gles3 Khronos CTS test:
copy_tex_image_conversions_required
copy_tex_image_conversions_forbidden
Cc: <[email protected]>
Signed-off-by: Anuj Phogat <[email protected]>
Reviewed-by: Topi Pohjolainen <[email protected]>
-rw-r--r-- | src/mesa/drivers/common/meta.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 64fcd29eb14..f8f0ee306ff 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -2745,15 +2745,14 @@ get_temp_image_type(struct gl_context *ctx, mesa_format format) case GL_LUMINANCE: case GL_LUMINANCE_ALPHA: case GL_INTENSITY: - if (format_red_bits <= 8) { + if (datatype == GL_INT || datatype == GL_UNSIGNED_INT) { + return datatype; + } else if (format_red_bits <= 8) { return GL_UNSIGNED_BYTE; } else if (format_red_bits <= 16) { return GL_UNSIGNED_SHORT; - } else { - if (datatype == GL_INT || datatype == GL_UNSIGNED_INT) - return datatype; - return GL_FLOAT; } + return GL_FLOAT; case GL_DEPTH_COMPONENT: if (datatype == GL_FLOAT) return GL_FLOAT; |