diff options
Diffstat (limited to 'mesalib/src/mesa')
-rw-r--r-- | mesalib/src/mesa/drivers/common/meta.c | 7 | ||||
-rw-r--r-- | mesalib/src/mesa/drivers/dri/Makefile.am | 31 | ||||
-rw-r--r-- | mesalib/src/mesa/drivers/dri/swrast/Makefile.am | 58 | ||||
-rw-r--r-- | mesalib/src/mesa/drivers/dri/swrast/Makefile.sources | 11 | ||||
-rw-r--r-- | mesalib/src/mesa/swrast/s_stencil.c | 6 |
5 files changed, 109 insertions, 4 deletions
diff --git a/mesalib/src/mesa/drivers/common/meta.c b/mesalib/src/mesa/drivers/common/meta.c index dca3613a6..05cc712cf 100644 --- a/mesalib/src/mesa/drivers/common/meta.c +++ b/mesalib/src/mesa/drivers/common/meta.c @@ -1451,7 +1451,12 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx, struct vertex verts[4]; GLboolean newTex; - if (srcW > maxTexSize || srcH > maxTexSize) { + /* In addition to falling back if the blit size is larger than the maximum + * texture size, fallback if the source is multisampled. This fallback can + * be removed once Mesa gets support ARB_texture_multisample. + */ + if (srcW > maxTexSize || srcH > maxTexSize + || ctx->ReadBuffer->Visual.samples > 0) { /* XXX avoid this fallback */ _swrast_BlitFramebuffer(ctx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); diff --git a/mesalib/src/mesa/drivers/dri/Makefile.am b/mesalib/src/mesa/drivers/dri/Makefile.am new file mode 100644 index 000000000..3722082eb --- /dev/null +++ b/mesalib/src/mesa/drivers/dri/Makefile.am @@ -0,0 +1,31 @@ +SUBDIRS= + +if HAVE_I915_DRI +SUBDIRS+=i915 +endif + +if HAVE_I965_DRI +SUBDIRS+=i965 +endif + +if HAVE_NOUVEAU_DRI +SUBDIRS+=nouveau +endif + +if HAVE_R200_DRI +SUBDIRS+=r200 +endif + +if HAVE_RADEON_DRI +SUBDIRS+=radeon +endif + +if HAVE_SWRAST_DRI +SUBDIRS+=swrast +endif + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = dri.pc + +driincludedir = $(includedir)/GL/internal +driinclude_HEADERS = $(top_srcdir)/include/GL/internal/dri_interface.h diff --git a/mesalib/src/mesa/drivers/dri/swrast/Makefile.am b/mesalib/src/mesa/drivers/dri/swrast/Makefile.am new file mode 100644 index 000000000..0a2800440 --- /dev/null +++ b/mesalib/src/mesa/drivers/dri/swrast/Makefile.am @@ -0,0 +1,58 @@ + + +# Copyright © 2012 Matt Turner <mattst88@gmail.com> +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +include Makefile.sources + +# Hack to make some of the non-automake variables work. +TOP=$(top_builddir) + +AM_CFLAGS = \ + -D__NOT_HAVE_DRM_H \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/src/ \ + -I$(top_srcdir)/src/mapi \ + -I$(top_srcdir)/src/mesa/ \ + -I$(top_srcdir)/src/mesa/drivers/dri/common \ + $(DEFINES) \ + $(ASM_FLAGS) \ + $(API_DEFINES) + +dridir = $(DRI_DRIVER_INSTALL_DIR) + +if HAVE_SWRAST_DRI +dri_LTLIBRARIES = swrast_dri.la +endif + +swrast_dri_la_SOURCES = \ + $(SWRAST_C_FILES) + +swrast_dri_la_LDFLAGS = -module -avoid-version -shared +swrast_dri_la_LIBADD = \ + $(DRI_LIB_DEPS) \ + $(DRICORE_LIB_DEPS) + +# Provide compatibility with scripts for the old Mesa build system for +# a while by putting a link to the driver into /lib of the build tree. +all-local: swrast_dri.la + $(MKDIR_P) $(top_builddir)/$(LIB_DIR); + ln -f .libs/swrast_dri.so $(top_builddir)/$(LIB_DIR)/swrast_dri.so; diff --git a/mesalib/src/mesa/drivers/dri/swrast/Makefile.sources b/mesalib/src/mesa/drivers/dri/swrast/Makefile.sources new file mode 100644 index 000000000..9de5cb823 --- /dev/null +++ b/mesalib/src/mesa/drivers/dri/swrast/Makefile.sources @@ -0,0 +1,11 @@ +SWRAST_DRIVER_FILES = \ + swrast.c \ + swrast_span.c + +SWRAST_COMMON_FILES = \ + ../common/utils.c \ + ../common/drisw_util.c + +SWRAST_C_FILES = \ + $(SWRAST_COMMON_FILES) \ + $(SWRAST_DRIVER_FILES) diff --git a/mesalib/src/mesa/swrast/s_stencil.c b/mesalib/src/mesa/swrast/s_stencil.c index dbcbd2be0..fb95ef14d 100644 --- a/mesalib/src/mesa/swrast/s_stencil.c +++ b/mesalib/src/mesa/swrast/s_stencil.c @@ -297,7 +297,7 @@ get_s8_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint i; if (rb->Format == MESA_FORMAT_S8) { - const GLuint rowStride = rb->RowStride; + const GLint rowStride = rb->RowStride; for (i = 0; i < count; i++) { if (x[i] >= 0 && y[i] >= 0 && x[i] < w && y[i] < h) { stencil[i] = *(map + y[i] * rowStride + x[i]); @@ -305,8 +305,8 @@ get_s8_values(struct gl_context *ctx, struct gl_renderbuffer *rb, } } else { - const GLuint bpp = _mesa_get_format_bytes(rb->Format); - const GLuint rowStride = rb->RowStride * bpp; + const GLint bpp = _mesa_get_format_bytes(rb->Format); + const GLint rowStride = rb->RowStride * bpp; for (i = 0; i < count; i++) { if (x[i] >= 0 && y[i] >= 0 && x[i] < w && y[i] < h) { const GLubyte *src = map + y[i] * rowStride + x[i] * bpp; |