Merge mesa 10.0.3 into f20
commit '2f9ccd59140af45592bace9f563a2ff2e375668a' Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com> Conflicts: .gitignore 0001-swrast-gallium-classic-add-MESA_copy_sub_buffer-supp.patch mesa.spec sources
This commit is contained in:
commit
618ff6d6f0
2
.gitignore
vendored
2
.gitignore
vendored
@ -59,4 +59,6 @@ mesa-20100720.tar.bz2
|
|||||||
/mesa-20131113.tar.xz
|
/mesa-20131113.tar.xz
|
||||||
/mesa-20131114.tar.xz
|
/mesa-20131114.tar.xz
|
||||||
/mesa-20131128.tar.xz
|
/mesa-20131128.tar.xz
|
||||||
|
/mesa-20131206.tar.xz
|
||||||
/mesa-20131220.tar.xz
|
/mesa-20131220.tar.xz
|
||||||
|
/mesa-20140206.tar.xz
|
||||||
|
71
0001-opencl-use-versioned-.so-in-mesa.icd.patch
Normal file
71
0001-opencl-use-versioned-.so-in-mesa.icd.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
From 348caa4b9ab2b00871c8ea73aaf59311f9a853e8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
||||||
|
Date: Sun, 12 Jan 2014 02:09:16 +0400
|
||||||
|
Subject: [PATCH] opencl: use versioned .so in mesa.icd
|
||||||
|
|
||||||
|
We must have versioned library in mesa.icd, because ICD loader would
|
||||||
|
fail if the mesa-devel package wasn't installed.
|
||||||
|
|
||||||
|
Reported-by: Fabian Deutsch <fabian.deutsch@gmx.de>
|
||||||
|
Reference: https://bugs.freedesktop.org/show_bug.cgi?id=73512
|
||||||
|
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
||||||
|
---
|
||||||
|
configure.ac | 3 +++
|
||||||
|
src/gallium/targets/opencl/Makefile.am | 2 +-
|
||||||
|
src/gallium/targets/opencl/mesa.icd | 1 -
|
||||||
|
src/gallium/targets/opencl/mesa.icd.in | 1 +
|
||||||
|
4 files changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
delete mode 100644 src/gallium/targets/opencl/mesa.icd
|
||||||
|
create mode 100644 src/gallium/targets/opencl/mesa.icd.in
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 4da6c51..c195b1b 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -25,6 +25,8 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
|
||||||
|
dnl Set internal versions
|
||||||
|
OSMESA_VERSION=8
|
||||||
|
AC_SUBST([OSMESA_VERSION])
|
||||||
|
+OPENCL_VERSION=1
|
||||||
|
+AC_SUBST([OPENCL_VERSION])
|
||||||
|
|
||||||
|
dnl Versions for external dependencies
|
||||||
|
LIBDRM_REQUIRED=2.4.24
|
||||||
|
@@ -2023,6 +2025,7 @@ AC_CONFIG_FILES([Makefile
|
||||||
|
src/gallium/targets/egl-static/Makefile
|
||||||
|
src/gallium/targets/gbm/Makefile
|
||||||
|
src/gallium/targets/opencl/Makefile
|
||||||
|
+ src/gallium/targets/opencl/mesa.icd
|
||||||
|
src/gallium/targets/osmesa/Makefile
|
||||||
|
src/gallium/targets/osmesa/osmesa.pc
|
||||||
|
src/gallium/targets/pipe-loader/Makefile
|
||||||
|
diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am
|
||||||
|
index 653302c..3b257ca 100644
|
||||||
|
--- a/src/gallium/targets/opencl/Makefile.am
|
||||||
|
+++ b/src/gallium/targets/opencl/Makefile.am
|
||||||
|
@@ -4,7 +4,7 @@ lib_LTLIBRARIES = lib@OPENCL_LIBNAME@.la
|
||||||
|
|
||||||
|
lib@OPENCL_LIBNAME@_la_LDFLAGS = \
|
||||||
|
$(LLVM_LDFLAGS) \
|
||||||
|
- -version-number 1:0
|
||||||
|
+ -version-number @OPENCL_VERSION@:0
|
||||||
|
|
||||||
|
lib@OPENCL_LIBNAME@_la_LIBADD = \
|
||||||
|
$(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
|
||||||
|
diff --git a/src/gallium/targets/opencl/mesa.icd b/src/gallium/targets/opencl/mesa.icd
|
||||||
|
deleted file mode 100644
|
||||||
|
index 6a6a870..0000000
|
||||||
|
--- a/src/gallium/targets/opencl/mesa.icd
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1 +0,0 @@
|
||||||
|
-libMesaOpenCL.so
|
||||||
|
diff --git a/src/gallium/targets/opencl/mesa.icd.in b/src/gallium/targets/opencl/mesa.icd.in
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..1b77b4e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/gallium/targets/opencl/mesa.icd.in
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+lib@OPENCL_LIBNAME@.so.@OPENCL_VERSION@
|
||||||
|
--
|
||||||
|
1.8.4.2
|
||||||
|
|
@ -1,224 +0,0 @@
|
|||||||
From 430343da5988f53ee6eedffb55ab38fa7cf64fd5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <maraeo@gmail.com>
|
|
||||||
Date: Fri, 10 May 2013 03:42:23 +0200
|
|
||||||
Subject: [PATCH] st/mesa: handle texture_from_pixmap and other surface-based
|
|
||||||
textures correctly
|
|
||||||
|
|
||||||
There were 2 issues with it:
|
|
||||||
1) The texture format which should be used for texturing was only set
|
|
||||||
in gl_texture_image::TexFormat, which wasn't used for sampler views.
|
|
||||||
2) Textures are sometimes reallocated under some circumstances
|
|
||||||
in st_finalize_texture, which is unacceptable if the texture comes
|
|
||||||
from a window system.
|
|
||||||
|
|
||||||
The issues are resolved as follows:
|
|
||||||
1) If surface_based is true (texture_from_pixmap, etc.), store the format
|
|
||||||
in a new variable st_texture_object::surface_format.
|
|
||||||
2) Don't reallocate a surface-based texture in st_finalize_texture.
|
|
||||||
|
|
||||||
Also don't use st_ChooseTextureFormat is st_context_teximage, because
|
|
||||||
the format is dictated by the caller.
|
|
||||||
|
|
||||||
This fixes the glx-tfp piglit test.
|
|
||||||
---
|
|
||||||
src/mesa/state_tracker/st_atom_texture.c | 3 ++-
|
|
||||||
src/mesa/state_tracker/st_cb_eglimage.c | 1 +
|
|
||||||
src/mesa/state_tracker/st_cb_texture.c | 7 ++++++-
|
|
||||||
src/mesa/state_tracker/st_format.c | 35 --------------------------------
|
|
||||||
src/mesa/state_tracker/st_format.h | 4 ----
|
|
||||||
src/mesa/state_tracker/st_manager.c | 25 +++++------------------
|
|
||||||
src/mesa/state_tracker/st_texture.h | 10 +++++++--
|
|
||||||
7 files changed, 22 insertions(+), 63 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
|
|
||||||
index 8d1250f..d79e04c 100644
|
|
||||||
--- a/src/mesa/state_tracker/st_atom_texture.c
|
|
||||||
+++ b/src/mesa/state_tracker/st_atom_texture.c
|
|
||||||
@@ -239,7 +239,8 @@ update_single_texture(struct st_context *st,
|
|
||||||
st_mesa_format_to_pipe_format(stObj->base._BufferObjectFormat);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
- view_format = stObj->pt->format;
|
|
||||||
+ view_format =
|
|
||||||
+ stObj->surface_based ? stObj->surface_format : stObj->pt->format;
|
|
||||||
|
|
||||||
/* If sRGB decoding is off, use the linear format */
|
|
||||||
if (samp->sRGBDecode == GL_SKIP_DECODE_EXT) {
|
|
||||||
diff --git a/src/mesa/state_tracker/st_cb_eglimage.c b/src/mesa/state_tracker/st_cb_eglimage.c
|
|
||||||
index b162870..a396b9e 100644
|
|
||||||
--- a/src/mesa/state_tracker/st_cb_eglimage.c
|
|
||||||
+++ b/src/mesa/state_tracker/st_cb_eglimage.c
|
|
||||||
@@ -131,6 +131,7 @@ st_bind_surface(struct gl_context *ctx, GLenum target,
|
|
||||||
stObj->width0 = ps->width;
|
|
||||||
stObj->height0 = ps->height;
|
|
||||||
stObj->depth0 = 1;
|
|
||||||
+ stObj->surface_format = ps->format;
|
|
||||||
|
|
||||||
_mesa_dirty_texobj(ctx, texObj, GL_TRUE);
|
|
||||||
}
|
|
||||||
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
|
|
||||||
index 123ed2b..56dbe85 100644
|
|
||||||
--- a/src/mesa/state_tracker/st_cb_texture.c
|
|
||||||
+++ b/src/mesa/state_tracker/st_cb_texture.c
|
|
||||||
@@ -1540,6 +1540,11 @@ st_finalize_texture(struct gl_context *ctx,
|
|
||||||
pipe_sampler_view_release(st->pipe, &stObj->sampler_view);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* If this texture comes from a window system, there is nothing else to do. */
|
|
||||||
+ if (stObj->surface_based) {
|
|
||||||
+ return GL_TRUE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* Find gallium format for the Mesa texture */
|
|
||||||
firstImageFormat = st_mesa_format_to_pipe_format(firstImage->base.TexFormat);
|
|
||||||
|
|
||||||
@@ -1567,7 +1572,7 @@ st_finalize_texture(struct gl_context *ctx,
|
|
||||||
*/
|
|
||||||
if (stObj->pt) {
|
|
||||||
if (stObj->pt->target != gl_target_to_pipe(stObj->base.Target) ||
|
|
||||||
- !st_sampler_compat_formats(stObj->pt->format, firstImageFormat) ||
|
|
||||||
+ stObj->pt->format != firstImageFormat ||
|
|
||||||
stObj->pt->last_level < stObj->lastLevel ||
|
|
||||||
stObj->pt->width0 != ptWidth ||
|
|
||||||
stObj->pt->height0 != ptHeight ||
|
|
||||||
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
|
|
||||||
index c9c6163..56f3a4a 100644
|
|
||||||
--- a/src/mesa/state_tracker/st_format.c
|
|
||||||
+++ b/src/mesa/state_tracker/st_format.c
|
|
||||||
@@ -1800,41 +1800,6 @@ st_QuerySamplesForFormat(struct gl_context *ctx, GLenum target,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-GLboolean
|
|
||||||
-st_sampler_compat_formats(enum pipe_format format1, enum pipe_format format2)
|
|
||||||
-{
|
|
||||||
- if (format1 == format2)
|
|
||||||
- return GL_TRUE;
|
|
||||||
-
|
|
||||||
- if (format1 == PIPE_FORMAT_B8G8R8A8_UNORM &&
|
|
||||||
- format2 == PIPE_FORMAT_B8G8R8X8_UNORM)
|
|
||||||
- return GL_TRUE;
|
|
||||||
-
|
|
||||||
- if (format1 == PIPE_FORMAT_B8G8R8X8_UNORM &&
|
|
||||||
- format2 == PIPE_FORMAT_B8G8R8A8_UNORM)
|
|
||||||
- return GL_TRUE;
|
|
||||||
-
|
|
||||||
- if (format1 == PIPE_FORMAT_A8B8G8R8_UNORM &&
|
|
||||||
- format2 == PIPE_FORMAT_X8B8G8R8_UNORM)
|
|
||||||
- return GL_TRUE;
|
|
||||||
-
|
|
||||||
- if (format1 == PIPE_FORMAT_X8B8G8R8_UNORM &&
|
|
||||||
- format2 == PIPE_FORMAT_A8B8G8R8_UNORM)
|
|
||||||
- return GL_TRUE;
|
|
||||||
-
|
|
||||||
- if (format1 == PIPE_FORMAT_A8R8G8B8_UNORM &&
|
|
||||||
- format2 == PIPE_FORMAT_X8R8G8B8_UNORM)
|
|
||||||
- return GL_TRUE;
|
|
||||||
-
|
|
||||||
- if (format1 == PIPE_FORMAT_X8R8G8B8_UNORM &&
|
|
||||||
- format2 == PIPE_FORMAT_A8R8G8B8_UNORM)
|
|
||||||
- return GL_TRUE;
|
|
||||||
-
|
|
||||||
- return GL_FALSE;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
/**
|
|
||||||
* This is used for translating texture border color and the clear
|
|
||||||
* color. For example, the clear color is interpreted according to
|
|
||||||
diff --git a/src/mesa/state_tracker/st_format.h b/src/mesa/state_tracker/st_format.h
|
|
||||||
index 0a1c18d..6e97dcb 100644
|
|
||||||
--- a/src/mesa/state_tracker/st_format.h
|
|
||||||
+++ b/src/mesa/state_tracker/st_format.h
|
|
||||||
@@ -70,10 +70,6 @@ size_t
|
|
||||||
st_QuerySamplesForFormat(struct gl_context *ctx, GLenum target,
|
|
||||||
GLenum internalFormat, int samples[16]);
|
|
||||||
|
|
||||||
-/* can we use a sampler view to translate these formats
|
|
||||||
- only used to make TFP so far */
|
|
||||||
-extern GLboolean
|
|
||||||
-st_sampler_compat_formats(enum pipe_format format1, enum pipe_format format2);
|
|
||||||
|
|
||||||
|
|
||||||
extern void
|
|
||||||
diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
|
|
||||||
index 5561af6..9e537f3 100644
|
|
||||||
--- a/src/mesa/state_tracker/st_manager.c
|
|
||||||
+++ b/src/mesa/state_tracker/st_manager.c
|
|
||||||
@@ -467,7 +467,7 @@ st_context_flush(struct st_context_iface *stctxi, unsigned flags,
|
|
||||||
static boolean
|
|
||||||
st_context_teximage(struct st_context_iface *stctxi,
|
|
||||||
enum st_texture_type tex_type,
|
|
||||||
- int level, enum pipe_format internal_format,
|
|
||||||
+ int level, enum pipe_format pipe_format,
|
|
||||||
struct pipe_resource *tex, boolean mipmap)
|
|
||||||
{
|
|
||||||
struct st_context *st = (struct st_context *) stctxi;
|
|
||||||
@@ -511,29 +511,13 @@ st_context_teximage(struct st_context_iface *stctxi,
|
|
||||||
texImage = _mesa_get_tex_image(ctx, texObj, target, level);
|
|
||||||
stImage = st_texture_image(texImage);
|
|
||||||
if (tex) {
|
|
||||||
- gl_format texFormat;
|
|
||||||
-
|
|
||||||
- /*
|
|
||||||
- * XXX When internal_format and tex->format differ, st_finalize_texture
|
|
||||||
- * needs to allocate a new texture with internal_format and copy the
|
|
||||||
- * texture here into the new one. It will result in surface_copy being
|
|
||||||
- * called on surfaces whose formats differ.
|
|
||||||
- *
|
|
||||||
- * To avoid that, internal_format is (wrongly) ignored here. A sane fix
|
|
||||||
- * is to use a sampler view.
|
|
||||||
- */
|
|
||||||
- if (!st_sampler_compat_formats(tex->format, internal_format))
|
|
||||||
- internal_format = tex->format;
|
|
||||||
-
|
|
||||||
- if (util_format_get_component_bits(internal_format,
|
|
||||||
- UTIL_FORMAT_COLORSPACE_RGB, 3) > 0)
|
|
||||||
+ gl_format texFormat = st_pipe_format_to_mesa_format(pipe_format);
|
|
||||||
+
|
|
||||||
+ if (util_format_has_alpha(tex->format))
|
|
||||||
internalFormat = GL_RGBA;
|
|
||||||
else
|
|
||||||
internalFormat = GL_RGB;
|
|
||||||
|
|
||||||
- texFormat = st_ChooseTextureFormat(ctx, target, internalFormat,
|
|
||||||
- GL_BGRA, GL_UNSIGNED_BYTE);
|
|
||||||
-
|
|
||||||
_mesa_init_teximage_fields(ctx, texImage,
|
|
||||||
tex->width0, tex->height0, 1, 0,
|
|
||||||
internalFormat, texFormat);
|
|
||||||
@@ -562,6 +546,7 @@ st_context_teximage(struct st_context_iface *stctxi,
|
|
||||||
stObj->width0 = width;
|
|
||||||
stObj->height0 = height;
|
|
||||||
stObj->depth0 = depth;
|
|
||||||
+ stObj->surface_format = pipe_format;
|
|
||||||
|
|
||||||
_mesa_dirty_texobj(ctx, texObj, GL_TRUE);
|
|
||||||
_mesa_unlock_texture(ctx, texObj);
|
|
||||||
diff --git a/src/mesa/state_tracker/st_texture.h b/src/mesa/state_tracker/st_texture.h
|
|
||||||
index da899c9..c15aeae 100644
|
|
||||||
--- a/src/mesa/state_tracker/st_texture.h
|
|
||||||
+++ b/src/mesa/state_tracker/st_texture.h
|
|
||||||
@@ -87,10 +87,16 @@ struct st_texture_object
|
|
||||||
*/
|
|
||||||
struct pipe_sampler_view *sampler_view;
|
|
||||||
|
|
||||||
- /* True if there is/was a surface bound to this texture object. It helps
|
|
||||||
- * track whether the texture object is surface based or not.
|
|
||||||
+ /* True if this texture comes from the window system. Such a texture
|
|
||||||
+ * cannot be reallocated and the format can only be changed with a sampler
|
|
||||||
+ * view or a surface.
|
|
||||||
*/
|
|
||||||
GLboolean surface_based;
|
|
||||||
+
|
|
||||||
+ /* If surface_based is true, this format should be used for all sampler
|
|
||||||
+ * views and surfaces instead of pt->format.
|
|
||||||
+ */
|
|
||||||
+ enum pipe_format surface_format;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.2.1
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
From 31d3205208bced090f790e530d861c75615d14d0 Mon Sep 17 00:00:00 2001
|
From ba00f2f6f54cbc5ffdb0f0b94bcd672d147cdc36 Mon Sep 17 00:00:00 2001
|
||||||
From: Dave Airlie <airlied@gmail.com>
|
From: Dave Airlie <airlied@gmail.com>
|
||||||
Date: Thu, 28 Nov 2013 11:08:11 +1000
|
Date: Thu, 28 Nov 2013 11:08:11 +1000
|
||||||
Subject: [PATCH] swrast* (gallium, classic): add MESA_copy_sub_buffer support
|
Subject: [PATCH] swrast* (gallium, classic): add MESA_copy_sub_buffer support
|
||||||
(v3-backport)
|
(v3)
|
||||||
|
|
||||||
This patches add MESA_copy_sub_buffer support to the dri sw loader and
|
This patches add MESA_copy_sub_buffer support to the dri sw loader and
|
||||||
then to gallium state tracker, llvmpipe, softpipe and other bits.
|
then to gallium state tracker, llvmpipe, softpipe and other bits.
|
||||||
@ -20,16 +20,10 @@ add to p_screen doc comments.
|
|||||||
|
|
||||||
v3: finish off winsys interfaces, add swrast classic support as well.
|
v3: finish off winsys interfaces, add swrast classic support as well.
|
||||||
|
|
||||||
backport to 9.2: old dri bits.
|
|
||||||
|
|
||||||
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
|
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
|
||||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||||
|
|
||||||
Conflicts:
|
swrast: add support for copy_sub_buffer
|
||||||
src/gallium/state_trackers/dri/sw/drisw.c
|
|
||||||
src/gallium/targets/haiku-softpipe/GalliumContext.cpp
|
|
||||||
src/mesa/drivers/dri/common/dri_util.c
|
|
||||||
src/mesa/drivers/dri/swrast/swrast.c
|
|
||||||
---
|
---
|
||||||
include/GL/internal/dri_interface.h | 9 +++-
|
include/GL/internal/dri_interface.h | 9 +++-
|
||||||
src/gallium/auxiliary/vl/vl_winsys_dri.c | 2 +-
|
src/gallium/auxiliary/vl/vl_winsys_dri.c | 2 +-
|
||||||
@ -50,6 +44,7 @@ Conflicts:
|
|||||||
src/gallium/state_trackers/glx/xlib/xm_st.c | 2 +-
|
src/gallium/state_trackers/glx/xlib/xm_st.c | 2 +-
|
||||||
src/gallium/state_trackers/vdpau/presentation.c | 2 +-
|
src/gallium/state_trackers/vdpau/presentation.c | 2 +-
|
||||||
src/gallium/state_trackers/xvmc/surface.c | 2 +-
|
src/gallium/state_trackers/xvmc/surface.c | 2 +-
|
||||||
|
.../targets/haiku-softpipe/GalliumContext.cpp | 4 +-
|
||||||
src/gallium/tests/graw/clear.c | 2 +-
|
src/gallium/tests/graw/clear.c | 2 +-
|
||||||
src/gallium/tests/graw/fs-test.c | 2 +-
|
src/gallium/tests/graw/fs-test.c | 2 +-
|
||||||
src/gallium/tests/graw/graw_util.h | 2 +-
|
src/gallium/tests/graw/graw_util.h | 2 +-
|
||||||
@ -68,16 +63,16 @@ Conflicts:
|
|||||||
src/gallium/winsys/sw/wayland/wayland_sw_winsys.c | 3 +-
|
src/gallium/winsys/sw/wayland/wayland_sw_winsys.c | 3 +-
|
||||||
src/gallium/winsys/sw/xlib/xlib_sw_winsys.c | 3 +-
|
src/gallium/winsys/sw/xlib/xlib_sw_winsys.c | 3 +-
|
||||||
src/glx/drisw_glx.c | 43 ++++++++++++++--
|
src/glx/drisw_glx.c | 43 ++++++++++++++--
|
||||||
|
src/mesa/drivers/dri/common/dri_util.c | 15 ++++++
|
||||||
src/mesa/drivers/dri/common/dri_util.h | 5 +-
|
src/mesa/drivers/dri/common/dri_util.h | 5 +-
|
||||||
src/mesa/drivers/dri/common/drisw_util.c | 15 ++++++
|
|
||||||
src/mesa/drivers/dri/swrast/swrast.c | 35 +++++++++++++
|
src/mesa/drivers/dri/swrast/swrast.c | 35 +++++++++++++
|
||||||
40 files changed, 225 insertions(+), 57 deletions(-)
|
41 files changed, 227 insertions(+), 59 deletions(-)
|
||||||
|
|
||||||
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
|
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
|
||||||
index 5c99d55..09c1406 100644
|
index b012570..81f7e60 100644
|
||||||
--- a/include/GL/internal/dri_interface.h
|
--- a/include/GL/internal/dri_interface.h
|
||||||
+++ b/include/GL/internal/dri_interface.h
|
+++ b/include/GL/internal/dri_interface.h
|
||||||
@@ -439,7 +439,7 @@ struct __DRIdamageExtensionRec {
|
@@ -437,7 +437,7 @@ struct __DRIdamageExtensionRec {
|
||||||
* SWRast Loader extension.
|
* SWRast Loader extension.
|
||||||
*/
|
*/
|
||||||
#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"
|
#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"
|
||||||
@ -86,7 +81,7 @@ index 5c99d55..09c1406 100644
|
|||||||
struct __DRIswrastLoaderExtensionRec {
|
struct __DRIswrastLoaderExtensionRec {
|
||||||
__DRIextension base;
|
__DRIextension base;
|
||||||
|
|
||||||
@@ -463,6 +463,13 @@ struct __DRIswrastLoaderExtensionRec {
|
@@ -461,6 +461,13 @@ struct __DRIswrastLoaderExtensionRec {
|
||||||
void (*getImage)(__DRIdrawable *readable,
|
void (*getImage)(__DRIdrawable *readable,
|
||||||
int x, int y, int width, int height,
|
int x, int y, int width, int height,
|
||||||
char *data, void *loaderPrivate);
|
char *data, void *loaderPrivate);
|
||||||
@ -137,10 +132,10 @@ index 16a5ff1..5a91077 100644
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c
|
diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c
|
||||||
index 556dda8..0ff2640 100644
|
index abb9796..8b29fc2 100644
|
||||||
--- a/src/gallium/drivers/i915/i915_screen.c
|
--- a/src/gallium/drivers/i915/i915_screen.c
|
||||||
+++ b/src/gallium/drivers/i915/i915_screen.c
|
+++ b/src/gallium/drivers/i915/i915_screen.c
|
||||||
@@ -419,7 +419,8 @@ static void
|
@@ -423,7 +423,8 @@ static void
|
||||||
i915_flush_frontbuffer(struct pipe_screen *screen,
|
i915_flush_frontbuffer(struct pipe_screen *screen,
|
||||||
struct pipe_resource *resource,
|
struct pipe_resource *resource,
|
||||||
unsigned level, unsigned layer,
|
unsigned level, unsigned layer,
|
||||||
@ -150,7 +145,7 @@ index 556dda8..0ff2640 100644
|
|||||||
{
|
{
|
||||||
/* XXX: Dummy right now. */
|
/* XXX: Dummy right now. */
|
||||||
(void)screen;
|
(void)screen;
|
||||||
@@ -427,6 +428,7 @@ i915_flush_frontbuffer(struct pipe_screen *screen,
|
@@ -431,6 +432,7 @@ i915_flush_frontbuffer(struct pipe_screen *screen,
|
||||||
(void)level;
|
(void)level;
|
||||||
(void)layer;
|
(void)layer;
|
||||||
(void)winsys_drawable_handle;
|
(void)winsys_drawable_handle;
|
||||||
@ -182,10 +177,10 @@ index 26df7f6..28cfa1f6 100644
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
|
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
|
||||||
index b3cd77f..f488d6d 100644
|
index 742e7f2..c8eb3ba 100644
|
||||||
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
|
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
|
||||||
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
|
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
|
||||||
@@ -403,7 +403,8 @@ static void
|
@@ -411,7 +411,8 @@ static void
|
||||||
llvmpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
llvmpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
||||||
struct pipe_resource *resource,
|
struct pipe_resource *resource,
|
||||||
unsigned level, unsigned layer,
|
unsigned level, unsigned layer,
|
||||||
@ -195,7 +190,7 @@ index b3cd77f..f488d6d 100644
|
|||||||
{
|
{
|
||||||
struct llvmpipe_screen *screen = llvmpipe_screen(_screen);
|
struct llvmpipe_screen *screen = llvmpipe_screen(_screen);
|
||||||
struct sw_winsys *winsys = screen->winsys;
|
struct sw_winsys *winsys = screen->winsys;
|
||||||
@@ -411,10 +412,9 @@ llvmpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
@@ -419,10 +420,9 @@ llvmpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
||||||
|
|
||||||
assert(texture->dt);
|
assert(texture->dt);
|
||||||
if (texture->dt)
|
if (texture->dt)
|
||||||
@ -208,10 +203,10 @@ index b3cd77f..f488d6d 100644
|
|||||||
llvmpipe_destroy_screen( struct pipe_screen *_screen )
|
llvmpipe_destroy_screen( struct pipe_screen *_screen )
|
||||||
{
|
{
|
||||||
diff --git a/src/gallium/drivers/noop/noop_pipe.c b/src/gallium/drivers/noop/noop_pipe.c
|
diff --git a/src/gallium/drivers/noop/noop_pipe.c b/src/gallium/drivers/noop/noop_pipe.c
|
||||||
index ac837b1..849a4d1 100644
|
index 889e95e..27197a5 100644
|
||||||
--- a/src/gallium/drivers/noop/noop_pipe.c
|
--- a/src/gallium/drivers/noop/noop_pipe.c
|
||||||
+++ b/src/gallium/drivers/noop/noop_pipe.c
|
+++ b/src/gallium/drivers/noop/noop_pipe.c
|
||||||
@@ -288,7 +288,7 @@ static struct pipe_context *noop_create_context(struct pipe_screen *screen, void
|
@@ -296,7 +296,7 @@ static struct pipe_context *noop_create_context(struct pipe_screen *screen, void
|
||||||
static void noop_flush_frontbuffer(struct pipe_screen *_screen,
|
static void noop_flush_frontbuffer(struct pipe_screen *_screen,
|
||||||
struct pipe_resource *resource,
|
struct pipe_resource *resource,
|
||||||
unsigned level, unsigned layer,
|
unsigned level, unsigned layer,
|
||||||
@ -243,10 +238,10 @@ index 2471fdb..8576e2f 100644
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c
|
diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c
|
||||||
index f6acdc8..3e3f366 100644
|
index 0c8c94d..69cb09f 100644
|
||||||
--- a/src/gallium/drivers/softpipe/sp_screen.c
|
--- a/src/gallium/drivers/softpipe/sp_screen.c
|
||||||
+++ b/src/gallium/drivers/softpipe/sp_screen.c
|
+++ b/src/gallium/drivers/softpipe/sp_screen.c
|
||||||
@@ -364,7 +364,8 @@ static void
|
@@ -369,7 +369,8 @@ static void
|
||||||
softpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
softpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
||||||
struct pipe_resource *resource,
|
struct pipe_resource *resource,
|
||||||
unsigned level, unsigned layer,
|
unsigned level, unsigned layer,
|
||||||
@ -256,7 +251,7 @@ index f6acdc8..3e3f366 100644
|
|||||||
{
|
{
|
||||||
struct softpipe_screen *screen = softpipe_screen(_screen);
|
struct softpipe_screen *screen = softpipe_screen(_screen);
|
||||||
struct sw_winsys *winsys = screen->winsys;
|
struct sw_winsys *winsys = screen->winsys;
|
||||||
@@ -372,7 +373,7 @@ softpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
@@ -377,7 +378,7 @@ softpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
||||||
|
|
||||||
assert(texture->dt);
|
assert(texture->dt);
|
||||||
if (texture->dt)
|
if (texture->dt)
|
||||||
@ -266,10 +261,10 @@ index f6acdc8..3e3f366 100644
|
|||||||
|
|
||||||
static uint64_t
|
static uint64_t
|
||||||
diff --git a/src/gallium/drivers/trace/tr_screen.c b/src/gallium/drivers/trace/tr_screen.c
|
diff --git a/src/gallium/drivers/trace/tr_screen.c b/src/gallium/drivers/trace/tr_screen.c
|
||||||
index 5281ba8..b71ebbe 100644
|
index c6745af..debd031 100644
|
||||||
--- a/src/gallium/drivers/trace/tr_screen.c
|
--- a/src/gallium/drivers/trace/tr_screen.c
|
||||||
+++ b/src/gallium/drivers/trace/tr_screen.c
|
+++ b/src/gallium/drivers/trace/tr_screen.c
|
||||||
@@ -210,7 +210,8 @@ static void
|
@@ -209,7 +209,8 @@ static void
|
||||||
trace_screen_flush_frontbuffer(struct pipe_screen *_screen,
|
trace_screen_flush_frontbuffer(struct pipe_screen *_screen,
|
||||||
struct pipe_resource *_resource,
|
struct pipe_resource *_resource,
|
||||||
unsigned level, unsigned layer,
|
unsigned level, unsigned layer,
|
||||||
@ -279,7 +274,7 @@ index 5281ba8..b71ebbe 100644
|
|||||||
{
|
{
|
||||||
struct trace_screen *tr_scr = trace_screen(_screen);
|
struct trace_screen *tr_scr = trace_screen(_screen);
|
||||||
struct trace_resource *tr_res = trace_resource(_resource);
|
struct trace_resource *tr_res = trace_resource(_resource);
|
||||||
@@ -227,7 +228,7 @@ trace_screen_flush_frontbuffer(struct pipe_screen *_screen,
|
@@ -226,7 +227,7 @@ trace_screen_flush_frontbuffer(struct pipe_screen *_screen,
|
||||||
trace_dump_arg(ptr, context_private);
|
trace_dump_arg(ptr, context_private);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -289,7 +284,7 @@ index 5281ba8..b71ebbe 100644
|
|||||||
trace_dump_call_end();
|
trace_dump_call_end();
|
||||||
}
|
}
|
||||||
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h
|
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h
|
||||||
index c487e8e..c0f4fd1 100644
|
index 3ed7f26..bdd727d 100644
|
||||||
--- a/src/gallium/include/pipe/p_screen.h
|
--- a/src/gallium/include/pipe/p_screen.h
|
||||||
+++ b/src/gallium/include/pipe/p_screen.h
|
+++ b/src/gallium/include/pipe/p_screen.h
|
||||||
@@ -56,6 +56,7 @@ struct pipe_fence_handle;
|
@@ -56,6 +56,7 @@ struct pipe_fence_handle;
|
||||||
@ -300,7 +295,7 @@ index c487e8e..c0f4fd1 100644
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -179,13 +180,13 @@ struct pipe_screen {
|
@@ -181,13 +182,13 @@ struct pipe_screen {
|
||||||
* displayed, eg copy fake frontbuffer.
|
* displayed, eg copy fake frontbuffer.
|
||||||
* \param winsys_drawable_handle an opaque handle that the calling context
|
* \param winsys_drawable_handle an opaque handle that the calling context
|
||||||
* gets out-of-band
|
* gets out-of-band
|
||||||
@ -354,7 +349,7 @@ index 0b11fe3..d08ddd6 100644
|
|||||||
void
|
void
|
||||||
(*displaytarget_destroy)( struct sw_winsys *ws,
|
(*displaytarget_destroy)( struct sw_winsys *ws,
|
||||||
diff --git a/src/gallium/state_trackers/dri/sw/drisw.c b/src/gallium/state_trackers/dri/sw/drisw.c
|
diff --git a/src/gallium/state_trackers/dri/sw/drisw.c b/src/gallium/state_trackers/dri/sw/drisw.c
|
||||||
index 121a205..aa0d3e0 100644
|
index 9f00a53..64a64af 100644
|
||||||
--- a/src/gallium/state_trackers/dri/sw/drisw.c
|
--- a/src/gallium/state_trackers/dri/sw/drisw.c
|
||||||
+++ b/src/gallium/state_trackers/dri/sw/drisw.c
|
+++ b/src/gallium/state_trackers/dri/sw/drisw.c
|
||||||
@@ -37,6 +37,7 @@
|
@@ -37,6 +37,7 @@
|
||||||
@ -475,12 +470,12 @@ index 121a205..aa0d3e0 100644
|
|||||||
PUBLIC const __DRIextension *__driDriverExtensions[] = {
|
PUBLIC const __DRIextension *__driDriverExtensions[] = {
|
||||||
&driCoreExtension.base,
|
&driCoreExtension.base,
|
||||||
&driSWRastExtension.base,
|
&driSWRastExtension.base,
|
||||||
+ &driCopySubBufferExtension.base,
|
+ &driCopySubBufferExtension,
|
||||||
|
&gallium_config_options.base,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/src/gallium/state_trackers/egl/common/native_helper.c b/src/gallium/state_trackers/egl/common/native_helper.c
|
diff --git a/src/gallium/state_trackers/egl/common/native_helper.c b/src/gallium/state_trackers/egl/common/native_helper.c
|
||||||
index b578a8a..5c2be19 100644
|
index d1e1acd..4a77a50 100644
|
||||||
--- a/src/gallium/state_trackers/egl/common/native_helper.c
|
--- a/src/gallium/state_trackers/egl/common/native_helper.c
|
||||||
+++ b/src/gallium/state_trackers/egl/common/native_helper.c
|
+++ b/src/gallium/state_trackers/egl/common/native_helper.c
|
||||||
@@ -244,7 +244,7 @@ resource_surface_present(struct resource_surface *rsurf,
|
@@ -244,7 +244,7 @@ resource_surface_present(struct resource_surface *rsurf,
|
||||||
@ -519,7 +514,7 @@ index fb69998..7f73a3a 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/gallium/state_trackers/vdpau/presentation.c b/src/gallium/state_trackers/vdpau/presentation.c
|
diff --git a/src/gallium/state_trackers/vdpau/presentation.c b/src/gallium/state_trackers/vdpau/presentation.c
|
||||||
index c9f8ea7..e68e25f 100644
|
index 81e0328..b574ddd 100644
|
||||||
--- a/src/gallium/state_trackers/vdpau/presentation.c
|
--- a/src/gallium/state_trackers/vdpau/presentation.c
|
||||||
+++ b/src/gallium/state_trackers/vdpau/presentation.c
|
+++ b/src/gallium/state_trackers/vdpau/presentation.c
|
||||||
@@ -269,7 +269,7 @@ vlVdpPresentationQueueDisplay(VdpPresentationQueue presentation_queue,
|
@@ -269,7 +269,7 @@ vlVdpPresentationQueueDisplay(VdpPresentationQueue presentation_queue,
|
||||||
@ -532,10 +527,10 @@ index c9f8ea7..e68e25f 100644
|
|||||||
|
|
||||||
pipe->screen->fence_reference(pipe->screen, &surf->fence, NULL);
|
pipe->screen->fence_reference(pipe->screen, &surf->fence, NULL);
|
||||||
diff --git a/src/gallium/state_trackers/xvmc/surface.c b/src/gallium/state_trackers/xvmc/surface.c
|
diff --git a/src/gallium/state_trackers/xvmc/surface.c b/src/gallium/state_trackers/xvmc/surface.c
|
||||||
index 6a895aa..ea778a3 100644
|
index 13f337c..f6876be 100644
|
||||||
--- a/src/gallium/state_trackers/xvmc/surface.c
|
--- a/src/gallium/state_trackers/xvmc/surface.c
|
||||||
+++ b/src/gallium/state_trackers/xvmc/surface.c
|
+++ b/src/gallium/state_trackers/xvmc/surface.c
|
||||||
@@ -441,7 +441,7 @@ Status XvMCPutSurface(Display *dpy, XvMCSurface *surface, Drawable drawable,
|
@@ -447,7 +447,7 @@ Status XvMCPutSurface(Display *dpy, XvMCSurface *surface, Drawable drawable,
|
||||||
pipe->screen->flush_frontbuffer
|
pipe->screen->flush_frontbuffer
|
||||||
(
|
(
|
||||||
pipe->screen, tex, 0, 0,
|
pipe->screen, tex, 0, 0,
|
||||||
@ -544,6 +539,27 @@ index 6a895aa..ea778a3 100644
|
|||||||
);
|
);
|
||||||
|
|
||||||
if(dump_window == -1) {
|
if(dump_window == -1) {
|
||||||
|
diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
|
||||||
|
index b750f65..1078cb7 100644
|
||||||
|
--- a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
|
||||||
|
+++ b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
|
||||||
|
@@ -504,14 +504,14 @@ GalliumContext::SwapBuffers(context_id contextID)
|
||||||
|
// We pass our destination bitmap to flush_fronbuffer which passes it
|
||||||
|
// to the private winsys display call.
|
||||||
|
fScreen->flush_frontbuffer(fScreen, surface->texture, 0, 0,
|
||||||
|
- context->bitmap);
|
||||||
|
+ context->bitmap, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
// TODO... should we flush the z stencil buffer?
|
||||||
|
pipe_surface* zSurface = stContext->state.framebuffer.zsbuf;
|
||||||
|
fScreen->flush_frontbuffer(fScreen, zSurface->texture, 0, 0,
|
||||||
|
- context->bitmap);
|
||||||
|
+ context->bitmap, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
diff --git a/src/gallium/tests/graw/clear.c b/src/gallium/tests/graw/clear.c
|
diff --git a/src/gallium/tests/graw/clear.c b/src/gallium/tests/graw/clear.c
|
||||||
index 77c59db..f38da47 100644
|
index 77c59db..f38da47 100644
|
||||||
--- a/src/gallium/tests/graw/clear.c
|
--- a/src/gallium/tests/graw/clear.c
|
||||||
@ -558,7 +574,7 @@ index 77c59db..f38da47 100644
|
|||||||
|
|
||||||
static void init( void )
|
static void init( void )
|
||||||
diff --git a/src/gallium/tests/graw/fs-test.c b/src/gallium/tests/graw/fs-test.c
|
diff --git a/src/gallium/tests/graw/fs-test.c b/src/gallium/tests/graw/fs-test.c
|
||||||
index 38a2c4b..a01c014 100644
|
index 4d38e08..0560e31 100644
|
||||||
--- a/src/gallium/tests/graw/fs-test.c
|
--- a/src/gallium/tests/graw/fs-test.c
|
||||||
+++ b/src/gallium/tests/graw/fs-test.c
|
+++ b/src/gallium/tests/graw/fs-test.c
|
||||||
@@ -240,7 +240,7 @@ static void draw( void )
|
@@ -240,7 +240,7 @@ static void draw( void )
|
||||||
@ -584,7 +600,7 @@ index 8557285..1856f0d 100644
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/gallium/tests/graw/gs-test.c b/src/gallium/tests/graw/gs-test.c
|
diff --git a/src/gallium/tests/graw/gs-test.c b/src/gallium/tests/graw/gs-test.c
|
||||||
index e4e4f61..1745c84 100644
|
index 3ada18a..879bf3e 100644
|
||||||
--- a/src/gallium/tests/graw/gs-test.c
|
--- a/src/gallium/tests/graw/gs-test.c
|
||||||
+++ b/src/gallium/tests/graw/gs-test.c
|
+++ b/src/gallium/tests/graw/gs-test.c
|
||||||
@@ -347,7 +347,7 @@ static void draw( void )
|
@@ -347,7 +347,7 @@ static void draw( void )
|
||||||
@ -597,7 +613,7 @@ index e4e4f61..1745c84 100644
|
|||||||
|
|
||||||
#define SIZE 16
|
#define SIZE 16
|
||||||
diff --git a/src/gallium/tests/graw/quad-sample.c b/src/gallium/tests/graw/quad-sample.c
|
diff --git a/src/gallium/tests/graw/quad-sample.c b/src/gallium/tests/graw/quad-sample.c
|
||||||
index 969ffa7..9960c30 100644
|
index b4a29e1..2e248a8 100644
|
||||||
--- a/src/gallium/tests/graw/quad-sample.c
|
--- a/src/gallium/tests/graw/quad-sample.c
|
||||||
+++ b/src/gallium/tests/graw/quad-sample.c
|
+++ b/src/gallium/tests/graw/quad-sample.c
|
||||||
@@ -156,7 +156,7 @@ static void draw( void )
|
@@ -156,7 +156,7 @@ static void draw( void )
|
||||||
@ -649,7 +665,7 @@ index f84463d..55bc3a5 100644
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/gallium/tests/graw/vs-test.c b/src/gallium/tests/graw/vs-test.c
|
diff --git a/src/gallium/tests/graw/vs-test.c b/src/gallium/tests/graw/vs-test.c
|
||||||
index 5a7d0a0..ce1941d 100644
|
index f7d4d73..0e9fc53 100644
|
||||||
--- a/src/gallium/tests/graw/vs-test.c
|
--- a/src/gallium/tests/graw/vs-test.c
|
||||||
+++ b/src/gallium/tests/graw/vs-test.c
|
+++ b/src/gallium/tests/graw/vs-test.c
|
||||||
@@ -234,7 +234,7 @@ static void draw( void )
|
@@ -234,7 +234,7 @@ static void draw( void )
|
||||||
@ -746,10 +762,10 @@ index 2e12f6e..aae3ec5 100644
|
|||||||
/* nasty:
|
/* nasty:
|
||||||
*/
|
*/
|
||||||
diff --git a/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c b/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c
|
diff --git a/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c b/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c
|
||||||
index 1d51dd6..f09272a 100644
|
index b09584c..27eca2b 100644
|
||||||
--- a/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c
|
--- a/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c
|
||||||
+++ b/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c
|
+++ b/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c
|
||||||
@@ -147,7 +147,8 @@ hgl_winsys_displaytarget_unmap(struct sw_winsys* winsys,
|
@@ -160,7 +160,8 @@ hgl_winsys_displaytarget_unmap(struct sw_winsys* winsys,
|
||||||
|
|
||||||
static void
|
static void
|
||||||
hgl_winsys_displaytarget_display(struct sw_winsys* winsys,
|
hgl_winsys_displaytarget_display(struct sw_winsys* winsys,
|
||||||
@ -802,7 +818,7 @@ index 6e71530..99da2ae 100644
|
|||||||
struct xlib_drawable *xlib_drawable = (struct xlib_drawable *)context_private;
|
struct xlib_drawable *xlib_drawable = (struct xlib_drawable *)context_private;
|
||||||
xlib_sw_display(xlib_drawable, dt);
|
xlib_sw_display(xlib_drawable, dt);
|
||||||
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
|
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
|
||||||
index 393be20..f903b2d 100644
|
index cb1d650..13a4b96 100644
|
||||||
--- a/src/glx/drisw_glx.c
|
--- a/src/glx/drisw_glx.c
|
||||||
+++ b/src/glx/drisw_glx.c
|
+++ b/src/glx/drisw_glx.c
|
||||||
@@ -49,6 +49,7 @@ struct drisw_screen
|
@@ -49,6 +49,7 @@ struct drisw_screen
|
||||||
@ -892,7 +908,7 @@ index 393be20..f903b2d 100644
|
|||||||
/* FIXME: Figure out what other extensions can be ported here from dri2. */
|
/* FIXME: Figure out what other extensions can be ported here from dri2. */
|
||||||
for (i = 0; extensions[i]; i++) {
|
for (i = 0; extensions[i]; i++) {
|
||||||
if ((strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0)) {
|
if ((strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0)) {
|
||||||
@@ -675,6 +703,8 @@ driswCreateScreen(int screen, struct glx_display *priv)
|
@@ -673,6 +701,8 @@ driswCreateScreen(int screen, struct glx_display *priv)
|
||||||
psc->core = (__DRIcoreExtension *) extensions[i];
|
psc->core = (__DRIcoreExtension *) extensions[i];
|
||||||
if (strcmp(extensions[i]->name, __DRI_SWRAST) == 0)
|
if (strcmp(extensions[i]->name, __DRI_SWRAST) == 0)
|
||||||
psc->swrast = (__DRIswrastExtension *) extensions[i];
|
psc->swrast = (__DRIswrastExtension *) extensions[i];
|
||||||
@ -901,7 +917,7 @@ index 393be20..f903b2d 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (psc->core == NULL || psc->swrast == NULL) {
|
if (psc->core == NULL || psc->swrast == NULL) {
|
||||||
@@ -713,6 +743,9 @@ driswCreateScreen(int screen, struct glx_display *priv)
|
@@ -718,6 +748,9 @@ driswCreateScreen(int screen, struct glx_display *priv)
|
||||||
psp->createDrawable = driswCreateDrawable;
|
psp->createDrawable = driswCreateDrawable;
|
||||||
psp->swapBuffers = driswSwapBuffers;
|
psp->swapBuffers = driswSwapBuffers;
|
||||||
|
|
||||||
@ -911,11 +927,34 @@ index 393be20..f903b2d 100644
|
|||||||
return &psc->base;
|
return &psc->base;
|
||||||
|
|
||||||
handle_error:
|
handle_error:
|
||||||
|
diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
|
||||||
|
index 0bce77e..fd2eca7 100644
|
||||||
|
--- a/src/mesa/drivers/dri/common/dri_util.c
|
||||||
|
+++ b/src/mesa/drivers/dri/common/dri_util.c
|
||||||
|
@@ -873,3 +873,18 @@ const __DRIimageDriverExtension driImageDriverExtension = {
|
||||||
|
.getAPIMask = driGetAPIMask,
|
||||||
|
.createContextAttribs = driCreateContextAttribs,
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+/* swrast copy sub buffer entrypoint. */
|
||||||
|
+static void driCopySubBuffer(__DRIdrawable *pdp, int x, int y,
|
||||||
|
+ int w, int h)
|
||||||
|
+{
|
||||||
|
+ assert(pdp->driScreenPriv->swrast_loader);
|
||||||
|
+
|
||||||
|
+ pdp->driScreenPriv->driver->CopySubBuffer(pdp, x, y, w, h);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* for swrast only */
|
||||||
|
+const __DRIcopySubBufferExtension driCopySubBufferExtension = {
|
||||||
|
+ { __DRI_COPY_SUB_BUFFER, 1 },
|
||||||
|
+ .copySubBuffer = driCopySubBuffer,
|
||||||
|
+};
|
||||||
diff --git a/src/mesa/drivers/dri/common/dri_util.h b/src/mesa/drivers/dri/common/dri_util.h
|
diff --git a/src/mesa/drivers/dri/common/dri_util.h b/src/mesa/drivers/dri/common/dri_util.h
|
||||||
index 900f048..4c71fe4 100644
|
index 79a8564..4cfa75d 100644
|
||||||
--- a/src/mesa/drivers/dri/common/dri_util.h
|
--- a/src/mesa/drivers/dri/common/dri_util.h
|
||||||
+++ b/src/mesa/drivers/dri/common/dri_util.h
|
+++ b/src/mesa/drivers/dri/common/dri_util.h
|
||||||
@@ -65,7 +65,7 @@ extern const __DRIcoreExtension driCoreExtension;
|
@@ -66,7 +66,7 @@ extern const __DRIcoreExtension driCoreExtension;
|
||||||
extern const __DRIswrastExtension driSWRastExtension;
|
extern const __DRIswrastExtension driSWRastExtension;
|
||||||
extern const __DRIdri2Extension driDRI2Extension;
|
extern const __DRIdri2Extension driDRI2Extension;
|
||||||
extern const __DRI2configQueryExtension dri2ConfigQueryExtension;
|
extern const __DRI2configQueryExtension dri2ConfigQueryExtension;
|
||||||
@ -924,7 +963,7 @@ index 900f048..4c71fe4 100644
|
|||||||
/**
|
/**
|
||||||
* Driver callback functions.
|
* Driver callback functions.
|
||||||
*
|
*
|
||||||
@@ -113,6 +113,9 @@ struct __DriverAPIRec {
|
@@ -115,6 +115,9 @@ struct __DriverAPIRec {
|
||||||
int width, int height);
|
int width, int height);
|
||||||
|
|
||||||
void (*ReleaseBuffer) (__DRIscreen *screenPrivate, __DRIbuffer *buffer);
|
void (*ReleaseBuffer) (__DRIscreen *screenPrivate, __DRIbuffer *buffer);
|
||||||
@ -934,34 +973,11 @@ index 900f048..4c71fe4 100644
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern const struct __DriverAPIRec driDriverAPI;
|
extern const struct __DriverAPIRec driDriverAPI;
|
||||||
diff --git a/src/mesa/drivers/dri/common/drisw_util.c b/src/mesa/drivers/dri/common/drisw_util.c
|
|
||||||
index 89f03c3..0da4142 100644
|
|
||||||
--- a/src/mesa/drivers/dri/common/drisw_util.c
|
|
||||||
+++ b/src/mesa/drivers/dri/common/drisw_util.c
|
|
||||||
@@ -373,3 +373,18 @@ const __DRIswrastExtension driSWRastExtension = {
|
|
||||||
driCreateNewContextForAPI,
|
|
||||||
driCreateContextAttribs
|
|
||||||
};
|
|
||||||
+
|
|
||||||
+/* swrast copy sub buffer entrypoint. */
|
|
||||||
+static void driCopySubBuffer(__DRIdrawable *pdp, int x, int y,
|
|
||||||
+ int w, int h)
|
|
||||||
+{
|
|
||||||
+ assert(pdp->driScreenPriv->swrast_loader);
|
|
||||||
+
|
|
||||||
+ driDriverAPI.CopySubBuffer(pdp, x, y, w, h);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* for swrast only */
|
|
||||||
+const __DRIcopySubBufferExtension driCopySubBufferExtension = {
|
|
||||||
+ { __DRI_COPY_SUB_BUFFER, 1 },
|
|
||||||
+ .copySubBuffer = driCopySubBuffer,
|
|
||||||
+};
|
|
||||||
diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c
|
diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c
|
||||||
index 3870673..eb6d23b 100644
|
index 0e1c530..7eed5a4 100644
|
||||||
--- a/src/mesa/drivers/dri/swrast/swrast.c
|
--- a/src/mesa/drivers/dri/swrast/swrast.c
|
||||||
+++ b/src/mesa/drivers/dri/swrast/swrast.c
|
+++ b/src/mesa/drivers/dri/swrast/swrast.c
|
||||||
@@ -830,6 +830,39 @@ dri_unbind_context(__DRIcontext * cPriv)
|
@@ -820,6 +820,39 @@ dri_unbind_context(__DRIcontext * cPriv)
|
||||||
return GL_TRUE;
|
return GL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -999,20 +1015,22 @@ index 3870673..eb6d23b 100644
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
|
||||||
const struct __DriverAPIRec driDriverAPI = {
|
static const struct __DriverAPIRec swrast_driver_api = {
|
||||||
.InitScreen = dri_init_screen,
|
.InitScreen = dri_init_screen,
|
||||||
@@ -841,11 +874,13 @@ const struct __DriverAPIRec driDriverAPI = {
|
@@ -831,6 +864,7 @@ static const struct __DriverAPIRec swrast_driver_api = {
|
||||||
.SwapBuffers = dri_swap_buffers,
|
.SwapBuffers = dri_swap_buffers,
|
||||||
.MakeCurrent = dri_make_current,
|
.MakeCurrent = dri_make_current,
|
||||||
.UnbindContext = dri_unbind_context,
|
.UnbindContext = dri_unbind_context,
|
||||||
+ .CopySubBuffer = dri_copy_sub_buffer,
|
+ .CopySubBuffer = dri_copy_sub_buffer,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This is the table of extensions that the loader will dlsym() for. */
|
static const struct __DRIDriverVtableExtensionRec swrast_vtable = {
|
||||||
PUBLIC const __DRIextension *__driDriverExtensions[] = {
|
@@ -841,6 +875,7 @@ static const struct __DRIDriverVtableExtensionRec swrast_vtable = {
|
||||||
|
static const __DRIextension *swrast_driver_extensions[] = {
|
||||||
&driCoreExtension.base,
|
&driCoreExtension.base,
|
||||||
&driSWRastExtension.base,
|
&driSWRastExtension.base,
|
||||||
+ &driCopySubBufferExtension.base,
|
+ &driCopySubBufferExtension.base,
|
||||||
|
&swrast_vtable.base,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
--
|
--
|
||||||
|
@ -15,11 +15,11 @@ DIRNAME=mesa-$( date +%Y%m%d )
|
|||||||
|
|
||||||
echo REF ${REF:+--reference $REF}
|
echo REF ${REF:+--reference $REF}
|
||||||
echo DIRNAME $DIRNAME
|
echo DIRNAME $DIRNAME
|
||||||
echo HEAD ${1:-9.2}
|
echo HEAD ${1:-10.0}
|
||||||
|
|
||||||
rm -rf $DIRNAME
|
rm -rf $DIRNAME
|
||||||
|
|
||||||
git clone --depth 1 ${REF:+--reference $REF} --branch 9.2 \
|
git clone --depth 1 ${REF:+--reference $REF} --branch 10.0 \
|
||||||
git://git.freedesktop.org/git/mesa/mesa $DIRNAME
|
git://git.freedesktop.org/git/mesa/mesa $DIRNAME
|
||||||
|
|
||||||
GIT_DIR=$DIRNAME/.git git archive --format=tar --prefix=$DIRNAME/ ${1:-HEAD} \
|
GIT_DIR=$DIRNAME/.git git archive --format=tar --prefix=$DIRNAME/ ${1:-HEAD} \
|
||||||
|
12
mesa-10.0-nv50-fix-build.patch
Normal file
12
mesa-10.0-nv50-fix-build.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -uNr mesa-20131201.orig/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp mesa-20131201/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp
|
||||||
|
--- mesa-20131201.orig/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp 2013-12-01 11:29:21.000000000 +0400
|
||||||
|
+++ mesa-20131201/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp 2013-12-01 16:05:06.488417551 +0400
|
||||||
|
@@ -739,7 +739,7 @@
|
||||||
|
if (!i)
|
||||||
|
i = new_Instruction(pol.context(), op, dType);
|
||||||
|
#ifndef NDEBUG // non-conformant assert, so this is required
|
||||||
|
- assert(typeid(*i) == typeid(*this));
|
||||||
|
+ //assert(typeid(*i) == typeid(*this));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pol.set<Instruction>(this, i);
|
@ -1,27 +0,0 @@
|
|||||||
Neither of these drivers does anything on-GPU, so, no.
|
|
||||||
|
|
||||||
diff -up mesa-20130508/src/gallium/targets/Makefile.am.jx mesa-20130508/src/gallium/targets/Makefile.am
|
|
||||||
--- mesa-20130508/src/gallium/targets/Makefile.am.jx 2013-05-08 13:23:41.000000000 -0400
|
|
||||||
+++ mesa-20130508/src/gallium/targets/Makefile.am 2013-05-08 14:59:50.897835932 -0400
|
|
||||||
@@ -78,10 +78,6 @@ endif
|
|
||||||
if HAVE_ST_XVMC
|
|
||||||
SUBDIRS += xvmc-r300
|
|
||||||
endif
|
|
||||||
-
|
|
||||||
-if HAVE_ST_VDPAU
|
|
||||||
-SUBDIRS += vdpau-r300
|
|
||||||
-endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_GALLIUM_R600
|
|
||||||
@@ -142,10 +138,6 @@ endif
|
|
||||||
if HAVE_ST_XVMC
|
|
||||||
SUBDIRS += xvmc-softpipe
|
|
||||||
endif
|
|
||||||
-
|
|
||||||
-if HAVE_ST_VDPAU
|
|
||||||
-SUBDIRS += vdpau-softpipe
|
|
||||||
-endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if NEED_GALLIUM_LOADER
|
|
121
mesa.spec
121
mesa.spec
@ -1,25 +1,12 @@
|
|||||||
%if 0%{?rhel}
|
%if 0%{?rhel}
|
||||||
%define with_private_llvm 1
|
%define with_private_llvm 1
|
||||||
|
%define with_wayland 0
|
||||||
%else
|
%else
|
||||||
%define with_private_llvm 0
|
%define with_private_llvm 0
|
||||||
%define with_vdpau 1
|
%define with_vdpau 1
|
||||||
%define with_wayland 1
|
%define with_wayland 1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# f17 support wayland 0.85, llvm 3.0 means no radeonsi
|
|
||||||
%if 0%{?fedora} < 18
|
|
||||||
%define min_wayland_version 0.85
|
|
||||||
%else
|
|
||||||
%define min_wayland_version 1.0
|
|
||||||
%ifnarch ppc
|
|
||||||
%define with_radeonsi 1
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%ifarch %{arm}
|
|
||||||
%define with_freedreno 1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# S390 doesn't have video cards, but we need swrast for xserver's GLX
|
# S390 doesn't have video cards, but we need swrast for xserver's GLX
|
||||||
# llvm (and thus llvmpipe) doesn't actually work on ppc32 or s390
|
# llvm (and thus llvmpipe) doesn't actually work on ppc32 or s390
|
||||||
|
|
||||||
@ -27,6 +14,15 @@
|
|||||||
%define with_llvm 1
|
%define with_llvm 1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%define min_wayland_version 1.0
|
||||||
|
%if 0%{?with_llvm}
|
||||||
|
%define with_radeonsi 1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifarch %{arm}
|
||||||
|
%define with_freedreno 1
|
||||||
|
%endif
|
||||||
|
|
||||||
%ifarch s390 s390x
|
%ifarch s390 s390x
|
||||||
%define with_hardware 0
|
%define with_hardware 0
|
||||||
%ifarch s390
|
%ifarch s390
|
||||||
@ -38,6 +34,7 @@
|
|||||||
%ifarch %{ix86} x86_64
|
%ifarch %{ix86} x86_64
|
||||||
%define platform_drivers ,i915,i965
|
%define platform_drivers ,i915,i965
|
||||||
%define with_vmware 1
|
%define with_vmware 1
|
||||||
|
%define with_opencl 1
|
||||||
%endif
|
%endif
|
||||||
%ifarch ppc
|
%ifarch ppc
|
||||||
%define platform_drivers ,swrast
|
%define platform_drivers ,swrast
|
||||||
@ -48,12 +45,12 @@
|
|||||||
|
|
||||||
%define _default_patch_fuzz 2
|
%define _default_patch_fuzz 2
|
||||||
|
|
||||||
%define gitdate 20131220
|
%define gitdate 20140206
|
||||||
#% define snapshot
|
#% define snapshot
|
||||||
|
|
||||||
Summary: Mesa graphics libraries
|
Summary: Mesa graphics libraries
|
||||||
Name: mesa
|
Name: mesa
|
||||||
Version: 9.2.5
|
Version: 10.0.3
|
||||||
Release: 1.%{gitdate}%{?dist}
|
Release: 1.%{gitdate}%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
@ -70,16 +67,18 @@ Source3: make-git-snapshot.sh
|
|||||||
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
|
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
|
||||||
Source4: Mesa-MLAA-License-Clarification-Email.txt
|
Source4: Mesa-MLAA-License-Clarification-Email.txt
|
||||||
|
|
||||||
Patch1: nv50-fix-build.patch
|
Patch1: mesa-10.0-nv50-fix-build.patch
|
||||||
Patch9: mesa-8.0-llvmpipe-shmget.patch
|
Patch9: mesa-8.0-llvmpipe-shmget.patch
|
||||||
Patch12: mesa-8.0.1-fix-16bpp.patch
|
Patch12: mesa-8.0.1-fix-16bpp.patch
|
||||||
Patch15: mesa-9.2-hardware-float.patch
|
Patch15: mesa-9.2-hardware-float.patch
|
||||||
Patch16: mesa-9.2-no-useless-vdpau.patch
|
|
||||||
Patch20: mesa-9.2-evergreen-big-endian.patch
|
Patch20: mesa-9.2-evergreen-big-endian.patch
|
||||||
|
|
||||||
# add GLX_MESA_copy_sub_buffer to all sw drivers for cogl/gnome
|
# backport from upstream to allow cogl use copy_sub_buffer
|
||||||
Patch30: 0001-swrast-gallium-classic-add-MESA_copy_sub_buffer-supp.patch
|
Patch30: 0001-swrast-gallium-classic-add-MESA_copy_sub_buffer-supp.patch
|
||||||
|
|
||||||
|
# https://bugs.freedesktop.org/show_bug.cgi?id=73512
|
||||||
|
Patch99: 0001-opencl-use-versioned-.so-in-mesa.icd.patch
|
||||||
|
|
||||||
BuildRequires: pkgconfig autoconf automake libtool
|
BuildRequires: pkgconfig autoconf automake libtool
|
||||||
%if %{with_hardware}
|
%if %{with_hardware}
|
||||||
BuildRequires: kernel-headers
|
BuildRequires: kernel-headers
|
||||||
@ -104,13 +103,16 @@ BuildRequires: gettext
|
|||||||
BuildRequires: mesa-private-llvm-devel
|
BuildRequires: mesa-private-llvm-devel
|
||||||
%else
|
%else
|
||||||
BuildRequires: llvm-devel >= 3.0
|
BuildRequires: llvm-devel >= 3.0
|
||||||
|
%if 0%{?with_opencl}
|
||||||
|
BuildRequires: clang-devel >= 3.0
|
||||||
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: elfutils-libelf-devel
|
BuildRequires: elfutils-libelf-devel
|
||||||
BuildRequires: libxml2-python
|
BuildRequires: libxml2-python
|
||||||
BuildRequires: libudev-devel
|
BuildRequires: libudev-devel
|
||||||
BuildRequires: bison flex
|
BuildRequires: bison flex
|
||||||
%if !0%{?rhel}
|
%if 0%{?with_wayland}
|
||||||
BuildRequires: pkgconfig(wayland-client) >= %{min_wayland_version}
|
BuildRequires: pkgconfig(wayland-client) >= %{min_wayland_version}
|
||||||
BuildRequires: pkgconfig(wayland-server) >= %{min_wayland_version}
|
BuildRequires: pkgconfig(wayland-server) >= %{min_wayland_version}
|
||||||
%endif
|
%endif
|
||||||
@ -119,6 +121,9 @@ BuildRequires: mesa-libGL-devel
|
|||||||
BuildRequires: libvdpau-devel
|
BuildRequires: libvdpau-devel
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
|
%if 0%{?with_opencl}
|
||||||
|
BuildRequires: libclc-devel llvm-static opencl-filesystem
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Mesa
|
Mesa
|
||||||
@ -237,7 +242,7 @@ Provides: libgbm-devel
|
|||||||
Mesa libgbm development package
|
Mesa libgbm development package
|
||||||
|
|
||||||
|
|
||||||
%if !0%{?rhel}
|
%if 0%{?with_wayland}
|
||||||
%package libwayland-egl
|
%package libwayland-egl
|
||||||
Summary: Mesa libwayland-egl library
|
Summary: Mesa libwayland-egl library
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
@ -284,6 +289,25 @@ Group: System Environment/Libraries
|
|||||||
%description libglapi
|
%description libglapi
|
||||||
Mesa shared glapi
|
Mesa shared glapi
|
||||||
|
|
||||||
|
|
||||||
|
%if 0%{?with_opencl}
|
||||||
|
%package libOpenCL
|
||||||
|
Summary: Mesa OpenCL runtime library
|
||||||
|
Requires: ocl-icd
|
||||||
|
Requires: libclc
|
||||||
|
Requires: mesa-libgbm = %{version}-%{release}
|
||||||
|
|
||||||
|
%description libOpenCL
|
||||||
|
Mesa OpenCL runtime library.
|
||||||
|
|
||||||
|
%package libOpenCL-devel
|
||||||
|
Summary: Mesa OpenCL development package
|
||||||
|
Requires: mesa-libOpenCL%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description libOpenCL-devel
|
||||||
|
Mesa OpenCL development package.
|
||||||
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
#setup -q -n Mesa-%{version}%{?snapshot}
|
#setup -q -n Mesa-%{version}%{?snapshot}
|
||||||
%setup -q -n mesa-%{gitdate}
|
%setup -q -n mesa-%{gitdate}
|
||||||
@ -302,28 +326,24 @@ grep -q ^/ src/gallium/auxiliary/vl/vl_decoder.c && exit 1
|
|||||||
#patch12 -p1 -b .16bpp
|
#patch12 -p1 -b .16bpp
|
||||||
|
|
||||||
%patch15 -p1 -b .hwfloat
|
%patch15 -p1 -b .hwfloat
|
||||||
%patch16 -p1 -b .vdpau
|
|
||||||
%patch20 -p1 -b .egbe
|
%patch20 -p1 -b .egbe
|
||||||
|
|
||||||
%patch30 -p1 -b .copy_sub_buffer
|
%patch30 -p1 -b .copy_sub_buffer
|
||||||
|
|
||||||
|
%if 0%{?with_opencl}
|
||||||
|
%patch99 -p1 -b .icd
|
||||||
|
%endif
|
||||||
|
|
||||||
%if 0%{with_private_llvm}
|
%if 0%{with_private_llvm}
|
||||||
sed -i 's/llvm-config/mesa-private-llvm-config-%{__isa_bits}/g' configure.ac
|
sed -i 's/llvm-config/mesa-private-llvm-config-%{__isa_bits}/g' configure.ac
|
||||||
sed -i 's/`$LLVM_CONFIG --version`/&-mesa/' configure.ac
|
sed -i 's/`$LLVM_CONFIG --version`/&-mesa/' configure.ac
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# need to use libdrm_nouveau2 on F17
|
|
||||||
%if !0%{?rhel}
|
|
||||||
%if 0%{?fedora} < 18
|
|
||||||
sed -i 's/\<libdrm_nouveau\>/&2/' configure.ac
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
cp %{SOURCE4} docs/
|
cp %{SOURCE4} docs/
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
autoreconf --install
|
autoreconf --install
|
||||||
|
|
||||||
export CFLAGS="$RPM_OPT_FLAGS"
|
export CFLAGS="$RPM_OPT_FLAGS"
|
||||||
# C++ note: we never say "catch" in the source. we do say "typeid" once,
|
# C++ note: we never say "catch" in the source. we do say "typeid" once,
|
||||||
@ -331,7 +351,7 @@ export CFLAGS="$RPM_OPT_FLAGS"
|
|||||||
#
|
#
|
||||||
# We do say 'catch' in the clover and d3d1x state trackers, but we're not
|
# We do say 'catch' in the clover and d3d1x state trackers, but we're not
|
||||||
# building those yet.
|
# building those yet.
|
||||||
export CXXFLAGS="$RPM_OPT_FLAGS -fno-rtti -fno-exceptions"
|
export CXXFLAGS="$RPM_OPT_FLAGS %{?with_opencl:-frtti -fexceptions} %{!?with_opencl:-fno-rtti -fno-exceptions}"
|
||||||
%ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
# i do not have words for how much the assembly dispatch code infuriates me
|
# i do not have words for how much the assembly dispatch code infuriates me
|
||||||
%define asm_flags --disable-asm
|
%define asm_flags --disable-asm
|
||||||
@ -351,7 +371,7 @@ export CXXFLAGS="$RPM_OPT_FLAGS -fno-rtti -fno-exceptions"
|
|||||||
--with-egl-platforms=x11,drm%{?with_wayland:,wayland} \
|
--with-egl-platforms=x11,drm%{?with_wayland:,wayland} \
|
||||||
--enable-shared-glapi \
|
--enable-shared-glapi \
|
||||||
--enable-gbm \
|
--enable-gbm \
|
||||||
--disable-opencl \
|
%{?with_opencl:--enable-opencl --enable-opencl-icd --with-clang-libdir=%{_prefix}/lib} %{!?with_opencl:--disable-opencl} \
|
||||||
--enable-glx-tls \
|
--enable-glx-tls \
|
||||||
--enable-texture-float=yes \
|
--enable-texture-float=yes \
|
||||||
%{?with_llvm:--enable-gallium-llvm} \
|
%{?with_llvm:--enable-gallium-llvm} \
|
||||||
@ -360,6 +380,7 @@ export CXXFLAGS="$RPM_OPT_FLAGS -fno-rtti -fno-exceptions"
|
|||||||
%if %{with_hardware}
|
%if %{with_hardware}
|
||||||
%{?with_vmware:--enable-xa} \
|
%{?with_vmware:--enable-xa} \
|
||||||
--with-gallium-drivers=%{?with_vmware:svga,}%{?with_radeonsi:radeonsi,}%{?with_llvm:swrast,r600,}%{?with_freedreno:freedreno,}r300,nouveau \
|
--with-gallium-drivers=%{?with_vmware:svga,}%{?with_radeonsi:radeonsi,}%{?with_llvm:swrast,r600,}%{?with_freedreno:freedreno,}r300,nouveau \
|
||||||
|
%{?with_llvm:--enable-r600-llvm-compiler} \
|
||||||
%else
|
%else
|
||||||
--with-gallium-drivers=%{?with_llvm:swrast} \
|
--with-gallium-drivers=%{?with_llvm:swrast} \
|
||||||
%endif
|
%endif
|
||||||
@ -417,7 +438,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%postun libglapi -p /sbin/ldconfig
|
%postun libglapi -p /sbin/ldconfig
|
||||||
%post libgbm -p /sbin/ldconfig
|
%post libgbm -p /sbin/ldconfig
|
||||||
%postun libgbm -p /sbin/ldconfig
|
%postun libgbm -p /sbin/ldconfig
|
||||||
%if !0%{?rhel}
|
%if 0%{?with_wayland}
|
||||||
%post libwayland-egl -p /sbin/ldconfig
|
%post libwayland-egl -p /sbin/ldconfig
|
||||||
%postun libwayland-egl -p /sbin/ldconfig
|
%postun libwayland-egl -p /sbin/ldconfig
|
||||||
%endif
|
%endif
|
||||||
@ -425,6 +446,10 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%post libxatracker -p /sbin/ldconfig
|
%post libxatracker -p /sbin/ldconfig
|
||||||
%postun libxatracker -p /sbin/ldconfig
|
%postun libxatracker -p /sbin/ldconfig
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?with_opencl}
|
||||||
|
%post libOpenCL -p /sbin/ldconfig
|
||||||
|
%postun libOpenCL -p /sbin/ldconfig
|
||||||
|
%endif
|
||||||
|
|
||||||
%files libGL
|
%files libGL
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
@ -480,19 +505,12 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%endif
|
%endif
|
||||||
%if 0%{?with_freedreno}
|
%if 0%{?with_freedreno}
|
||||||
%{_libdir}/dri/kgsl_dri.so
|
%{_libdir}/dri/kgsl_dri.so
|
||||||
|
%{_libdir}/dri/msm_dri.so
|
||||||
%endif
|
%endif
|
||||||
%{_libdir}/dri/nouveau_dri.so
|
%{_libdir}/dri/nouveau_dri.so
|
||||||
%if 0%{?with_vmware}
|
%if 0%{?with_vmware}
|
||||||
%{_libdir}/dri/vmwgfx_dri.so
|
%{_libdir}/dri/vmwgfx_dri.so
|
||||||
%endif
|
%endif
|
||||||
%{_libdir}/libdricore*.so*
|
|
||||||
%endif
|
|
||||||
# this is funky; it doesn't get built for gallium drivers, so it doesn't
|
|
||||||
# exist on s390x where swrast is llvmpipe, but does exist on s390 where
|
|
||||||
# swrast is classic mesa. this seems like a bug? in that it probably
|
|
||||||
# means the gallium drivers are linking dricore statically? fixme.
|
|
||||||
%ifarch s390
|
|
||||||
%{_libdir}/libdricore*.so*
|
|
||||||
%endif
|
%endif
|
||||||
%{_libdir}/dri/swrast_dri.so
|
%{_libdir}/dri/swrast_dri.so
|
||||||
|
|
||||||
@ -503,10 +521,12 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_libdir}/vdpau/libvdpau_nouveau.so.1*
|
%{_libdir}/vdpau/libvdpau_nouveau.so.1*
|
||||||
%if 0%{?with_llvm}
|
%if 0%{?with_llvm}
|
||||||
%{_libdir}/vdpau/libvdpau_r600.so.1*
|
%{_libdir}/vdpau/libvdpau_r600.so.1*
|
||||||
|
%if 0%{?with_radeonsi}
|
||||||
%{_libdir}/vdpau/libvdpau_radeonsi.so.1*
|
%{_libdir}/vdpau/libvdpau_radeonsi.so.1*
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%files libGL-devel
|
%files libGL-devel
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
@ -571,7 +591,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_includedir}/gbm.h
|
%{_includedir}/gbm.h
|
||||||
%{_libdir}/pkgconfig/gbm.pc
|
%{_libdir}/pkgconfig/gbm.pc
|
||||||
|
|
||||||
%if !0%{?rhel}
|
%if 0%{?with_wayland}
|
||||||
%files libwayland-egl
|
%files libwayland-egl
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc docs/COPYING
|
%doc docs/COPYING
|
||||||
@ -589,8 +609,8 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc docs/COPYING
|
%doc docs/COPYING
|
||||||
%if %{with_hardware}
|
%if %{with_hardware}
|
||||||
%{_libdir}/libxatracker.so.1
|
%{_libdir}/libxatracker.so.2
|
||||||
%{_libdir}/libxatracker.so.1.*
|
%{_libdir}/libxatracker.so.2.*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files libxatracker-devel
|
%files libxatracker-devel
|
||||||
@ -604,7 +624,20 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_opencl}
|
||||||
|
%files libOpenCL
|
||||||
|
%{_libdir}/libMesaOpenCL.so.*
|
||||||
|
%{_libdir}/gallium-pipe/
|
||||||
|
%{_sysconfdir}/OpenCL/vendors/mesa.icd
|
||||||
|
|
||||||
|
%files libOpenCL-devel
|
||||||
|
%{_libdir}/libMesaOpenCL.so
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 06 2014 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 10.0.3-1.20140206
|
||||||
|
- 10.0.3 upstream release (merged from rawhide)
|
||||||
|
|
||||||
* Fri Dec 20 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 9.2.5-1.20131220
|
* Fri Dec 20 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 9.2.5-1.20131220
|
||||||
- 9.2.5 upstream release
|
- 9.2.5 upstream release
|
||||||
|
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff -up mesa-20130213/src/gallium/drivers/nv50/codegen/nv50_ir.cpp.rtti mesa-20130213/src/gallium/drivers/nv50/codegen/nv50_ir.cpp
|
|
||||||
--- mesa-20130213/src/gallium/drivers/nv50/codegen/nv50_ir.cpp.rtti 2013-02-13 18:08:17.533677028 +1000
|
|
||||||
+++ mesa-20130213/src/gallium/drivers/nv50/codegen/nv50_ir.cpp 2013-02-13 18:08:20.496752128 +1000
|
|
||||||
@@ -716,7 +716,7 @@ Instruction::clone(ClonePolicy<Function>
|
|
||||||
if (!i)
|
|
||||||
i = new_Instruction(pol.context(), op, dType);
|
|
||||||
#ifndef NDEBUG // non-conformant assert, so this is required
|
|
||||||
- assert(typeid(*i) == typeid(*this));
|
|
||||||
+ // assert(typeid(*i) == typeid(*this));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pol.set<Instruction>(this, i);
|
|
@ -20,14 +20,9 @@ pushd $dirname
|
|||||||
|
|
||||||
cat > src/gallium/auxiliary/vl/vl_mpeg12_decoder.c << EOF
|
cat > src/gallium/auxiliary/vl/vl_mpeg12_decoder.c << EOF
|
||||||
#include "vl_mpeg12_decoder.h"
|
#include "vl_mpeg12_decoder.h"
|
||||||
struct pipe_video_decoder *
|
struct pipe_video_codec *
|
||||||
vl_create_mpeg12_decoder(struct pipe_context *context,
|
vl_create_mpeg12_decoder(struct pipe_context *context,
|
||||||
enum pipe_video_profile profile,
|
const struct pipe_video_codec *templat)
|
||||||
enum pipe_video_entrypoint entrypoint,
|
|
||||||
enum pipe_video_chroma_format chroma_format,
|
|
||||||
unsigned width, unsigned height,
|
|
||||||
unsigned max_references,
|
|
||||||
bool expect_chunked_decode)
|
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -35,20 +30,24 @@ EOF
|
|||||||
|
|
||||||
cat > src/gallium/auxiliary/vl/vl_decoder.c << EOF
|
cat > src/gallium/auxiliary/vl/vl_decoder.c << EOF
|
||||||
#include "vl_decoder.h"
|
#include "vl_decoder.h"
|
||||||
bool vl_profile_supported(struct pipe_screen *screen,
|
bool
|
||||||
enum pipe_video_profile profile)
|
vl_profile_supported(struct pipe_screen *screen, enum pipe_video_profile profile,
|
||||||
|
enum pipe_video_entrypoint entrypoint)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
struct pipe_video_decoder *
|
|
||||||
vl_create_decoder(struct pipe_context *pipe,
|
int
|
||||||
enum pipe_video_profile profile,
|
vl_level_supported(struct pipe_screen *screen, enum pipe_video_profile profile)
|
||||||
enum pipe_video_entrypoint entrypoint,
|
|
||||||
enum pipe_video_chroma_format chroma_format,
|
|
||||||
unsigned width, unsigned height, unsigned max_references,
|
|
||||||
bool expect_chunked_decode)
|
|
||||||
{
|
{
|
||||||
return NULL;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct pipe_video_codec *
|
||||||
|
vl_create_decoder(struct pipe_context *pipe,
|
||||||
|
const struct pipe_video_codec *templat)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user