Sorry for the regression. This whole thing was done to fix the u_gctors.cpp issue, originally done by me, sent out without full testing since I saw duplicate work being done, and then merged by Roland if I recall correctly. I probably should not have fixed s3tc/util_format like it was done for u_half and instead put it in a branch and sent it to the ML first.
Note that everything that reads pixels and does not call util_format_s3tc_init (e.g. I think rbug tools) needs something like this, or an explicit call which is likely to be forgotten (even finding out everything that ends up calling util_format is nontrivial). Anyway, this patch fixes a couple of bugs that may have caused the regression. How can I reproduce it locally? The DXTn unit tests do fail, but the values have usually a difference of 1, so I assume it's an approximation error. commit 80214ef6265d406496dc4fd3c76d8ac782cd012b Author: Luca Barbieri <l...@luca-barbieri.com> Date: Sat Apr 3 01:55:27 2010 +0200 gallium/util: fix inverted if is_nop logic in s3tc diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index d48551f..7808210 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -303,7 +303,7 @@ util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (is_nop(util_format_dxt5_rgba_fetch)) { + if (!is_nop(util_format_dxt5_rgba_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -324,7 +324,7 @@ util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt1_rgb_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (is_nop(util_format_dxt1_rgb_fetch)) { + if (!is_nop(util_format_dxt1_rgb_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev