[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

mesa: Changes to 'upstream-experimental'



Rebased ref, commits from common ancestor:
commit b9518a41d4103fb19337d51971de0f14e267b954
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Thu Feb 12 14:00:41 2015 +0000

    Increment version to 10.5.0-rc1
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/VERSION b/VERSION
index 093d8ba..49dab28 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.5.0-devel
+10.5.0-rc1

commit 550d7c26e773bdfb71f51c53ad160caca68420e2
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Tue Feb 10 15:11:09 2015 +0000

    auxiliary/vl: bring back the VL code for the dri targets
    
    With commit c642e87d9f4(auxiliary/vl: rework the build of the VL code)
    we split out the VL code into a separate static library that was meant
    to be used by the VL targets alone - va, vdpau, xvmc.
    
    The commit failed to consider the way we handle vdpau-gl interop and
    broke it. Bring back the functionality by keeping the vl <> vl_stub
    separation as requrested by Christian.
    
    v2: Update the omx target as well. Update mesa-stable email address.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86837
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Tested-by: Andy Furniss <adf.lists@gmail.com>

diff --git a/configure.ac b/configure.ac
index 155f496..351027b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1572,7 +1572,8 @@ if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
     fi
 fi
 
-if test "x$enable_xvmc" = xyes -o \
+if test "x$enable_dri" = xyes -o \
+        "x$enable_xvmc" = xyes -o \
         "x$enable_vdpau" = xyes -o \
         "x$enable_omx" = xyes -o \
         "x$enable_va" = xyes; then
diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
index 1053ce4..453282a 100644
--- a/src/gallium/auxiliary/Makefile.am
+++ b/src/gallium/auxiliary/Makefile.am
@@ -53,9 +53,7 @@ libgalliumvl_stub_la_SOURCES = \
 
 if NEED_GALLIUM_VL
 
-noinst_LTLIBRARIES += libgalliumvl.la
-
-libgalliumvl_la_CFLAGS = \
+COMMON_VL_CFLAGS = \
 	$(AM_CFLAGS) \
 	$(VL_CFLAGS) \
 	$(LIBDRM_CFLAGS) \
@@ -63,14 +61,27 @@ libgalliumvl_la_CFLAGS = \
 	-DPIPE_SEARCH_DIR=\"$(libdir)/gallium-pipe\"
 
 if HAVE_GALLIUM_STATIC_TARGETS
-libgalliumvl_la_CFLAGS += \
+COMMON_VL_CFLAGS += \
 	-DGALLIUM_STATIC_TARGETS=1
 
 endif # HAVE_GALLIUM_STATIC_TARGETS
 
+noinst_LTLIBRARIES += libgalliumvl.la
+
+libgalliumvl_la_CFLAGS = \
+	$(COMMON_VL_CFLAGS)
+
 libgalliumvl_la_SOURCES = \
 	$(VL_SOURCES)
 
+noinst_LTLIBRARIES += libgalliumvlwinsys.la
+
+libgalliumvlwinsys_la_CFLAGS = \
+	$(COMMON_VL_CFLAGS)
+
+libgalliumvlwinsys_la_SOURCES = \
+	$(VL_WINSYS_SOURCES)
+
 endif
 
 EXTRA_DIST = \
diff --git a/src/gallium/auxiliary/Makefile.sources b/src/gallium/auxiliary/Makefile.sources
index c45dd18..d330935 100644
--- a/src/gallium/auxiliary/Makefile.sources
+++ b/src/gallium/auxiliary/Makefile.sources
@@ -334,10 +334,13 @@ VL_SOURCES := \
 	vl/vl_video_buffer.h \
 	vl/vl_vlc.h \
 	vl/vl_winsys.h \
-	vl/vl_winsys_dri.c \
 	vl/vl_zscan.c \
 	vl/vl_zscan.h
 
+# XXX: Nuke this as our dri targets no longer depend on VL.
+VL_WINSYS_SOURCES := \
+	vl/vl_winsys_dri.c
+
 VL_STUB_SOURCES := \
 	vl/vl_stubs.c
 
diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am
index 7f2ce6a..aaeb950 100644
--- a/src/gallium/targets/dri/Makefile.am
+++ b/src/gallium/targets/dri/Makefile.am
@@ -44,7 +44,7 @@ gallium_dri_la_LIBADD = \
 	$(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
 	$(top_builddir)/src/mesa/drivers/dri/common/libmegadriver_stub.la \
 	$(top_builddir)/src/gallium/state_trackers/dri/libdri.la \
-	$(top_builddir)/src/gallium/auxiliary/libgalliumvl_stub.la \
+	$(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \
 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
 	$(top_builddir)/src/gallium/drivers/galahad/libgalahad.la \
 	$(top_builddir)/src/gallium/drivers/noop/libnoop.la \
diff --git a/src/gallium/targets/omx/Makefile.am b/src/gallium/targets/omx/Makefile.am
index 0ae7c55..f52e669 100644
--- a/src/gallium/targets/omx/Makefile.am
+++ b/src/gallium/targets/omx/Makefile.am
@@ -24,6 +24,7 @@ endif # HAVE_LD_VERSION_SCRIPT
 
 libomx_mesa_la_LIBADD = \
 	$(top_builddir)/src/gallium/state_trackers/omx/libomxtracker.la \
+	$(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la \
 	$(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \
 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
 	$(top_builddir)/src/util/libmesautil.la \
diff --git a/src/gallium/targets/pipe-loader/Makefile.am b/src/gallium/targets/pipe-loader/Makefile.am
index 3d73a51..94658f8 100644
--- a/src/gallium/targets/pipe-loader/Makefile.am
+++ b/src/gallium/targets/pipe-loader/Makefile.am
@@ -40,6 +40,7 @@ PIPE_LIBS =
 
 if NEED_GALLIUM_VL
 PIPE_LIBS += \
+	$(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la \
 	$(top_builddir)/src/gallium/auxiliary/libgalliumvl.la
 else
 PIPE_LIBS += \
diff --git a/src/gallium/targets/va/Makefile.am b/src/gallium/targets/va/Makefile.am
index 11297e0..57c7e35 100644
--- a/src/gallium/targets/va/Makefile.am
+++ b/src/gallium/targets/va/Makefile.am
@@ -25,6 +25,7 @@ endif # HAVE_LD_VERSION_SCRIPT
 # NOTE: gallium_drv_video does not use(link against) libva
 gallium_drv_video_la_LIBADD = \
 	$(top_builddir)/src/gallium/state_trackers/va/libvatracker.la \
+	$(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la \
 	$(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \
 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
 	$(top_builddir)/src/util/libmesautil.la \
diff --git a/src/gallium/targets/vdpau/Makefile.am b/src/gallium/targets/vdpau/Makefile.am
index 2980cc3..9455fc4 100644
--- a/src/gallium/targets/vdpau/Makefile.am
+++ b/src/gallium/targets/vdpau/Makefile.am
@@ -30,6 +30,7 @@ endif # HAVE_LD_DYNAMIC_LIST
 # NOTE: libvdpau_gallium does not use(link against) libvdpau
 libvdpau_gallium_la_LIBADD = \
 	$(top_builddir)/src/gallium/state_trackers/vdpau/libvdpautracker.la \
+	$(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la \
 	$(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \
 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
 	$(top_builddir)/src/util/libmesautil.la \
diff --git a/src/gallium/targets/xvmc/Makefile.am b/src/gallium/targets/xvmc/Makefile.am
index 8aed969..3c16c8d 100644
--- a/src/gallium/targets/xvmc/Makefile.am
+++ b/src/gallium/targets/xvmc/Makefile.am
@@ -24,6 +24,7 @@ endif # HAVE_LD_VERSION_SCRIPT
 
 libXvMCgallium_la_LIBADD = \
 	$(top_builddir)/src/gallium/state_trackers/xvmc/libxvmctracker.la \
+	$(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la \
 	$(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \
 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
 	$(top_builddir)/src/util/libmesautil.la \

commit 716886c338ca10b4f9362d0309cc9f4bbcb3d654
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Tue Feb 10 14:14:16 2015 +0000

    configure: rework wayland_scanner handling(fix make distcheck)
    
    Currently having the wayland-scanner is optional, which causes problems
    when autotools parses through the makefiles, and tries to generate all
    the BUILT_SOURCES.
    
    As the config option --with-egl-platform=wayland is not the default, we
    won't end up setting the WAYLAND_SCANNER variable, which in turn will
    cause some files to not get generated.
    
    There has been a wayland-scanner package as of wayland 1.2 which
    provides a variable for the scanner binary, so let's use that one and
    fall back to manually searching via AC_PATH_PROG when needed.
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
    Reviewed-by: Matt Turner <mattst88@gmail.com>

diff --git a/configure.ac b/configure.ac
index c2d775e..155f496 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1730,6 +1730,13 @@ if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
     AC_MSG_ERROR([cannot build egl state tracker without EGL library])
 fi
 
+PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland_scanner],
+        WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland_scanner`,
+        WAYLAND_SCANNER='')
+if test "x$WAYLAND_SCANNER" = x; then
+    AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
+fi
+
 # Do per-EGL platform setups and checks
 egl_platforms=`IFS=', '; echo $with_egl_platforms`
 for plat in $egl_platforms; do
@@ -1737,9 +1744,9 @@ for plat in $egl_platforms; do
 	wayland)
 		PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
 
-                WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client`
-                AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],,
-                             [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH])
+		if test "x$WAYLAND_SCANNER" = x; then
+			AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
+		fi
 		;;
 
 	x11)

commit 8898b68a3f49330eba84ffd4651e97ae1aa2b897
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Tue Feb 10 13:10:18 2015 +0000

    nir: add missing header to the sources list
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
    Reviewed-by: Matt Turner <mattst88@gmail.com>

diff --git a/src/glsl/Makefile.sources b/src/glsl/Makefile.sources
index a580b6e..7e66e91 100644
--- a/src/glsl/Makefile.sources
+++ b/src/glsl/Makefile.sources
@@ -21,6 +21,7 @@ NIR_FILES = \
 	nir/glsl_to_nir.h \
 	nir/nir.c \
 	nir/nir.h \
+	nir/nir_constant_expressions.h \
 	nir/nir_dominance.c \
 	nir/nir_from_ssa.c \
 	nir/nir_intrinsics.c \

commit 93675c7aac899306fe1e6d26c1f7812392c6c183
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Sat Feb 7 19:20:16 2015 +0000

    nir: resolve nir.h dependency list (fix make distcheck)
    
    Use nir/nir_opcodes.h as is (w/o the absolute path), as it is the target
    name used to generate the actual file. Otherwise the target is missing,
    the file won't get generated and the build will fail.
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Matt Turner <mattst88@gmail.com>

diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am
index e89a9ad..1e4d98f 100644
--- a/src/glsl/Makefile.am
+++ b/src/glsl/Makefile.am
@@ -240,7 +240,7 @@ nir/nir_opcodes.h: nir/nir_opcodes.py nir/nir_opcodes_h.py
 	$(MKDIR_P) nir;							\
 	$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_h.py > $@
 
-nir/nir.h: $(top_builddir)/src/glsl/nir/nir_opcodes.h
+nir/nir.h: nir/nir_opcodes.h
 
 nir/nir_opcodes.c: nir/nir_opcodes.py nir/nir_opcodes_c.py
 	$(MKDIR_P) nir;							\

commit 6555c00b19f5750f64f6726a9d45ae9c0b35a7d1
Author: Axel Davy <axel.davy@ens.fr>
Date:   Wed Jan 14 20:36:04 2015 +0100

    egl: Soften several HAVE_DRM_PLATFORM to HAVE_LIBDRM
    
    To fix build when libdrm is not found,
    commit a594cec7e3ef275c386054127a357110a19dd823 did put several
    parts of egl code under #ifdef HAVE_DRM_PLATFORM.
    
    HAVE_DRM_PLATFORM means the egl drm platform is being built.
    What should have been used instead is HAVE_LIBDRM.
    
    At a few locations, the HAVE_DRM_PLATFORM introduced
    have already been replaced by HAVE_LIBDRM, this patch
    replaces the remaining occurences.
    
    This patch makes for example EGL_EXT_image_dma_buf_import
    be advertised by egl under x11 when the drm egl platform
    is not built, whereas previously it required the drm egl
    platform to be built.
    
    Signed-off-by: Axel Davy <axel.davy@ens.fr>
    Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 86e5f24..6306483 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -534,7 +534,7 @@ dri2_setup_screen(_EGLDisplay *disp)
          disp->Extensions.KHR_gl_texture_2D_image = EGL_TRUE;
          disp->Extensions.KHR_gl_texture_cubemap_image = EGL_TRUE;
       }
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
       if (dri2_dpy->image->base.version >= 8 &&
           dri2_dpy->image->createImageFromDmaBufs) {
          disp->Extensions.EXT_image_dma_buf_import = EGL_TRUE;
@@ -1335,7 +1335,7 @@ dri2_create_image_khr_renderbuffer(_EGLDisplay *disp, _EGLContext *ctx,
    return dri2_create_image_from_dri(disp, dri_image);
 }
 
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
 static _EGLImage *
 dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
 				  EGLClientBuffer buffer, const EGLint *attr_list)
@@ -1571,7 +1571,7 @@ dri2_create_wayland_buffer_from_image(_EGLDriver *drv, _EGLDisplay *dpy,
    return dri2_dpy->vtbl->create_wayland_buffer_from_image(drv, dpy, img);
 }
 
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
 static EGLBoolean
 dri2_check_dma_buf_attribs(const _EGLImageAttribs *attrs)
 {
@@ -1821,7 +1821,7 @@ dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
       return dri2_create_image_khr_texture(disp, ctx, target, buffer, attr_list);
    case EGL_GL_RENDERBUFFER_KHR:
       return dri2_create_image_khr_renderbuffer(disp, ctx, buffer, attr_list);
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
    case EGL_DRM_BUFFER_MESA:
       return dri2_create_image_mesa_drm_buffer(disp, ctx, buffer, attr_list);
 #endif
@@ -1829,7 +1829,7 @@ dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
    case EGL_WAYLAND_BUFFER_WL:
       return dri2_create_image_wayland_wl_buffer(disp, ctx, buffer, attr_list);
 #endif
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
    case EGL_LINUX_DMA_BUF_EXT:
       return dri2_create_image_dma_buf(disp, ctx, buffer, attr_list);
 #endif
@@ -1853,7 +1853,7 @@ dri2_destroy_image_khr(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *image)
    return EGL_TRUE;
 }
 
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
 static _EGLImage *
 dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
 			   const EGLint *attr_list)
@@ -2215,7 +2215,7 @@ _eglBuiltInDriverDRI2(const char *args)
    dri2_drv->base.API.CreateImageKHR = dri2_create_image;
    dri2_drv->base.API.DestroyImageKHR = dri2_destroy_image_khr;
    dri2_drv->base.API.CreateWaylandBufferFromImageWL = dri2_create_wayland_buffer_from_image;
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
    dri2_drv->base.API.CreateDRMImageMESA = dri2_create_drm_image_mesa;
    dri2_drv->base.API.ExportDRMImageMESA = dri2_export_drm_image_mesa;
 #endif

commit d03de1dd7d2261382305ea5695f9f510bc9e7dd4
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Tue Feb 10 22:21:47 2015 -0800

    darwin: build fix
    
    xfont.c:237:14: error: implicit declaration of function 'GetGLXDRIDrawable' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
       glxdraw = GetGLXDRIDrawable(CC->currentDpy, CC->currentDrawable);
                 ^
    Fixes regression from 291be28476ea60c6fb1eb2a882e2e25def5d3735
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    (cherry picked from commit e68b67b53fce39a8c93188262d9e795ca50750ac)

diff --git a/src/glx/xfont.c b/src/glx/xfont.c
index a086b7a..00498bc 100644
--- a/src/glx/xfont.c
+++ b/src/glx/xfont.c
@@ -221,7 +221,10 @@ DRI_glXUseXFont(struct glx_context *CC, Font font, int first, int count, int lis
    XGCValues values;
    unsigned long valuemask;
    XFontStruct *fs;
+
+#if !defined(GLX_USE_APPLEGL)
    __GLXDRIdrawable *glxdraw;
+#endif
 
    GLint swapbytes, lsbfirst, rowlength;
    GLint skiprows, skippixels, alignment;
@@ -234,9 +237,11 @@ DRI_glXUseXFont(struct glx_context *CC, Font font, int first, int count, int lis
    dpy = CC->currentDpy;
    win = CC->currentDrawable;
 
+#if !defined(GLX_USE_APPLEGL)
    glxdraw = GetGLXDRIDrawable(CC->currentDpy, CC->currentDrawable);
    if (glxdraw)
       win = glxdraw->xDrawable;
+#endif
 
    fs = XQueryFont(dpy, font);
    if (!fs) {

commit b1b7b5b068441eccac382edab0f0872e3834be45
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Tue Feb 10 20:32:02 2015 -0800

    darwin: build fix
    
    ../../../src/mesa/main/compiler.h:47:10: fatal error: 'util/macros.h' file not found
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    (cherry picked from commit 1c67a5687a35e984323b6034adb914a66d64bb2f)

diff --git a/src/glx/apple/Makefile.am b/src/glx/apple/Makefile.am
index b500a45..2cbff9e 100644
--- a/src/glx/apple/Makefile.am
+++ b/src/glx/apple/Makefile.am
@@ -3,6 +3,7 @@ EXTRA_DIST = RELEASE_NOTES
 noinst_LTLIBRARIES = libappleglx.la
 
 AM_CFLAGS = \
+	-I$(top_srcdir)/src \
 	-I$(top_srcdir)/include \
 	-I$(top_srcdir)/src/glx \
 	-I$(top_srcdir)/src/mesa \

commit d1e21325cf3c394f5fb28808a113826ea3b7f54b
Author: Brian Paul <brianp@vmware.com>
Date:   Wed Feb 4 13:44:48 2015 -0700

    gallium/hud: also try R8_UNORM format for font texture
    
    Convert the code to try formats from an array rather than a bunch
    of if/else cases.
    
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>

diff --git a/src/gallium/auxiliary/hud/font.c b/src/gallium/auxiliary/hud/font.c
index 03e35d9..60e8ae5 100644
--- a/src/gallium/auxiliary/hud/font.c
+++ b/src/gallium/auxiliary/hud/font.c
@@ -57,6 +57,7 @@
 #include "pipe/p_state.h"
 #include "pipe/p_context.h"
 #include "util/u_inlines.h"
+#include "util/u_memory.h"
 
 typedef unsigned char	GLubyte;	/* 1-byte unsigned */
 typedef struct tagSFG_Font SFG_Font;
@@ -373,24 +374,29 @@ static boolean
 util_font_create_fixed_8x13(struct pipe_context *pipe,
                             struct util_font *out_font)
 {
+   static const enum pipe_format formats[] = {
+      PIPE_FORMAT_I8_UNORM,
+      PIPE_FORMAT_L8_UNORM,
+      PIPE_FORMAT_R8_UNORM
+   };
    struct pipe_screen *screen = pipe->screen;
    struct pipe_resource tex_templ, *tex;
    struct pipe_transfer *transfer = NULL;
    char *map;
-   enum pipe_format tex_format;
+   enum pipe_format tex_format = PIPE_FORMAT_NONE;
    int i;
 
-   if (screen->is_format_supported(screen, PIPE_FORMAT_I8_UNORM,
+   for (i = 0; i < Elements(formats); i++) {
+      if (screen->is_format_supported(screen, formats[i],
                                    PIPE_TEXTURE_RECT, 0,
                                    PIPE_BIND_SAMPLER_VIEW)) {
-      tex_format = PIPE_FORMAT_I8_UNORM;
-   }
-   else if (screen->is_format_supported(screen, PIPE_FORMAT_L8_UNORM,
-                                   PIPE_TEXTURE_RECT, 0,
-                                   PIPE_BIND_SAMPLER_VIEW)) {
-      tex_format = PIPE_FORMAT_L8_UNORM;
+         tex_format = formats[i];
+         break;
+      }
    }
-   else {
+
+   if (tex_format == PIPE_FORMAT_NONE) {
+      debug_printf("Unable to find texture format for font.\n");
       return FALSE;
    }
 

commit 6447e9dbfad851f700266dda8003b76e172ae92b
Author: Brian Paul <brianp@vmware.com>
Date:   Wed Feb 4 13:34:44 2015 -0700

    gallium/hud: flush stdout in print_help(), for Windows
    
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>

diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c
index 98678fc..e46c68c 100644
--- a/src/gallium/auxiliary/hud/hud_context.c
+++ b/src/gallium/auxiliary/hud/hud_context.c
@@ -915,6 +915,7 @@ print_help(struct pipe_screen *screen)
    }
 
    puts("");
+   fflush(stdout);
 }
 
 struct hud_context *

commit 7ea1e3749738c63388d3bcca327e4e4dd28f17b8
Author: Ben Widawsky <benjamin.widawsky@intel.com>
Date:   Tue Dec 23 13:59:16 2014 -0800

    i965: Add more stringent blitter assertions
    
    Blits to or from a y-tiled surface must always be a multiple of the tile size.
    From page 16 of the HSW PRM
    (https://01.org/linuxgraphics/sites/default/files/documentation/intel-gfx-prm-osrc-hsw-memory-views.pdf#16)
    "The pitch of a tiled enclosing region must be an integral number of tile
    widths"
    
    Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>

diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c
index e919528..9500bd7 100644
--- a/src/mesa/drivers/dri/i965/intel_blit.c
+++ b/src/mesa/drivers/dri/i965/intel_blit.c
@@ -307,6 +307,9 @@ intelEmitCopyBlit(struct brw_context *brw,
    if ((dst_y_tiled || src_y_tiled) && brw->gen < 6)
       return false;
 
+   assert(!dst_y_tiled || (dst_pitch % 128) == 0);
+   assert(!src_y_tiled || (src_pitch % 128) == 0);
+
    /* do space check before going any further */
    do {
        aper_array[0] = brw->batch.bo;

commit efde74c89dd8596b4cc0dfd9601e55832833f20e
Author: Ben Widawsky <benjamin.widawsky@intel.com>
Date:   Tue Dec 23 12:28:29 2014 -0800

    i965: Consolidate some of the intel_blit logic
    
    An upcoming patch is going to introduce some code here, and having this code
    organized as the patch does makes it a bit easier to read later.
    
    There should be no functional change here.
    
    Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>

diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c
index 400d3d3..e919528 100644
--- a/src/mesa/drivers/dri/i965/intel_blit.c
+++ b/src/mesa/drivers/dri/i965/intel_blit.c
@@ -226,35 +226,23 @@ intel_miptree_blit(struct brw_context *brw,
    if (src_flip != dst_flip)
       src_pitch = -src_pitch;
 
-   uint32_t src_image_x, src_image_y;
+   uint32_t src_image_x, src_image_y, dst_image_x, dst_image_y;
    intel_miptree_get_image_offset(src_mt, src_level, src_slice,
                                   &src_image_x, &src_image_y);
-   src_x += src_image_x;
-   src_y += src_image_y;
-
-   /* The blitter interprets the 16-bit src x/y as a signed 16-bit value,
-    * where negative values are invalid.  The values we're working with are
-    * unsigned, so make sure we don't overflow.
-    */
-   if (src_x >= 32768 || src_y >= 32768) {
-      perf_debug("Falling back due to >=32k src offset (%d, %d)\n",
-                 src_x, src_y);
-      return false;
-   }
-
-   uint32_t dst_image_x, dst_image_y;
    intel_miptree_get_image_offset(dst_mt, dst_level, dst_slice,
                                   &dst_image_x, &dst_image_y);
+   src_x += src_image_x;
+   src_y += src_image_y;
    dst_x += dst_image_x;
    dst_y += dst_image_y;
 
    /* The blitter interprets the 16-bit destination x/y as a signed 16-bit
-    * value.  The values we're working with are unsigned, so make sure we
-    * don't overflow.
+    * value. The values we're working with are unsigned, so make sure we don't
+    * overflow.
     */
-   if (dst_x >= 32768 || dst_y >= 32768) {
-      perf_debug("Falling back due to >=32k dst offset (%d, %d)\n",
-                 dst_x, dst_y);
+   if (src_x >= 32768 || src_y >= 32768 || dst_x >= 32768 || dst_y >= 32768) {
+      perf_debug("Falling back due to >=32k offset [src(%d, %d) dst(%d, %d)]\n",
+                 src_x, src_y, dst_x, dst_y);
       return false;
    }
 

commit 0467a52dc3f7d51eeb51179ce2f9871758ecacb1
Author: Park, Jeongmin <pjm0616@gmail.com>
Date:   Sat Feb 7 17:53:48 2015 +0900

    st/dri: Make depth buffer optional for postprocessing
    
    Since only pp_jimenezmlaa uses depth buffer, we can make it optional.
    
    Signed-off-by: Marek Olšák <marek.olsak@amd.com>

diff --git a/src/gallium/state_trackers/dri/dri_drawable.c b/src/gallium/state_trackers/dri/dri_drawable.c
index eda2d52..b8afe6c 100644
--- a/src/gallium/state_trackers/dri/dri_drawable.c
+++ b/src/gallium/state_trackers/dri/dri_drawable.c
@@ -418,7 +418,7 @@ dri_postprocessing(struct dri_context *ctx,
    struct pipe_resource *src = drawable->textures[att];
    struct pipe_resource *zsbuf = drawable->textures[ST_ATTACHMENT_DEPTH_STENCIL];
 
-   if (ctx->pp && src && zsbuf)
+   if (ctx->pp && src)
       pp_run(ctx->pp, src, src, zsbuf);
 }
 
diff --git a/src/gallium/state_trackers/dri/drisw.c b/src/gallium/state_trackers/dri/drisw.c
index 8d9acd6..5f69a2d 100644
--- a/src/gallium/state_trackers/dri/drisw.c
+++ b/src/gallium/state_trackers/dri/drisw.c
@@ -172,7 +172,7 @@ drisw_swap_buffers(__DRIdrawable *dPriv)
    ptex = drawable->textures[ST_ATTACHMENT_BACK_LEFT];
 
    if (ptex) {
-      if (ctx->pp && drawable->textures[ST_ATTACHMENT_DEPTH_STENCIL])
+      if (ctx->pp)
          pp_run(ctx->pp, ptex, ptex, drawable->textures[ST_ATTACHMENT_DEPTH_STENCIL]);
 
       ctx->st->flush(ctx->st, ST_FLUSH_FRONT, NULL);

commit 2e6ba6afdb62e80689b844c7267272d261db172c
Author: Park, Jeongmin <pjm0616@gmail.com>
Date:   Sat Feb 7 17:53:47 2015 +0900

    postprocess: Check for depth buffer in pp_jimenezmlaa
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88962
    Signed-off-by: Marek Olšák <marek.olsak@amd.com>

diff --git a/src/gallium/auxiliary/postprocess/pp_mlaa.c b/src/gallium/auxiliary/postprocess/pp_mlaa.c
index 9827b8c..147d14d 100644
--- a/src/gallium/auxiliary/postprocess/pp_mlaa.c
+++ b/src/gallium/auxiliary/postprocess/pp_mlaa.c
@@ -329,6 +329,9 @@ void
 pp_jimenezmlaa(struct pp_queue_t *ppq, struct pipe_resource *in,
                struct pipe_resource *out, unsigned int n)
 {
+   if (!ppq->depth) {
+      return;
+   }
    pp_jimenezmlaa_run(ppq, in, out, n, false);
 }
 

commit 8030e269e911c4f90a44d9a77eb342dd2657d229
Author: Ben Widawsky <benjamin.widawsky@intel.com>
Date:   Tue Dec 2 17:30:49 2014 -0800

    i965/vec4: Correct MUL destination hazard
    
    As it turns out, we were over-thinking the cause of the hang on
    Cherryview. It's simply errata for Cherryview.
    
    commit 88fea85f09e2252035bec66ab26c375b45b000f5
    Author: Ben Widawsky <benjamin.widawsky@intel.com>
    Date:   Fri Nov 21 10:47:41 2014 -0800
    
        i965/vec4/gen8: Handle the MUL dest hazard exception
    
    This is an explanation to why we never saw the hang on BDW.
    
    NOTE: The problem the original patch was trying to fix does still exist. It will
    have to be fixed at some point.
    
    v2: Modify commit message, s/CHV/BDW
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84212
    Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
    Reviewed-by: Matt Turner <mattst88@gmail.com>

diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index 8988196..98fad6c 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -822,11 +822,11 @@ vec4_visitor::is_dep_ctrl_unsafe(const vec4_instruction *inst)
    (reg.type == BRW_REGISTER_TYPE_UD || \
     reg.type == BRW_REGISTER_TYPE_D)
 
-   /* From the destination hazard section of the spec:
-    * > Instructions other than send, may use this control as long as operations
-    * > that have different pipeline latencies are not mixed.
+   /* "When source or destination datatype is 64b or operation is integer DWord
+    * multiply, DepCtrl must not be used."
+    * May apply to future SoCs as well.
     */
-   if (brw->gen >= 8) {
+   if (brw->is_cherryview) {
       if (inst->opcode == BRW_OPCODE_MUL &&
          IS_DWORD(inst->src[0]) &&
          IS_DWORD(inst->src[1]))

commit e660f0dd807d028c8088c5c9bedf64a8bebc361b
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Sat Feb 7 00:51:08 2015 +0000

    docs: add news item and link release notes for mesa 10.4.4
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/docs/index.html b/docs/index.html
index 61c5017..15306ce 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -16,6 +16,12 @@
 
 <h1>News</h1>
 
+<h2>February 06, 2015</h2>
+<p>
+<a href="relnotes/10.4.4.html">Mesa 10.4.4</a> is released.
+This is a bug-fix release.
+</p>
+
 <h2>January 24, 2015</h2>
 <p>
 <a href="relnotes/10.4.3.html">Mesa 10.4.3</a> is released.
diff --git a/docs/relnotes.html b/docs/relnotes.html
index bfd86b9..0053919 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -21,6 +21,7 @@ The release notes summarize what's new or changed in each Mesa release.
 </p>
 
 <ul>
+<li><a href="relnotes/10.4.4.html">10.4.4 release notes</a>
 <li><a href="relnotes/10.4.3.html">10.4.3 release notes</a>
 <li><a href="relnotes/10.4.2.html">10.4.2 release notes</a>
 <li><a href="relnotes/10.3.7.html">10.3.7 release notes</a>

commit d8278be3109bf2f83e354967123177f097c4fecc
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Sat Feb 7 00:47:18 2015 +0000

    docs: Add sha256 sums for the 10.4.4 release
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit 54da987baec25fbaf6975c93f197ddbfe65a303c)

diff --git a/docs/relnotes/10.4.4.html b/docs/relnotes/10.4.4.html
index ae4dfd6..6f33523 100644
--- a/docs/relnotes/10.4.4.html
+++ b/docs/relnotes/10.4.4.html
@@ -30,7 +30,9 @@ because compatibility contexts are not supported.
 
 <h2>SHA256 checksums</h2>
 <pre>
-TBD
+5cb427eaf980cb8555953e9928f5797979ed783e277745d5f8cbae8bc5364086  MesaLib-10.4.4.tar.gz
+f18a967e9c4d80e054b2fdff8c130ce6e6d1f8eecfc42c9f354f8628d8b4df1c  MesaLib-10.4.4.tar.bz2
+86baad73b77920c80fe58402a905e7dd17e3ea10ead6ea7d3afdc0a56c860bd7  MesaLib-10.4.4.zip
 </pre>
 
 <h2>New features</h2>

commit 7d796a59de79c6fe1b3c2d01ef5ff005100ced28
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Sat Feb 7 00:17:09 2015 +0000

    Add release notes for the 10.4.4 release
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit 62eb27ac8bbd979796f50e253f6c786d7d791242)

diff --git a/docs/relnotes/10.4.4.html b/docs/relnotes/10.4.4.html
new file mode 100644
index 0000000..ae4dfd6
--- /dev/null
+++ b/docs/relnotes/10.4.4.html
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <title>Mesa Release Notes</title>
+  <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+  <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.4.4 Release Notes / February 06, 2015</h1>
+
+<p>
+Mesa 10.4.4 is a bug fix release which fixes bugs found since the 10.4.3 release.
+</p>
+<p>
+Mesa 10.4.4 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+<h2>SHA256 checksums</h2>
+<pre>
+TBD
+</pre>
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88662";>Bug 88662</a> - unaligned access to gl_dlist_node</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88930";>Bug 88930</a> - [osmesa] osbuffer-&gt;textures should be indexed by attachment type</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Brian Paul (1):</p>
+<ul>
+  <li>mesa: fix display list 8-byte alignment issue</li>
+</ul>
+
+<p>Emil Velikov (2):</p>
+<ul>
+  <li>docs: Add sha256 sums for the 10.4.3 release</li>
+  <li>Update version to 10.4.4</li>
+</ul>
+
+<p>José Fonseca (1):</p>
+<ul>
+  <li>egl: Pass the correct X visual depth to xcb_put_image().</li>
+</ul>
+
+<p>Mario Kleiner (1):</p>
+<ul>
+  <li>glx/dri3: Request non-vsynced Present for swapinterval zero. (v3)</li>
+</ul>
+
+<p>Matt Turner (1):</p>
+<ul>
+  <li>gallium/util: Don't use __builtin_clrsb in util_last_bit().</li>
+</ul>
+
+<p>Niels Ole Salscheider (1):</p>
+<ul>
+  <li>configure: Link against all LLVM targets when building clover</li>
+</ul>
+
+<p>Park, Jeongmin (1):</p>
+<ul>
+  <li>st/osmesa: Fix osbuffer-&gt;textures indexing</li>
+</ul>
+
+<p>Ville Syrjälä (1):</p>
+<ul>
+  <li>i965: Fix max_wm_threads for CHV</li>
+</ul>
+
+
+</div>
+</body>
+</html>

commit bff4cbdafaca5825f8985c93c3c0646f9c4b7649
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jan 30 14:03:14 2015 -0800

    nir: Fix broken fsat recognizer.
    
    We've probably never seen this ridiculous pattern in the wild, so it
    didn't matter.
    
    Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
    Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>

diff --git a/src/glsl/nir/nir_opt_algebraic.py b/src/glsl/nir/nir_opt_algebraic.py
index 9b40d48..a5fe19a 100644
--- a/src/glsl/nir/nir_opt_algebraic.py
+++ b/src/glsl/nir/nir_opt_algebraic.py
@@ -82,7 +82,7 @@ optimizations = [
    (('feq', ('fadd', a, b), 0.0), ('feq', a, ('fneg', b))),
    (('fne', ('fadd', a, b), 0.0), ('fne', a, ('fneg', b))),
    (('fge', ('fneg', ('fabs', a)), 0.0), ('feq', a, 0.0)),
-   (('fmin', ('fmax', a, 1.0), 0.0), ('fsat', a)),
+   (('fmin', ('fmax', a, 0.0), 1.0), ('fsat', a)),
    # Logical and bit operations
    (('fand', a, 0.0), 0.0),
    (('iand', a, a), a),

commit 6706537dd4d6794f71de4fe105ec99bc84b526e0
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Jan 27 16:42:38 2015 -0800

    nir: Slightly simplify algebraic code generation by reusing a struct.
    
    Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>

diff --git a/src/glsl/nir/nir_algebraic.py b/src/glsl/nir/nir_algebraic.py
index ea7f5fc..4929745 100644
--- a/src/glsl/nir/nir_algebraic.py
+++ b/src/glsl/nir/nir_algebraic.py
@@ -179,10 +179,7 @@ struct transform {
    ${xform.replace.render()}
 % endfor
 
-static const struct {
-   const nir_search_expression *search;
-   const nir_search_value *replace;
-} ${pass_name}_${opcode}_xforms[] = {
+static const struct transform ${pass_name}_${opcode}_xforms[] = {
 % for xform in xform_list:
    { &${xform.search.name}, ${xform.replace.c_ptr} },
 % endfor
@@ -211,8 +208,8 @@ ${pass_name}_block(nir_block *block, void *void_state)
       % for opcode in xform_dict.keys():
       case nir_op_${opcode}:
          for (unsigned i = 0; i < ARRAY_SIZE(${pass_name}_${opcode}_xforms); i++) {
-            if (nir_replace_instr(alu, ${pass_name}_${opcode}_xforms[i].search,
-                                  ${pass_name}_${opcode}_xforms[i].replace,
+            const struct transform *xform = &${pass_name}_${opcode}_xforms[i];
+            if (nir_replace_instr(alu, xform->search, xform->replace,
                                   state->mem_ctx)) {
                state->progress = true;
                break;

commit 9e35af08aff9ee08243fa8cbbda803dc6b95d00d
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Nov 10 14:26:14 2014 -0800

    tgsi/ureg: Add missing some missing opcodes opcode_tmp.h
    
    I wanted all of these for NIR-to-TGSI.
    
    Reviewed-by: Roland Scheidegger <sroland@vmware.com>

diff --git a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
index 147d989..d8752ce 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
@@ -90,6 +90,8 @@ OP12(DPH)
 OP11(COS)
 OP11(DDX)
 OP11(DDY)
+OP11(DDX_FINE)


Reply to: