rebuild against backported llvm 3.4-5 for radeonsi GL 3.3 support.

This commit is contained in:
Dave Airlie 2014-03-19 06:17:01 +00:00
parent af7dc30499
commit f35b486601
2 changed files with 108 additions and 2 deletions

View File

@ -51,7 +51,7 @@
Summary: Mesa graphics libraries
Name: mesa
Version: 10.1
Release: 2.%{gitdate}%{?dist}
Release: 3.%{gitdate}%{?dist}
License: MIT
Group: System Environment/Libraries
URL: http://www.mesa3d.org
@ -77,6 +77,8 @@ Patch20: mesa-9.2-evergreen-big-endian.patch
# https://bugs.freedesktop.org/show_bug.cgi?id=73512
Patch99: 0001-opencl-use-versioned-.so-in-mesa.icd.patch
Patch100: radeonsi-llvm-version-hack.patch
BuildRequires: pkgconfig autoconf automake libtool
%if %{with_hardware}
BuildRequires: kernel-headers
@ -101,7 +103,7 @@ BuildRequires: gettext
%if 0%{?with_private_llvm}
BuildRequires: mesa-private-llvm-devel
%else
BuildRequires: llvm-devel >= 3.0
BuildRequires: llvm-devel >= 3.4-5
%if 0%{?with_opencl}
BuildRequires: clang-devel >= 3.0
%endif
@ -331,6 +333,8 @@ grep -q ^/ src/gallium/auxiliary/vl/vl_decoder.c && exit 1
%patch99 -p1 -b .icd
%endif
%patch100 -p1 -b .radeonsi
%if 0%{with_private_llvm}
sed -i 's/llvm-config/mesa-private-llvm-config-%{__isa_bits}/g' configure.ac
sed -i 's/`$LLVM_CONFIG --version`/&-mesa/' configure.ac
@ -631,6 +635,9 @@ rm -rf $RPM_BUILD_ROOT
%endif
%changelog
* Wed Mar 19 2014 Dave Airlie <airlied@redhat.com> 10.1-3.20140305
- rebuild against backported llvm 3.4-5 for radeonsi GL 3.3 support.
* Wed Mar 12 2014 Dave Airlie <airlied@redhat.com> 10.1-2.20140305
- disable r600 llvm compiler (upstream advice)

View File

@ -0,0 +1,99 @@
diff -up mesa-20140305/src/gallium/drivers/radeonsi/si_descriptors.c.radeonsi mesa-20140305/src/gallium/drivers/radeonsi/si_descriptors.c
--- mesa-20140305/src/gallium/drivers/radeonsi/si_descriptors.c.radeonsi 2014-03-18 04:37:30.009681609 +0000
+++ mesa-20140305/src/gallium/drivers/radeonsi/si_descriptors.c 2014-03-18 04:37:36.751681788 +0000
@@ -151,7 +151,7 @@ static void si_update_descriptors(struct
7 + /* copy */
(4 + desc->element_dw_size) * util_bitcount(desc->dirty_mask) + /* update */
4; /* pointer update */
-#if HAVE_LLVM >= 0x0305
+#if HAVE_LLVM >= 0x0304
if (desc->shader_userdata_reg >= R_00B130_SPI_SHADER_USER_DATA_VS_0 &&
desc->shader_userdata_reg < R_00B230_SPI_SHADER_USER_DATA_GS_0)
desc->atom.num_dw += 4; /* second pointer update */
@@ -176,7 +176,7 @@ static void si_emit_shader_pointer(struc
radeon_emit(cs, va);
radeon_emit(cs, va >> 32);
-#if HAVE_LLVM >= 0x0305
+#if HAVE_LLVM >= 0x0304
if (desc->shader_userdata_reg >= R_00B130_SPI_SHADER_USER_DATA_VS_0 &&
desc->shader_userdata_reg < R_00B230_SPI_SHADER_USER_DATA_GS_0) {
radeon_emit(cs, PKT3(PKT3_SET_SH_REG, 2, 0));
diff -up mesa-20140305/src/gallium/drivers/radeonsi/si_pipe.c.radeonsi mesa-20140305/src/gallium/drivers/radeonsi/si_pipe.c
--- mesa-20140305/src/gallium/drivers/radeonsi/si_pipe.c.radeonsi 2014-03-05 06:59:46.000000000 +0000
+++ mesa-20140305/src/gallium/drivers/radeonsi/si_pipe.c 2014-03-18 04:37:10.090681081 +0000
@@ -269,7 +269,7 @@ static int si_get_param(struct pipe_scre
return 256;
case PIPE_CAP_GLSL_FEATURE_LEVEL:
- return HAVE_LLVM >= 0x0305 ? 330 : 140;
+ return HAVE_LLVM >= 0x0304 ? 330 : 140;
case PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT:
return 1;
@@ -313,7 +313,7 @@ static int si_get_param(struct pipe_scre
case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS:
return 16384;
case PIPE_CAP_MAX_COMBINED_SAMPLERS:
- return HAVE_LLVM >= 0x0305 ? 48 : 32;
+ return HAVE_LLVM >= 0x0304 ? 48 : 32;
/* Render targets. */
case PIPE_CAP_MAX_RENDER_TARGETS:
@@ -346,7 +346,7 @@ static int si_get_shader_param(struct pi
case PIPE_SHADER_VERTEX:
break;
case PIPE_SHADER_GEOMETRY:
-#if HAVE_LLVM < 0x0305
+#if HAVE_LLVM < 0x0304
return 0;
#endif
break;
diff -up mesa-20140305/src/gallium/drivers/radeonsi/si_state.c.radeonsi mesa-20140305/src/gallium/drivers/radeonsi/si_state.c
--- mesa-20140305/src/gallium/drivers/radeonsi/si_state.c.radeonsi 2014-03-05 06:59:46.000000000 +0000
+++ mesa-20140305/src/gallium/drivers/radeonsi/si_state.c 2014-03-18 04:37:10.092681081 +0000
@@ -2307,7 +2307,7 @@ static void *si_create_fs_state(struct p
return si_create_shader_state(ctx, state, PIPE_SHADER_FRAGMENT);
}
-#if HAVE_LLVM >= 0x0305
+#if HAVE_LLVM >= 0x0304
static void *si_create_gs_state(struct pipe_context *ctx,
const struct pipe_shader_state *state)
@@ -2337,7 +2337,7 @@ static void si_bind_vs_shader(struct pip
sctx->vs_shader = sel;
}
-#if HAVE_LLVM >= 0x0305
+#if HAVE_LLVM >= 0x0304
static void si_bind_gs_shader(struct pipe_context *ctx, void *state)
{
@@ -2396,7 +2396,7 @@ static void si_delete_vs_shader(struct p
si_delete_shader_selector(ctx, sel);
}
-#if HAVE_LLVM >= 0x0305
+#if HAVE_LLVM >= 0x0304
static void si_delete_gs_shader(struct pipe_context *ctx, void *state)
{
@@ -2890,7 +2890,7 @@ static void si_bind_vs_sampler_states(st
si_set_sampler_states(sctx, pm4, count, states,
&sctx->samplers[PIPE_SHADER_VERTEX],
R_00B130_SPI_SHADER_USER_DATA_VS_0);
-#if HAVE_LLVM >= 0x0305
+#if HAVE_LLVM >= 0x0304
si_set_sampler_states(sctx, pm4, count, states,
&sctx->samplers[PIPE_SHADER_VERTEX],
R_00B330_SPI_SHADER_USER_DATA_ES_0);
@@ -3166,7 +3166,7 @@ void si_init_state_functions(struct si_c
sctx->b.b.bind_fs_state = si_bind_ps_shader;
sctx->b.b.delete_vs_state = si_delete_vs_shader;
sctx->b.b.delete_fs_state = si_delete_ps_shader;
-#if HAVE_LLVM >= 0x0305
+#if HAVE_LLVM >= 0x0304
sctx->b.b.create_gs_state = si_create_gs_state;
sctx->b.b.bind_gs_state = si_bind_gs_shader;
sctx->b.b.delete_gs_state = si_delete_gs_shader;