diff --git a/mesa-9.2-llvmpipe-on-big-endian.patch b/mesa-9.2-llvmpipe-on-big-endian.patch index 29619ff..13fd4dc 100644 --- a/mesa-9.2-llvmpipe-on-big-endian.patch +++ b/mesa-9.2-llvmpipe-on-big-endian.patch @@ -1,5 +1,5 @@ diff --git a/src/gallium/auxiliary/draw/draw_pt.c b/src/gallium/auxiliary/draw/draw_pt.c -index 602d076..c524b44 100644 +index 14dde67..bc300c0 100644 --- a/src/gallium/auxiliary/draw/draw_pt.c +++ b/src/gallium/auxiliary/draw/draw_pt.c @@ -326,6 +326,13 @@ draw_print_arrays(struct draw_context *draw, uint prim, int start, uint count) @@ -324,10 +324,10 @@ index 3402a0b..ee3ca86 100644 /* Truncate doubles to float */ if (src_type.floating && src_type.width == 64) { diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c -index 54ca61a..cf51b34 100644 +index edc2442..4c6bd81 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c -@@ -106,7 +106,6 @@ lp_build_unpack_rgba_soa(struct gallivm_state *gallivm, +@@ -115,7 +115,6 @@ lp_build_unpack_rgba_soa(struct gallivm_state *gallivm, LLVMBuilderRef builder = gallivm->builder; struct lp_build_context bld; LLVMValueRef inputs[4]; @@ -335,7 +335,7 @@ index 54ca61a..cf51b34 100644 unsigned chan; assert(format_desc->layout == UTIL_FORMAT_LAYOUT_PLAIN); -@@ -119,9 +118,9 @@ lp_build_unpack_rgba_soa(struct gallivm_state *gallivm, +@@ -128,9 +127,9 @@ lp_build_unpack_rgba_soa(struct gallivm_state *gallivm, lp_build_context_init(&bld, gallivm, type); /* Decode the input vector components */ @@ -346,7 +346,7 @@ index 54ca61a..cf51b34 100644 const unsigned stop = start + width; LLVMValueRef input; -@@ -247,8 +246,6 @@ lp_build_unpack_rgba_soa(struct gallivm_state *gallivm, +@@ -256,8 +255,6 @@ lp_build_unpack_rgba_soa(struct gallivm_state *gallivm, } inputs[chan] = input; @@ -355,7 +355,7 @@ index 54ca61a..cf51b34 100644 } lp_build_format_swizzle_soa(format_desc, &bld, inputs, rgba_out); -@@ -282,7 +279,11 @@ lp_build_rgba8_to_fi32_soa(struct gallivm_state *gallivm, +@@ -291,7 +288,11 @@ lp_build_rgba8_to_fi32_soa(struct gallivm_state *gallivm, /* Decode the input vector components */ for (chan = 0; chan < 4; ++chan) { @@ -367,7 +367,7 @@ index 54ca61a..cf51b34 100644 unsigned stop = start + 8; LLVMValueRef input; -@@ -351,13 +352,14 @@ lp_build_fetch_rgba_soa(struct gallivm_state *gallivm, +@@ -360,13 +361,14 @@ lp_build_fetch_rgba_soa(struct gallivm_state *gallivm, /* * gather the texels from the texture @@ -384,7 +384,7 @@ index 54ca61a..cf51b34 100644 /* * convert texels to float rgba -@@ -382,7 +384,8 @@ lp_build_fetch_rgba_soa(struct gallivm_state *gallivm, +@@ -391,7 +393,8 @@ lp_build_fetch_rgba_soa(struct gallivm_state *gallivm, packed = lp_build_gather(gallivm, type.length, format_desc->block.bits, @@ -394,6 +394,23 @@ index 54ca61a..cf51b34 100644 if (format_desc->format == PIPE_FORMAT_R11G11B10_FLOAT) { lp_build_r11g11b10_to_float(gallivm, packed, rgba_out); } +@@ -418,14 +421,14 @@ lp_build_fetch_rgba_soa(struct gallivm_state *gallivm, + LLVMValueRef s_offset = lp_build_const_int_vec(gallivm, type, 4); + offset = LLVMBuildAdd(builder, offset, s_offset, ""); + packed = lp_build_gather(gallivm, type.length, +- 32, type.width, base_ptr, offset); ++ 32, type.width, base_ptr, offset, FALSE); + packed = LLVMBuildAnd(builder, packed, + lp_build_const_int_vec(gallivm, type, mask), ""); + } + else { + assert (format_desc->format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT); + packed = lp_build_gather(gallivm, type.length, +- 32, type.width, base_ptr, offset); ++ 32, type.width, base_ptr, offset, TRUE); + packed = LLVMBuildBitCast(builder, packed, + lp_build_vec_type(gallivm, type), ""); + } diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_yuv.c b/src/gallium/auxiliary/gallivm/lp_bld_format_yuv.c index e542abc..873f354 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_format_yuv.c @@ -509,11 +526,24 @@ index 8e4c07d..ee69473 100644 LLVMValueRef lp_build_gather_values(struct gallivm_state * gallivm, +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c +index 4a428ee..a20fb77 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c +@@ -49,7 +49,7 @@ + * - MC-JIT supports limited OSes (MacOSX and Linux) + * - standard JIT in LLVM 3.1, with backports + */ +-#if defined(PIPE_ARCH_PPC_64) ++#if defined(PIPE_ARCH_PPC_64) || defined(PIPE_ARCH_S390X) + # define USE_MCJIT 1 + # define HAVE_AVX 0 + #elif HAVE_LLVM >= 0x0302 || (HAVE_LLVM == 0x0301 && defined(HAVE_JIT_AVX_SUPPORT)) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c -index 16d5718..0808db7 100644 +index c31b05d..104c24d 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c -@@ -533,7 +533,7 @@ lp_build_sample_fetch_image_nearest(struct lp_build_sample_context *bld, +@@ -531,7 +531,7 @@ lp_build_sample_fetch_image_nearest(struct lp_build_sample_context *bld, bld->texel_type.length, bld->format_desc->block.bits, bld->texel_type.width, @@ -522,7 +552,7 @@ index 16d5718..0808db7 100644 rgba8 = LLVMBuildBitCast(builder, rgba8, u8n_vec_type, ""); } -@@ -922,7 +922,7 @@ lp_build_sample_fetch_image_linear(struct lp_build_sample_context *bld, +@@ -893,7 +893,7 @@ lp_build_sample_fetch_image_linear(struct lp_build_sample_context *bld, bld->texel_type.length, bld->format_desc->block.bits, bld->texel_type.width, @@ -990,35 +1020,20 @@ index 1f6a56a..9c25451 100644 { uc->ui = (b << 24) | (g << 16) | (r << 8) | 0xff; } -diff --git a/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c b/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c -index c4d04a2..008e38e 100644 ---- a/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c -+++ b/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c -@@ -245,10 +245,6 @@ lp_build_blend_factor(struct lp_build_blend_aos_context *bld, - LLVMValueRef rgb_factor_, alpha_factor_; - enum lp_build_blend_swizzle rgb_swizzle; - -- if (alpha_swizzle == 0) { -- return lp_build_blend_factor_unswizzled(bld, alpha_factor, TRUE); -- } -- - rgb_factor_ = lp_build_blend_factor_unswizzled(bld, rgb_factor, FALSE); - - if (alpha_swizzle != UTIL_FORMAT_SWIZZLE_NONE) { diff --git a/src/gallium/drivers/llvmpipe/lp_bld_depth.c b/src/gallium/drivers/llvmpipe/lp_bld_depth.c -index 1cd36b8..29ef379 100644 +index df6a6c4..695ecec 100644 --- a/src/gallium/drivers/llvmpipe/lp_bld_depth.c +++ b/src/gallium/drivers/llvmpipe/lp_bld_depth.c @@ -349,8 +349,6 @@ get_z_shift_and_mask(const struct util_format_description *format_desc, { - const unsigned total_bits = format_desc->block.bits; + unsigned total_bits; unsigned z_swizzle; - unsigned chan; - unsigned padding_left, padding_right; - + assert(format_desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS); assert(format_desc->block.width == 1); -@@ -362,25 +360,14 @@ get_z_shift_and_mask(const struct util_format_description *format_desc, +@@ -365,25 +363,14 @@ get_z_shift_and_mask(const struct util_format_description *format_desc, return FALSE; *width = format_desc->channel[z_swizzle].size; @@ -1048,7 +1063,7 @@ index 1cd36b8..29ef379 100644 return TRUE; } -@@ -395,17 +382,14 @@ get_s_shift_and_mask(const struct util_format_description *format_desc, +@@ -398,7 +385,7 @@ get_s_shift_and_mask(const struct util_format_description *format_desc, unsigned *shift, unsigned *mask) { unsigned s_swizzle; @@ -1057,8 +1072,16 @@ index 1cd36b8..29ef379 100644 s_swizzle = format_desc->swizzle[1]; - if (s_swizzle == UTIL_FORMAT_SWIZZLE_NONE) - return FALSE; +@@ -407,16 +394,14 @@ get_s_shift_and_mask(const struct util_format_description *format_desc, + + /* just special case 64bit d/s format */ + if (format_desc->block.bits > 32) { ++ /* XXX big-endian? */ + assert(format_desc->format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT); + *shift = 0; + *mask = 0xff; + return TRUE; + } - *shift = 0; - for (chan = 0; chan < s_swizzle; chan++) @@ -1069,10 +1092,10 @@ index 1cd36b8..29ef379 100644 *mask = (1U << sz) - 1U; diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c -index 6921210..0691a40 100644 +index a20cc78..3ef7266 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c -@@ -987,12 +987,17 @@ convert_to_blend_type(struct gallivm_state *gallivm, +@@ -1007,12 +1007,17 @@ convert_to_blend_type(struct gallivm_state *gallivm, for (i = 0; i < num_srcs; ++i) { LLVMValueRef chans[4]; LLVMValueRef res = NULL; @@ -1091,7 +1114,7 @@ index 6921210..0691a40 100644 for (k = 0; k < src_fmt->channel[j].size; ++k) { mask |= 1 << k; -@@ -1018,11 +1023,9 @@ convert_to_blend_type(struct gallivm_state *gallivm, +@@ -1038,11 +1043,9 @@ convert_to_blend_type(struct gallivm_state *gallivm, /* Insert bits into correct position */ chans[j] = LLVMBuildShl(builder, chans[j], @@ -1104,7 +1127,7 @@ index 6921210..0691a40 100644 if (j == 0) { res = chans[j]; } else { -@@ -1136,12 +1139,17 @@ convert_from_blend_type(struct gallivm_state *gallivm, +@@ -1156,12 +1159,17 @@ convert_from_blend_type(struct gallivm_state *gallivm, for (i = 0; i < num_srcs; ++i) { LLVMValueRef chans[4]; LLVMValueRef res = NULL; @@ -1123,7 +1146,7 @@ index 6921210..0691a40 100644 assert(blend_type.width > src_fmt->channel[j].size); -@@ -1152,7 +1160,7 @@ convert_from_blend_type(struct gallivm_state *gallivm, +@@ -1172,7 +1180,7 @@ convert_from_blend_type(struct gallivm_state *gallivm, /* Extract bits */ chans[j] = LLVMBuildLShr(builder, dst[i], @@ -1132,6 +1155,29 @@ index 6921210..0691a40 100644 ""); chans[j] = LLVMBuildAnd(builder, +diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h +index 9a09cee..f367933 100644 +--- a/src/gallium/include/pipe/p_config.h ++++ b/src/gallium/include/pipe/p_config.h +@@ -110,6 +110,9 @@ + #endif + #endif + ++#if defined(__s390x__) ++#define PIPE_ARCH_S390X ++#endif + + /* + * Endian detection. +@@ -146,7 +149,7 @@ + + #if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64) + #define PIPE_ARCH_LITTLE_ENDIAN +-#elif defined(PIPE_ARCH_PPC) || defined(PIPE_ARCH_PPC_64) ++#elif defined(PIPE_ARCH_PPC) || defined(PIPE_ARCH_PPC_64) || defined(PIPE_ARCH_S390X) + #define PIPE_ARCH_BIG_ENDIAN + #endif + diff --git a/src/gallium/include/pipe/p_format.h b/src/gallium/include/pipe/p_format.h index 098b25b..1289983 100644 --- a/src/gallium/include/pipe/p_format.h @@ -1468,7 +1514,7 @@ index 1ab6732..d63372d 100644 }; diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c -index c9c6163..719acde 100644 +index 56f3a4a..ae9e28e 100644 --- a/src/mesa/state_tracker/st_format.c +++ b/src/mesa/state_tracker/st_format.c @@ -55,21 +55,21 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat) diff --git a/mesa.spec b/mesa.spec index 25ca8f6..eeb9ad2 100644 --- a/mesa.spec +++ b/mesa.spec @@ -48,13 +48,13 @@ %define _default_patch_fuzz 2 -%define gitdate 20130514 +%define gitdate 20130528 #% define snapshot Summary: Mesa graphics libraries Name: mesa Version: 9.2 -Release: 0.6.%{gitdate}%{?dist} +Release: 0.7.%{gitdate}%{?dist} License: MIT Group: System Environment/Libraries URL: http://www.mesa3d.org @@ -75,8 +75,6 @@ Patch9: mesa-8.0-llvmpipe-shmget.patch Patch12: mesa-8.0.1-fix-16bpp.patch Patch15: mesa-9.2-hardware-float.patch Patch16: mesa-9.2-no-useless-vdpau.patch -# http://lists.freedesktop.org/archives/mesa-dev/2013-May/039265.html -Patch17: 0001-st-mesa-handle-texture_from_pixmap-and-other-surface.patch Patch18: mesa-9.2-llvmpipe-on-big-endian.patch Patch19: mesa-9.2-no-gallium-osmesa.patch @@ -311,7 +309,6 @@ grep -q ^/ src/gallium/auxiliary/vl/vl_decoder.c && exit 1 %patch15 -p1 -b .hwfloat %patch16 -p1 -b .vdpau -%patch17 -p1 -b .tfp %patch18 -p1 -b .be %patch19 -p1 -b .osmesa @@ -613,6 +610,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Tue May 28 2013 Adam Jackson 9.2-0.7.20130528 +- Today's git snap + * Sun May 19 2013 Peter Robinson 9.2-0.6.20130514 - Update the name of the freedreno driver diff --git a/sanitize-tarball.sh b/sanitize-tarball.sh index ba472ab..54b2d0c 100755 --- a/sanitize-tarball.sh +++ b/sanitize-tarball.sh @@ -2,6 +2,11 @@ # # usage: sanitize-tarball.sh [tarball] +if [ "x$1" = "x" ]; then + echo "Usage: sanitize-tarball.sh [tarball]" + exit 1 +fi + if [ -e /usr/bin/pxz ]; then XZ=/usr/bin/pxz else