diff options
author | marha <marha@users.sourceforge.net> | 2011-01-21 12:52:35 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-01-21 12:52:35 +0000 |
commit | 7719409ebcf17c5288114dee8f60cc9ff889fd3e (patch) | |
tree | e86379743c048712c638bed954264fccea7798c4 /mesalib/src/mesa/main/context.c | |
parent | 26ee05a8febfe1ed6da852777a8c1c2a37e4cf9b (diff) | |
parent | b0be6a88c8fecdf15176f642c0799bff99930e0d (diff) | |
download | vcxsrv-7719409ebcf17c5288114dee8f60cc9ff889fd3e.tar.gz vcxsrv-7719409ebcf17c5288114dee8f60cc9ff889fd3e.tar.bz2 vcxsrv-7719409ebcf17c5288114dee8f60cc9ff889fd3e.zip |
svn merge ^/branches/released .
Diffstat (limited to 'mesalib/src/mesa/main/context.c')
-rw-r--r-- | mesalib/src/mesa/main/context.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c index fe370fa36..e017939a4 100644 --- a/mesalib/src/mesa/main/context.c +++ b/mesalib/src/mesa/main/context.c @@ -534,8 +534,17 @@ init_program_limits(GLenum type, struct gl_program_constants *prog) prog->MediumFloat.RangeMax = 127; prog->MediumFloat.Precision = 23; prog->LowFloat = prog->HighFloat = prog->MediumFloat; - /* assume ints are stored as floats for now */ - prog->LowInt = prog->MediumInt = prog->HighInt = prog->MediumFloat; + + /* Assume ints are stored as floats for now, since this is the least-common + * denominator. The OpenGL ES spec implies (page 132) that the precision + * of integer types should be 0. Practically speaking, IEEE + * single-precision floating point values can only store integers in the + * range [-0x01000000, 0x01000000] without loss of precision. + */ + prog->MediumInt.RangeMin = 24; + prog->MediumInt.RangeMax = 24; + prog->MediumInt.Precision = 0; + prog->LowInt = prog->HighInt = prog->MediumInt; } |