diff options
Diffstat (limited to 'src/gallium/winsys')
| -rw-r--r-- | src/gallium/winsys/Makefile | 20 | ||||
| -rw-r--r-- | src/gallium/winsys/SConscript | 10 | ||||
| -rw-r--r-- | src/gallium/winsys/dri/Makefile.template | 11 | ||||
| -rw-r--r-- | src/gallium/winsys/dri/SConscript | 51 | ||||
| -rw-r--r-- | src/gallium/winsys/dri/intel/SConscript | 14 | ||||
| -rw-r--r-- | src/gallium/winsys/dri/intel/intel_batchpool.c | 15 | ||||
| -rw-r--r-- | src/gallium/winsys/xlib/Makefile | 93 | ||||
| -rw-r--r-- | src/gallium/winsys/xlib/SConscript | 34 | ||||
| -rw-r--r-- | src/gallium/winsys/xlib/brw_aub.c | 16 | 
9 files changed, 239 insertions, 25 deletions
diff --git a/src/gallium/winsys/Makefile b/src/gallium/winsys/Makefile new file mode 100644 index 0000000000..3dc5ea5744 --- /dev/null +++ b/src/gallium/winsys/Makefile @@ -0,0 +1,20 @@ +TOP = ../../.. +include $(TOP)/configs/current + + +SUBDIRS = $(GALLIUM_WINSYS_DIRS) + + +default: subdirs + + +subdirs: +	@for dir in $(SUBDIRS) ; do \ +		if [ -d $$dir ] ; then \ +			(cd $$dir && $(MAKE)) || exit 1 ; \ +		fi \ +	done + + +clean: +	rm -f `find . -name \*.[oa]` diff --git a/src/gallium/winsys/SConscript b/src/gallium/winsys/SConscript new file mode 100644 index 0000000000..32215d8d58 --- /dev/null +++ b/src/gallium/winsys/SConscript @@ -0,0 +1,10 @@ +Import('*') + +if dri: +	SConscript([ +		'dri/SConscript', +	]) +else: +	SConscript([ +		'xlib/SConscript', +	]) diff --git a/src/gallium/winsys/dri/Makefile.template b/src/gallium/winsys/dri/Makefile.template index 2a261ed669..3bc1fdd4d4 100644 --- a/src/gallium/winsys/dri/Makefile.template +++ b/src/gallium/winsys/dri/Makefile.template @@ -1,7 +1,9 @@  # -*-makefile-*- -MESA_MODULES = $(TOP)/src/mesa/libmesa.a - +MESA_MODULES = \ +	$(TOP)/src/mesa/libmesa.a \ +	$(GALLIUM_AUXILIARIES) +	  COMMON_GALLIUM_SOURCES = \          $(TOP)/src/mesa/drivers/dri/common/utils.c \          $(TOP)/src/mesa/drivers/dri/common/vblank.c \ @@ -23,8 +25,9 @@ WINOBJ=  WINLIB=  INCLUDES = $(SHARED_INCLUDES) $(EXPAT_INCLUDES) -OBJECTS = $(C_SOURCES:.c=.o) \ -	  $(ASM_SOURCES:.S=.o)  +OBJECTS = \ +	$(C_SOURCES:.c=.o) \ +	$(ASM_SOURCES:.S=.o)   else  # miniglx diff --git a/src/gallium/winsys/dri/SConscript b/src/gallium/winsys/dri/SConscript new file mode 100644 index 0000000000..8c56ce917c --- /dev/null +++ b/src/gallium/winsys/dri/SConscript @@ -0,0 +1,51 @@ +Import('*') + +drienv = env.Clone() + +drienv.Replace(CPPPATH = [ +	'#src/mesa/drivers/dri/common', +	'#include', +	'#include/GL/internal', +	'#src/gallium/include', +	'#src/gallium/auxiliary', +	'#src/gallium/drivers', +	'#src/mesa', +	'#src/mesa/main', +	'#src/mesa/glapi', +	'#src/mesa/math', +	'#src/mesa/transform', +	'#src/mesa/shader', +	'#src/mesa/swrast', +	'#src/mesa/swrast_setup', +	'#src/egl/main', +	'#src/egl/drivers/dri', +]) + +drienv.ParseConfig('pkg-config --cflags --libs libdrm') + +COMMON_GALLIUM_SOURCES = [ +	'#src/mesa/drivers/dri/common/utils.c', +	'#src/mesa/drivers/dri/common/vblank.c', +	'#src/mesa/drivers/dri/common/dri_util.c', +	'#src/mesa/drivers/dri/common/xmlconfig.c', +] + +COMMON_BM_SOURCES = [ +	'#src/mesa/drivers/dri/common/dri_bufmgr.c', +	'#src/mesa/drivers/dri/common/dri_drmpool.c', +] + +Export([ +	'drienv', +	'COMMON_GALLIUM_SOURCES', +	'COMMON_BM_SOURCES', +]) + +# TODO: Installation +#install: $(LIBNAME) +#	$(INSTALL) -d $(DRI_DRIVER_INSTALL_DIR) +#	$(INSTALL) -m 755 $(LIBNAME) $(DRI_DRIVER_INSTALL_DIR) + +SConscript([ +	'intel/SConscript', +]) diff --git a/src/gallium/winsys/dri/intel/SConscript b/src/gallium/winsys/dri/intel/SConscript index a7cc10450e..0ad19d42a8 100644 --- a/src/gallium/winsys/dri/intel/SConscript +++ b/src/gallium/winsys/dri/intel/SConscript @@ -9,11 +9,6 @@ env.Append(CPPPATH = [  #MINIGLX_SOURCES = server/intel_dri.c -pipe_drivers = [ -	softpipe, -	i915simple -] -  DRIVER_SOURCES = [  	'intel_winsys_pipe.c',  	'intel_winsys_softpipe.c', @@ -31,11 +26,14 @@ sources = \  	COMMON_BM_SOURCES + \  	DRIVER_SOURCES -# DRIVER_DEFINES = -I../intel $(shell pkg-config libdrm --atleast-version=2.3.1 \ -#				&& echo "-DDRM_VBLANK_FLIP=DRM_VBLANK_FLIP") +drivers = [ +	softpipe, +	i915simple +] +# TODO: write a wrapper function http://www.scons.org/wiki/WrapperFunctions  env.SharedLibrary(  	target ='i915tex_dri.so',  	source = sources, -	LIBS = pipe_drivers + env['LIBS'], +	LIBS = drivers + mesa + auxiliaries + env['LIBS'],  )
\ No newline at end of file diff --git a/src/gallium/winsys/dri/intel/intel_batchpool.c b/src/gallium/winsys/dri/intel/intel_batchpool.c index 33b56817f6..ce154c7b88 100644 --- a/src/gallium/winsys/dri/intel/intel_batchpool.c +++ b/src/gallium/winsys/dri/intel/intel_batchpool.c @@ -36,9 +36,12 @@  #include <xf86drm.h>  #include <stdlib.h> +#include <stdio.h>  #include <errno.h> -#include "imports.h" -#include "glthread.h" + +#include "pipe/p_compiler.h" +#include "pipe/p_thread.h" +  #include "dri_bufpool.h"  #include "dri_bufmgr.h"  #include "intel_batchpool.h" @@ -196,7 +199,7 @@ pool_create(struct _DriBufferPool *pool,     _glthread_LOCK_MUTEX(p->mutex);     if (p->numFree == 0) -      pool_checkFree(p, GL_TRUE); +      pool_checkFree(p, TRUE);     if (p->numFree == 0) {        fprintf(stderr, "Out of fixed size buffer objects\n"); @@ -278,7 +281,7 @@ pool_map(struct _DriBufferPool *pool, void *private, unsigned flags,        return -EBUSY;     } -   buf->mapped = GL_TRUE; +   buf->mapped = TRUE;     *virtual = (unsigned char *) p->virtual + buf->start;     _glthread_UNLOCK_MUTEX(p->mutex);     return 0; @@ -361,7 +364,7 @@ pool_validate(struct _DriBufferPool *pool, void *private)     BBuf *buf = (BBuf *) private;     BPool *p = buf->parent;     _glthread_LOCK_MUTEX(p->mutex); -   buf->unfenced = GL_TRUE; +   buf->unfenced = TRUE;     _glthread_UNLOCK_MUTEX(p->mutex);     return 0;  } @@ -379,7 +382,7 @@ pool_takedown(struct _DriBufferPool *pool)     while ((p->numFree < p->numTot) && p->numDelayed) {        _glthread_UNLOCK_MUTEX(p->mutex);        sched_yield(); -      pool_checkFree(p, GL_TRUE); +      pool_checkFree(p, TRUE);        _glthread_LOCK_MUTEX(p->mutex);     } diff --git a/src/gallium/winsys/xlib/Makefile b/src/gallium/winsys/xlib/Makefile new file mode 100644 index 0000000000..c443330942 --- /dev/null +++ b/src/gallium/winsys/xlib/Makefile @@ -0,0 +1,93 @@ +# src/gallium/winsys/xlib/Makefile + +TOP = ../../../.. +include $(TOP)/configs/current + + +GL_MAJOR = 1 +GL_MINOR = 5 +GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY) + + +INCLUDE_DIRS = \ +	-I$(TOP)/include \ +	-I$(TOP)/src/mesa \ +	-I$(TOP)/src/mesa/main \ +	-I$(TOP)/src/gallium/include \ +	-I$(TOP)/src/gallium/drivers \ +	-I$(TOP)/src/gallium/auxiliary + +XLIB_WINSYS_SOURCES = \ +	glxapi.c	\ +	fakeglx.c	\ +	xfonts.c	\ +	xm_api.c	\ +	xm_winsys.c	\ +	xm_winsys_aub.c	\ +	brw_aub.c + +XLIB_WINSYS_OBJECTS = $(XLIB_WINSYS_SOURCES:.c=.o) + + +ifeq ($(CONFIG_NAME), linux-cell) +# The SPU code is in a separate .a file, unfortunately +CELL_SPU_LIB = $(TOP)/src/gallium/drivers/cell/spu/g3d_spu.a +endif + +LIBS = \ +	$(GALLIUM_DRIVERS) \ +	$(TOP)/src/mesa/libglapi.a \ +	$(TOP)/src/mesa/libmesa.a \ +	$(GALLIUM_AUXILIARIES) \ +	$(CELL_SPU_LIB) \ + + +.SUFFIXES : .cpp + +.c.o: +	$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + +.cpp.o: +	$(CXX) -c $(INCLUDE_DIRS) $(CXXFLAGS) $< -o $@ + + + +default: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) + + +# Make the libGL.so library +$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(XLIB_WINSYS_OBJECTS) $(LIBS) +	$(TOP)/bin/mklib -o $(GL_LIB) \ +		-linker "$(CC)" \ +		-major $(GL_MAJOR) -minor $(GL_MINOR) -patch $(GL_TINY) \ +		-install $(TOP)/$(LIB_DIR) \ +		$(MKLIB_OPTIONS) $(XLIB_WINSYS_OBJECTS) \ +		--start-group $(LIBS) --end-group $(GL_LIB_DEPS) + + +depend: $(ALL_SOURCES) +	@ echo "running $(MKDEP)" +	@ rm -f depend  # workaround oops on gutsy?!? +	@ touch depend +	@ $(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) $(ALL_SOURCES) \ +		> /dev/null 2>/dev/null + + +install: default +	$(INSTALL) -d $(INSTALL_DIR)/include/GL +	$(INSTALL) -d $(INSTALL_DIR)/$(LIB_DIR) +	$(INSTALL) -m 644 $(TOP)/include/GL/*.h $(INSTALL_DIR)/include/GL +	@if [ -e $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) ]; then \ +		$(INSTALL) $(TOP)/$(LIB_DIR)/libGL* $(INSTALL_DIR)/$(LIB_DIR); \ +	fi + + +# Emacs tags +tags: +	etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h + +clean: +	-rm -f *.o + + +include depend diff --git a/src/gallium/winsys/xlib/SConscript b/src/gallium/winsys/xlib/SConscript new file mode 100644 index 0000000000..c38b5be52c --- /dev/null +++ b/src/gallium/winsys/xlib/SConscript @@ -0,0 +1,34 @@ +####################################################################### +# SConscript for xlib winsys + +Import('*') + +env = env.Clone() + +env.Append(CPPPATH = [ +	'#/src/mesa', +	'#/src/mesa/main', +]) + +sources = [ +	'glxapi.c', +	'fakeglx.c', +	'xfonts.c', +	'xm_api.c', +	'xm_winsys.c', +	'xm_winsys_aub.c', +	'brw_aub.c', +] +	 +drivers = [ +	softpipe, +	i915simple, +	i965simple, +] + +# TODO: write a wrapper function http://www.scons.org/wiki/WrapperFunctions +env.SharedLibrary( +	target ='GL', +	source = sources, +	LIBS = glapi + mesa + drivers + auxiliaries + env['LIBS'], +) diff --git a/src/gallium/winsys/xlib/brw_aub.c b/src/gallium/winsys/xlib/brw_aub.c index 541d50c6e4..10eedd8402 100644 --- a/src/gallium/winsys/xlib/brw_aub.c +++ b/src/gallium/winsys/xlib/brw_aub.c @@ -29,11 +29,13 @@    *   Keith Whitwell <keith@tungstengraphics.com>    */ +#include <stdio.h> +#include <stdlib.h>  #include "brw_aub.h"  #include "pipe/p_context.h"  #include "pipe/p_state.h" -#include "imports.h" -//#include "intel_winsys.h" +#include "pipe/p_util.h" +#include "pipe/p_debug.h"  struct brw_aubfile { @@ -350,9 +352,9 @@ struct brw_aubfile *brw_aubfile_create( void )     i++; -   if (_mesa_getenv("INTEL_AUBFILE")) { -      val = snprintf(filename, sizeof(filename), "%s%d.aub", _mesa_getenv("INTEL_AUBFILE"), i%4); -      _mesa_printf("--> Aub file: %s\n", filename); +   if (getenv("INTEL_AUBFILE")) { +      val = snprintf(filename, sizeof(filename), "%s%d.aub", getenv("INTEL_AUBFILE"), i%4); +      debug_printf("--> Aub file: %s\n", filename);        aubfile->file = fopen(filename, "w");     }     else { @@ -360,12 +362,12 @@ struct brw_aubfile *brw_aubfile_create( void )        if (val < 0 || val > sizeof(filename))   	 strcpy(filename, "default.aub");    -      _mesa_printf("--> Aub file: %s\n", filename); +      debug_printf("--> Aub file: %s\n", filename);        aubfile->file = fopen(filename, "w");     }     if (!aubfile->file) { -      _mesa_printf("couldn't open aubfile\n"); +      debug_printf("couldn't open aubfile\n");        exit(1);     }  | 
