aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/src')
-rw-r--r--mesalib/src/mapi/Android.mk75
-rw-r--r--mesalib/src/mesa/drivers/common/meta.c7
-rw-r--r--mesalib/src/mesa/drivers/dri/Makefile.am31
-rw-r--r--mesalib/src/mesa/drivers/dri/swrast/Makefile.am58
-rw-r--r--mesalib/src/mesa/drivers/dri/swrast/Makefile.sources11
-rw-r--r--mesalib/src/mesa/swrast/s_stencil.c6
6 files changed, 184 insertions, 4 deletions
diff --git a/mesalib/src/mapi/Android.mk b/mesalib/src/mapi/Android.mk
new file mode 100644
index 000000000..fe9e40e26
--- /dev/null
+++ b/mesalib/src/mapi/Android.mk
@@ -0,0 +1,75 @@
+# Mesa 3-D graphics library
+#
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
+# Copyright (C) 2010-2011 LunarG Inc.
+#
+# 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 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.
+
+# Android.mk for glapi
+
+LOCAL_PATH := $(call my-dir)
+
+# get MAPI_GLAPI_SOURCES
+include $(LOCAL_PATH)/mapi/sources.mak
+
+mapi_abi_headers :=
+
+# ---------------------------------------
+# Build libglapi
+# ---------------------------------------
+
+include $(CLEAR_VARS)
+
+abi_header := shared-glapi/glapi_mapi_tmp.h
+
+LOCAL_SRC_FILES := $(addprefix mapi/, $(MAPI_GLAPI_SOURCES))
+
+LOCAL_CFLAGS := \
+ -DMAPI_MODE_GLAPI \
+ -DMAPI_ABI_HEADER=\"$(abi_header)\"
+
+LOCAL_C_INCLUDES := \
+ $(MESA_TOP)/src/mapi
+
+LOCAL_MODULE := libglapi
+
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+intermediates := $(call local-intermediates-dir)
+abi_header := $(intermediates)/$(abi_header)
+LOCAL_GENERATED_SOURCES := $(abi_header)
+
+$(abi_header): PRIVATE_PRINTER := shared-glapi
+
+mapi_abi_headers += $(abi_header)
+
+include $(MESA_COMMON_MK)
+include $(BUILD_SHARED_LIBRARY)
+
+
+mapi_abi_deps := \
+ $(wildcard $(LOCAL_PATH)/glapi/gen/*.py) \
+ $(wildcard $(LOCAL_PATH)/glapi/gen/*.xml) \
+ $(LOCAL_PATH)/mapi/mapi_abi.py
+
+$(mapi_abi_headers): PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/mapi/mapi_abi.py
+$(mapi_abi_headers): PRIVATE_APIXML := $(LOCAL_PATH)/glapi/gen/gl_and_es_API.xml
+$(mapi_abi_headers): $(mapi_abi_deps)
+ @mkdir -p $(dir $@)
+ @echo "target $(PRIVATE_PRINTER): $(PRIVATE_MODULE) <= $(PRIVATE_APIXML)"
+ $(hide) $(PRIVATE_SCRIPT) --printer $(PRIVATE_PRINTER) --mode lib $(PRIVATE_APIXML) > $@
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;