summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--src/mesa/drivers/dri/Makefile.am4
-rw-r--r--src/mesa/drivers/dri/i915/Makefile.am18
-rw-r--r--src/mesa/drivers/dri/i915/intel_context.c2
-rw-r--r--src/mesa/drivers/dri/i915/intel_mipmap_tree.h1
-rw-r--r--src/mesa/drivers/dri/i915/intel_screen.c17
-rw-r--r--src/mesa/drivers/dri/i915/intel_screen.h103
7 files changed, 126 insertions, 21 deletions
diff --git a/configure.ac b/configure.ac
index c352cf5a536..2fcfd68faa2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1039,7 +1039,7 @@ fi
enable_dricore=no
enable_megadriver=no
for driver in $DRI_DIRS; do
- if test $driver != "i965" -a $driver != "nouveau"; then
+ if test $driver != "i965" -a $driver != "nouveau" -a $driver != "i915"; then
enable_dricore=yes
else
enable_megadriver=yes
diff --git a/src/mesa/drivers/dri/Makefile.am b/src/mesa/drivers/dri/Makefile.am
index d69bf38b535..33268408668 100644
--- a/src/mesa/drivers/dri/Makefile.am
+++ b/src/mesa/drivers/dri/Makefile.am
@@ -7,7 +7,9 @@ MEGADRIVERS_DEPS =
SUBDIRS+=common
if HAVE_I915_DRI
-SUBDIRS+=i915
+SUBDIRS += i915
+MEGADRIVERS_DEPS += i915/libi915_dri.la
+MEGADRIVERS += i915_dri.so
endif
if HAVE_I965_DRI
diff --git a/src/mesa/drivers/dri/i915/Makefile.am b/src/mesa/drivers/dri/i915/Makefile.am
index b07ad138798..ac49360a9cd 100644
--- a/src/mesa/drivers/dri/i915/Makefile.am
+++ b/src/mesa/drivers/dri/i915/Makefile.am
@@ -35,18 +35,6 @@ AM_CFLAGS = \
$(VISIBILITY_CFLAGS) \
$(INTEL_CFLAGS)
-dridir = $(DRI_DRIVER_INSTALL_DIR)
-dri_LTLIBRARIES = i915_dri.la
-
-i915_dri_la_SOURCES = $(i915_FILES)
-i915_dri_la_LDFLAGS = $(DRI_DRIVER_LDFLAGS)
-i915_dri_la_LIBADD = \
- ../common/libdricommon.la \
- $(DRI_LIB_DEPS) \
- $(INTEL_LIBS)
-
-# 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: i915_dri.la
- $(MKDIR_P) $(top_builddir)/$(LIB_DIR);
- ln -f .libs/i915_dri.so $(top_builddir)/$(LIB_DIR)/i915_dri.so;
+noinst_LTLIBRARIES = libi915_dri.la
+libi915_dri_la_SOURCES = $(i915_FILES)
+libi915_dri_la_LIBADD = $(INTEL_LIBS)
diff --git a/src/mesa/drivers/dri/i915/intel_context.c b/src/mesa/drivers/dri/i915/intel_context.c
index d25358b39a7..2748514b248 100644
--- a/src/mesa/drivers/dri/i915/intel_context.c
+++ b/src/mesa/drivers/dri/i915/intel_context.c
@@ -58,9 +58,7 @@
#include "utils.h"
#include "../glsl/ralloc.h"
-#ifndef INTEL_DEBUG
int INTEL_DEBUG = (0);
-#endif
static const GLubyte *
diff --git a/src/mesa/drivers/dri/i915/intel_mipmap_tree.h b/src/mesa/drivers/dri/i915/intel_mipmap_tree.h
index 2b2a644c20b..1142af60bb7 100644
--- a/src/mesa/drivers/dri/i915/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/i915/intel_mipmap_tree.h
@@ -30,6 +30,7 @@
#include <assert.h>
+#include "intel_screen.h"
#include "intel_regions.h"
#ifdef __cplusplus
diff --git a/src/mesa/drivers/dri/i915/intel_screen.c b/src/mesa/drivers/dri/i915/intel_screen.c
index 49bae5d67f8..3f547524514 100644
--- a/src/mesa/drivers/dri/i915/intel_screen.c
+++ b/src/mesa/drivers/dri/i915/intel_screen.c
@@ -1190,7 +1190,7 @@ intelReleaseBuffer(__DRIscreen *screen, __DRIbuffer *buffer)
}
-const struct __DriverAPIRec driDriverAPI = {
+static const struct __DriverAPIRec i915_driver_api = {
.InitScreen = intelInitScreen2,
.DestroyScreen = intelDestroyScreen,
.CreateContext = intelCreateContext,
@@ -1203,10 +1203,23 @@ const struct __DriverAPIRec driDriverAPI = {
.ReleaseBuffer = intelReleaseBuffer
};
+static const struct __DRIDriverVtableExtensionRec i915_vtable = {
+ .base = { __DRI_DRIVER_VTABLE, 1 },
+ .vtable = &i915_driver_api,
+};
+
/* This is the table of extensions that the loader will dlsym() for. */
-PUBLIC const __DRIextension *__driDriverExtensions[] = {
+static const __DRIextension *i915_driver_extensions[] = {
&driCoreExtension.base,
&driDRI2Extension.base,
+ &i915_vtable.base,
&i915_config_options.base,
NULL
};
+
+PUBLIC const __DRIextension **__driDriverGetExtensions_i915(void)
+{
+ globalDriverAPI = &i915_driver_api;
+
+ return i915_driver_extensions;
+}
diff --git a/src/mesa/drivers/dri/i915/intel_screen.h b/src/mesa/drivers/dri/i915/intel_screen.h
index 331ce90f7aa..4ae259cccdf 100644
--- a/src/mesa/drivers/dri/i915/intel_screen.h
+++ b/src/mesa/drivers/dri/i915/intel_screen.h
@@ -55,10 +55,113 @@ struct intel_screen
driOptionCache optionCache;
};
+/* These defines are to ensure that i915_dri's symbols don't conflict with
+ * i965's when linked together.
+ */
+#define intel_region_alloc old_intel_region_alloc
+#define intel_region_alloc_for_fd old_intel_region_alloc_for_fd
+#define intel_region_alloc_for_handle old_intel_region_alloc_for_handle
+#define intel_region_flink old_intel_region_flink
+#define intel_region_get_aligned_offset old_intel_region_get_aligned_offset
+#define intel_region_get_tile_masks old_intel_region_get_tile_masks
+#define intel_region_reference old_intel_region_reference
+#define intel_region_release old_intel_region_release
+#define intel_bufferobj_buffer old_intel_bufferobj_buffer
+#define intel_bufferobj_source old_intel_bufferobj_source
+#define intelInitBufferObjectFuncs old_intelInitBufferObjectFuncs
+#define intel_upload_data old_intel_upload_data
+#define intel_upload_finish old_intel_upload_finish
+#define intel_batchbuffer_data old_intel_batchbuffer_data
+#define intel_batchbuffer_emit_mi_flush old_intel_batchbuffer_emit_mi_flush
+#define intel_batchbuffer_emit_reloc old_intel_batchbuffer_emit_reloc
+#define intel_batchbuffer_emit_reloc_fenced old_intel_batchbuffer_emit_reloc_fenced
+#define _intel_batchbuffer_flush old__intel_batchbuffer_flush
+#define intel_batchbuffer_free old_intel_batchbuffer_free
+#define intel_batchbuffer_init old_intel_batchbuffer_init
+#define intelInitClearFuncs old_intelInitClearFuncs
+#define intelInitExtensions old_intelInitExtensions
+#define intel_miptree_copy_teximage old_intel_miptree_copy_teximage
+#define intel_miptree_create old_intel_miptree_create
+#define intel_miptree_create_for_bo old_intel_miptree_create_for_bo
+#define intel_miptree_create_for_dri2_buffer old_intel_miptree_create_for_dri2_buffer
+#define intel_miptree_create_for_renderbuffer old_intel_miptree_create_for_renderbuffer
+#define intel_miptree_create_layout old_intel_miptree_create_layout
+#define intel_miptree_get_dimensions_for_image old_intel_miptree_get_dimensions_for_image
+#define intel_miptree_get_image_offset old_intel_miptree_get_image_offset
+#define intel_miptree_get_tile_offsets old_intel_miptree_get_tile_offsets
+#define intel_miptree_map old_intel_miptree_map
+#define intel_miptree_map_raw old_intel_miptree_map_raw
+#define intel_miptree_match_image old_intel_miptree_match_image
+#define intel_miptree_reference old_intel_miptree_reference
+#define intel_miptree_release old_intel_miptree_release
+#define intel_miptree_set_image_offset old_intel_miptree_set_image_offset
+#define intel_miptree_set_level_info old_intel_miptree_set_level_info
+#define intel_miptree_unmap old_intel_miptree_unmap
+#define intel_miptree_unmap_raw old_intel_miptree_unmap_raw
+#define i945_miptree_layout_2d old_i945_miptree_layout_2d
+#define intel_get_texture_alignment_unit old_intel_get_texture_alignment_unit
+#define intelInitTextureImageFuncs old_intelInitTextureImageFuncs
+#define intel_miptree_create_for_teximage old_intel_miptree_create_for_teximage
+#define intelSetTexBuffer old_intelSetTexBuffer
+#define intelSetTexBuffer2 old_intelSetTexBuffer2
+#define intelInitTextureSubImageFuncs old_intelInitTextureSubImageFuncs
+#define intelInitTextureCopyImageFuncs old_intelInitTextureCopyImageFuncs
+#define intel_finalize_mipmap_tree old_intel_finalize_mipmap_tree
+#define intelInitTextureFuncs old_intelInitTextureFuncs
+#define intel_check_blit_fragment_ops old_intel_check_blit_fragment_ops
+#define intelInitPixelFuncs old_intelInitPixelFuncs
+#define intelBitmap old_intelBitmap
+#define intelCopyPixels old_intelCopyPixels
+#define intelDrawPixels old_intelDrawPixels
+#define intelReadPixels old_intelReadPixels
+#define intel_check_front_buffer_rendering old_intel_check_front_buffer_rendering
+#define intelInitBufferFuncs old_intelInitBufferFuncs
+#define intelClearWithBlit old_intelClearWithBlit
+#define intelEmitCopyBlit old_intelEmitCopyBlit
+#define intelEmitImmediateColorExpandBlit old_intelEmitImmediateColorExpandBlit
+#define intel_emit_linear_blit old_intel_emit_linear_blit
+#define intel_miptree_blit old_intel_miptree_blit
+#define i945_miptree_layout old_i945_miptree_layout
+#define intel_init_texture_formats old_intel_init_texture_formats
+#define intelCalcViewport old_intelCalcViewport
+#define INTEL_DEBUG old_INTEL_DEBUG
+#define intelDestroyContext old_intelDestroyContext
+#define intelFinish old_intelFinish
+#define _intel_flush old__intel_flush
+#define intel_flush_rendering_to_batch old_intel_flush_rendering_to_batch
+#define intelInitContext old_intelInitContext
+#define intelInitDriverFunctions old_intelInitDriverFunctions
+#define intelMakeCurrent old_intelMakeCurrent
+#define intel_prepare_render old_intel_prepare_render
+#define intelUnbindContext old_intelUnbindContext
+#define intel_update_renderbuffers old_intel_update_renderbuffers
+#define aub_dump_bmp old_aub_dump_bmp
+#define get_time old_get_time
+#define intel_translate_blend_factor old_intel_translate_blend_factor
+#define intel_translate_compare_func old_intel_translate_compare_func
+#define intel_translate_logic_op old_intel_translate_logic_op
+#define intel_translate_shadow_compare_func old_intel_translate_shadow_compare_func
+#define intel_translate_stencil_op old_intel_translate_stencil_op
+#define intel_init_syncobj_functions old_intel_init_syncobj_functions
+#define intelChooseRenderState old_intelChooseRenderState
+#define intelFallback old_intelFallback
+#define intel_finish_vb old_intel_finish_vb
+#define intel_flush_prim old_intel_flush_prim
+#define intel_get_prim_space old_intel_get_prim_space
+#define intelInitTriFuncs old_intelInitTriFuncs
+#define intel_set_prim old_intel_set_prim
+#define intel_create_private_renderbuffer old_intel_create_private_renderbuffer
+#define intel_create_renderbuffer old_intel_create_renderbuffer
+#define intel_fbo_init old_intel_fbo_init
+#define intel_get_rb_region old_intel_get_rb_region
+#define intel_renderbuffer_set_draw_offset old_intel_renderbuffer_set_draw_offset
+
extern void intelDestroyContext(__DRIcontext * driContextPriv);
extern GLboolean intelUnbindContext(__DRIcontext * driContextPriv);
+const __DRIextension **__driDriverGetExtensions_i915(void);
+
extern GLboolean
intelMakeCurrent(__DRIcontext * driContextPriv,
__DRIdrawable * driDrawPriv,