Browse Source

mesa: Add clamping for packing of integer data.

Mostly fixes piglit EXT_texture_integer/getteximage-clamping.  The
remaining failure involves precision loss on storing of int32 texture
data (something I knew was an issue, but wasn't trying to test).

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
tags/i965-primitive-restart-v2
Eric Anholt 13 years ago
parent
commit
8b97bb02fb
1 changed files with 4 additions and 4 deletions
  1. 4
    4
      src/mesa/main/pack.c

+ 4
- 4
src/mesa/main/pack.c View File

@@ -462,7 +462,7 @@ get_type_min_max(GLenum type, GLfloat *min, GLfloat *max)
#undef FN_NAME

#define DST_TYPE GLushort
#define SRC_CONVERT(x) (x)
#define SRC_CONVERT(x) MIN2(x, 0xffff)
#define FN_NAME pack_ushort_from_uint_rgba
#include "pack_tmp.h"
#undef DST_TYPE
@@ -470,7 +470,7 @@ get_type_min_max(GLenum type, GLfloat *min, GLfloat *max)
#undef FN_NAME

#define DST_TYPE GLshort
#define SRC_CONVERT(x) (x)
#define SRC_CONVERT(x) CLAMP((int)x, -32768, 32767)
#define FN_NAME pack_short_from_uint_rgba
#include "pack_tmp.h"
#undef DST_TYPE
@@ -478,7 +478,7 @@ get_type_min_max(GLenum type, GLfloat *min, GLfloat *max)
#undef FN_NAME

#define DST_TYPE GLubyte
#define SRC_CONVERT(x) (x)
#define SRC_CONVERT(x) MIN2(x, 0xff)
#define FN_NAME pack_ubyte_from_uint_rgba
#include "pack_tmp.h"
#undef DST_TYPE
@@ -486,7 +486,7 @@ get_type_min_max(GLenum type, GLfloat *min, GLfloat *max)
#undef FN_NAME

#define DST_TYPE GLbyte
#define SRC_CONVERT(x) (x)
#define SRC_CONVERT(x) CLAMP((int)x, -128, 127)
#define FN_NAME pack_byte_from_uint_rgba
#include "pack_tmp.h"
#undef DST_TYPE

Loading…
Cancel
Save