Browse Source

Remove src/mesa and src/mesa/main from gallium source include paths.

tags/mesa_20090313
José Fonseca 18 years ago
parent
commit
b9da3791c9

+ 0
- 2
SConstruct View File

@@ -109,8 +109,6 @@ else:
# Includes
env.Append(CPPPATH = [
'#/include',
'#/src/mesa',
'#/src/mesa/main',
'#/src/gallium/include',
'#/src/gallium/auxiliary',
'#/src/gallium/drivers',

+ 0
- 2
src/gallium/Makefile.template View File

@@ -18,8 +18,6 @@ INCLUDES = \
-I$(TOP)/src/gallium/include \
-I$(TOP)/src/gallium/auxiliary \
-I$(TOP)/src/gallium/drivers \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
-I$(TOP)/include \
$(DRIVER_INCLUDES)


+ 1
- 2
src/gallium/auxiliary/draw/draw_vf_sse.c View File

@@ -26,9 +26,8 @@
*/


#include "simple_list.h"

#include "pipe/p_compiler.h"
#include "util/u_simple_list.h"

#include "draw_vf.h"


+ 1
- 2
src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c View File

@@ -34,13 +34,12 @@
*/


#include "linked_list.h"

#include "pipe/p_compiler.h"
#include "pipe/p_debug.h"
#include "pipe/p_winsys.h"
#include "pipe/p_thread.h"
#include "pipe/p_util.h"
#include "util/u_double_list.h"

#include "pb_buffer.h"
#include "pb_buffer_fenced.h"

+ 1
- 2
src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c View File

@@ -33,12 +33,11 @@
*/


#include "linked_list.h"

#include "pipe/p_defines.h"
#include "pipe/p_debug.h"
#include "pipe/p_thread.h"
#include "pipe/p_util.h"
#include "util/u_double_list.h"
#include "util/u_mm.h"
#include "pb_buffer.h"
#include "pb_bufmgr.h"

+ 1
- 2
src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c View File

@@ -35,13 +35,12 @@
*/


#include "linked_list.h"

#include "pipe/p_compiler.h"
#include "pipe/p_debug.h"
#include "pipe/p_thread.h"
#include "pipe/p_defines.h"
#include "pipe/p_util.h"
#include "util/u_double_list.h"

#include "pb_buffer.h"
#include "pb_bufmgr.h"

src/gallium/auxiliary/pipebuffer/linked_list.h → src/gallium/auxiliary/util/u_double_list.h View File

@@ -34,8 +34,8 @@
* be protected using an external mutex.
*/

#ifndef LINKED_LIST_H_
#define LINKED_LIST_H_
#ifndef _U_DOUBLE_LIST_H_
#define _U_DOUBLE_LIST_H_


#include <stddef.h>
@@ -88,4 +88,4 @@ struct list_head
((__type *)(((char *)(__item)) - offsetof(__type, __field)))


#endif /*LINKED_LIST_H_*/
#endif /*_U_DOUBLE_LIST_H_*/

+ 197
- 0
src/gallium/auxiliary/util/u_simple_list.h View File

@@ -0,0 +1,197 @@
/**
* \file simple_list.h
* Simple macros for type-safe, intrusive lists.
*
* Intended to work with a list sentinal which is created as an empty
* list. Insert & delete are O(1).
*
* \author
* (C) 1997, Keith Whitwell
*/

/*
* Mesa 3-D graphics library
* Version: 3.5
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
* 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
* BRIAN PAUL 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.
*/


#ifndef _U_SIMPLE_LIST_H_
#define _U_SIMPLE_LIST_H_

/**
* Remove an element from list.
*
* \param elem element to remove.
*/
#define remove_from_list(elem) \
do { \
(elem)->next->prev = (elem)->prev; \
(elem)->prev->next = (elem)->next; \
} while (0)

/**
* Insert an element to the list head.
*
* \param list list.
* \param elem element to insert.
*/
#define insert_at_head(list, elem) \
do { \
(elem)->prev = list; \
(elem)->next = (list)->next; \
(list)->next->prev = elem; \
(list)->next = elem; \
} while(0)

/**
* Insert an element to the list tail.
*
* \param list list.
* \param elem element to insert.
*/
#define insert_at_tail(list, elem) \
do { \
(elem)->next = list; \
(elem)->prev = (list)->prev; \
(list)->prev->next = elem; \
(list)->prev = elem; \
} while(0)

/**
* Move an element to the list head.
*
* \param list list.
* \param elem element to move.
*/
#define move_to_head(list, elem) \
do { \
remove_from_list(elem); \
insert_at_head(list, elem); \
} while (0)

/**
* Move an element to the list tail.
*
* \param list list.
* \param elem element to move.
*/
#define move_to_tail(list, elem) \
do { \
remove_from_list(elem); \
insert_at_tail(list, elem); \
} while (0)

/**
* Make a empty list empty.
*
* \param sentinal list (sentinal element).
*/
#define make_empty_list(sentinal) \
do { \
(sentinal)->next = sentinal; \
(sentinal)->prev = sentinal; \
} while (0)

/**
* Get list first element.
*
* \param list list.
*
* \return pointer to first element.
*/
#define first_elem(list) ((list)->next)

/**
* Get list last element.
*
* \param list list.
*
* \return pointer to last element.
*/
#define last_elem(list) ((list)->prev)

/**
* Get next element.
*
* \param elem element.
*
* \return pointer to next element.
*/
#define next_elem(elem) ((elem)->next)

/**
* Get previous element.
*
* \param elem element.
*
* \return pointer to previous element.
*/
#define prev_elem(elem) ((elem)->prev)

/**
* Test whether element is at end of the list.
*
* \param list list.
* \param elem element.
*
* \return non-zero if element is at end of list, or zero otherwise.
*/
#define at_end(list, elem) ((elem) == (list))

/**
* Test if a list is empty.
*
* \param list list.
*
* \return non-zero if list empty, or zero otherwise.
*/
#define is_empty_list(list) ((list)->next == (list))

/**
* Walk through the elements of a list.
*
* \param ptr pointer to the current element.
* \param list list.
*
* \note It should be followed by a { } block or a single statement, as in a \c
* for loop.
*/
#define foreach(ptr, list) \
for( ptr=(list)->next ; ptr!=list ; ptr=(ptr)->next )

/**
* Walk through the elements of a list.
*
* Same as #foreach but lets you unlink the current value during a list
* traversal. Useful for freeing a list, element by element.
*
* \param ptr pointer to the current element.
* \param t temporary pointer.
* \param list list.
*
* \note It should be followed by a { } block or a single statement, as in a \c
* for loop.
*/
#define foreach_s(ptr, t, list) \
for(ptr=(list)->next,t=(ptr)->next; list != ptr; ptr=t, t=(t)->next)

#endif /* _U_SIMPLE_LIST_H_ */

+ 0
- 2
src/gallium/drivers/i915simple/i915_debug.c View File

@@ -25,8 +25,6 @@
*
**************************************************************************/

//#include "imports.h"

#include "i915_reg.h"
#include "i915_context.h"
#include "i915_winsys.h"

+ 295
- 32
src/gallium/include/pipe/p_thread.h View File

@@ -1,54 +1,317 @@
/**************************************************************************
*
* Copyright 1999-2006 Brian Paul
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
* All Rights Reserved.
*
* 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, sub license, 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.
*
* 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 NON-INFRINGEMENT.
* IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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.
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* BRIAN PAUL 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.
*
**************************************************************************/

#ifndef P_THREAD_H
#define P_THREAD_H
/**
* @file
* Thread
*
* Initial version by John Stone (j.stone@acm.org) (johns@cs.umr.edu)
* and Christoph Poliwoda (poliwoda@volumegraphics.com)
* Revised by Keith Whitwell
* Adapted for new gl dispatcher by Brian Paul
*
*
*
* DOCUMENTATION
*
* This thread module exports the following types:
* _glthread_TSD Thread-specific data area
* _glthread_Thread Thread datatype
* _glthread_Mutex Mutual exclusion lock
*
* Macros:
* _glthread_DECLARE_STATIC_MUTEX(name) Declare a non-local mutex
* _glthread_INIT_MUTEX(name) Initialize a mutex
* _glthread_LOCK_MUTEX(name) Lock a mutex
* _glthread_UNLOCK_MUTEX(name) Unlock a mutex
*
* Functions:
* _glthread_GetID(v) Get integer thread ID
* _glthread_InitTSD() Initialize thread-specific data
* _glthread_GetTSD() Get thread-specific data
* _glthread_SetTSD() Set thread-specific data
*
* If this file is accidentally included by a non-threaded build,
* it should not cause the build to fail, or otherwise cause problems.
* In general, it should only be included when needed however.
*/

#ifndef _P_THREAD_H_
#define _P_THREAD_H_


#if defined(USE_MGL_NAMESPACE)
#define _glapi_Dispatch _mglapi_Dispatch
#endif



#if (defined(PTHREADS) || defined(SOLARIS_THREADS) ||\
defined(WIN32_THREADS) || defined(USE_XTHREADS) || defined(BEOS_THREADS)) \
&& !defined(THREADS)
# define THREADS
#endif

#ifdef VMS
#include <GL/vms_x_fix.h>
#endif

/*
* POSIX threads. This should be your choice in the Unix world
* whenever possible. When building with POSIX threads, be sure
* to enable any compiler flags which will cause the MT-safe
* libc (if one exists) to be used when linking, as well as any
* header macros for MT-safe errno, etc. For Solaris, this is the -mt
* compiler flag. On Solaris with gcc, use -D_REENTRANT to enable
* proper compiling for MT-safe libc etc.
*/
#if defined(PTHREADS)
#include <pthread.h> /* POSIX threads headers */

typedef struct {
pthread_key_t key;
int initMagic;
} _glthread_TSD;

typedef pthread_t _glthread_Thread;

typedef pthread_mutex_t _glthread_Mutex;

#define _glthread_DECLARE_STATIC_MUTEX(name) \
static _glthread_Mutex name = PTHREAD_MUTEX_INITIALIZER

#define _glthread_INIT_MUTEX(name) \
pthread_mutex_init(&(name), NULL)

#define _glthread_DESTROY_MUTEX(name) \
pthread_mutex_destroy(&(name))

#define _glthread_LOCK_MUTEX(name) \
(void) pthread_mutex_lock(&(name))

#define _glthread_UNLOCK_MUTEX(name) \
(void) pthread_mutex_unlock(&(name))

#endif /* PTHREADS */




/*
* Solaris threads. Use only up to Solaris 2.4.
* Solaris 2.5 and higher provide POSIX threads.
* Be sure to compile with -mt on the Solaris compilers, or
* use -D_REENTRANT if using gcc.
*/
#ifdef SOLARIS_THREADS
#include <thread.h>

typedef struct {
thread_key_t key;
mutex_t keylock;
int initMagic;
} _glthread_TSD;

typedef thread_t _glthread_Thread;

typedef mutex_t _glthread_Mutex;

/* XXX need to really implement mutex-related macros */
#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0
#define _glthread_INIT_MUTEX(name) (void) name
#define _glthread_DESTROY_MUTEX(name) (void) name
#define _glthread_LOCK_MUTEX(name) (void) name
#define _glthread_UNLOCK_MUTEX(name) (void) name

#endif /* SOLARIS_THREADS */




/*
* Windows threads. Should work with Windows NT and 95.
* IMPORTANT: Link with multithreaded runtime library when THREADS are
* used!
*/
#ifdef WIN32_THREADS
#include <windows.h>

typedef struct {
DWORD key;
int initMagic;
} _glthread_TSD;

typedef HANDLE _glthread_Thread;

typedef CRITICAL_SECTION _glthread_Mutex;

#define _glthread_DECLARE_STATIC_MUTEX(name) /*static*/ _glthread_Mutex name = {0,0,0,0,0,0}
#define _glthread_INIT_MUTEX(name) InitializeCriticalSection(&name)
#define _glthread_DESTROY_MUTEX(name) DeleteCriticalSection(&name)
#define _glthread_LOCK_MUTEX(name) EnterCriticalSection(&name)
#define _glthread_UNLOCK_MUTEX(name) LeaveCriticalSection(&name)

#endif /* WIN32_THREADS */



#include "p_compiler.h"

/*
* XXX: We should come up with a system-independent thread definitions.
* XXX: Patching glthread defs for now.
* XFree86 has its own thread wrapper, Xthreads.h
* We wrap it again for GL.
*/
#ifdef USE_XTHREADS
#include <X11/Xthreads.h>

typedef struct {
xthread_key_t key;
int initMagic;
} _glthread_TSD;

typedef xthread_t _glthread_Thread;

typedef xmutex_rec _glthread_Mutex;

#ifdef XMUTEX_INITIALIZER
#define _glthread_DECLARE_STATIC_MUTEX(name) \
static _glthread_Mutex name = XMUTEX_INITIALIZER
#else
#define _glthread_DECLARE_STATIC_MUTEX(name) \
static _glthread_Mutex name
#endif

#define _glthread_INIT_MUTEX(name) \
xmutex_init(&(name))

#define _glthread_DESTROY_MUTEX(name) \
xmutex_clear(&(name))

#define _glthread_LOCK_MUTEX(name) \
(void) xmutex_lock(&(name))

#define _glthread_UNLOCK_MUTEX(name) \
(void) xmutex_unlock(&(name))

#endif /* USE_XTHREADS */



/*
* BeOS threads. R5.x required.
*/
#ifdef BEOS_THREADS

#include <kernel/OS.h>
#include <support/TLS.h>

typedef struct {
int32 key;
int initMagic;
} _glthread_TSD;

typedef thread_id _glthread_Thread;

/* Use Benaphore, aka speeder semaphore */
typedef struct {
int32 lock;
sem_id sem;
} benaphore;
typedef benaphore _glthread_Mutex;

#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = { 0, 0 }
#define _glthread_INIT_MUTEX(name) name.sem = create_sem(0, #name"_benaphore"), name.lock = 0
#define _glthread_DESTROY_MUTEX(name) delete_sem(name.sem), name.lock = 0
#define _glthread_LOCK_MUTEX(name) if (name.sem == 0) _glthread_INIT_MUTEX(name); \
if (atomic_add(&(name.lock), 1) >= 1) acquire_sem(name.sem)
#define _glthread_UNLOCK_MUTEX(name) if (atomic_add(&(name.lock), -1) > 1) release_sem(name.sem)

#endif /* BEOS_THREADS */



#ifndef THREADS

/*
* THREADS not defined
*/

typedef unsigned _glthread_TSD;

typedef unsigned _glthread_Thread;

typedef unsigned _glthread_Mutex;

#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0

#define _glthread_INIT_MUTEX(name) (void) name

#define _glthread_DESTROY_MUTEX(name) (void) name

#define _glthread_LOCK_MUTEX(name) (void) name

#define _glthread_UNLOCK_MUTEX(name) (void) name

#endif /* THREADS */



/*
* Platform independent thread specific data API.
*/

extern unsigned long
_glthread_GetID(void);


extern void
_glthread_InitTSD(_glthread_TSD *);


extern void *
_glthread_GetTSD(_glthread_TSD *);

#ifndef __MSC__

#include "glapi/glthread.h"
extern void
_glthread_SetTSD(_glthread_TSD *, void *);

#else /* __MSC__ */
#if defined(GLX_USE_TLS)

typedef int _glthread_Mutex;
extern __thread struct _glapi_table * _glapi_tls_Dispatch
__attribute__((tls_model("initial-exec")));

#define _glthread_INIT_MUTEX( M ) ((void) (M))
#define _glthread_LOCK_MUTEX( M ) ((void) (M))
#define _glthread_UNLOCK_MUTEX( M ) ((void) (M))
#define GET_DISPATCH() _glapi_tls_Dispatch

#define sched_yield() ((void) 0)
#elif !defined(GL_CALL)
# if defined(THREADS)
# define GET_DISPATCH() \
((__builtin_expect( _glapi_Dispatch != NULL, 1 )) \
? _glapi_Dispatch : _glapi_get_dispatch())
# else
# define GET_DISPATCH() _glapi_Dispatch
# endif /* defined(THREADS) */
#endif /* ndef GL_CALL */

#endif /* __MSC__ */

#endif /* P_THREAD_H */
#endif /* _P_THREAD_H_ */

+ 1
- 1
src/gallium/winsys/dri/intel/SConscript View File

@@ -35,5 +35,5 @@ drivers = [
env.SharedLibrary(
target ='i915tex_dri.so',
source = sources,
LIBS = mesa + drivers + auxiliaries + env['LIBS'],
LIBS = drivers + mesa + auxiliaries + env['LIBS'],
)

+ 9
- 6
src/gallium/winsys/dri/intel/intel_batchpool.c View File

@@ -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);
}


+ 6
- 0
src/gallium/winsys/xlib/SConscript View File

@@ -3,6 +3,12 @@

Import('*')

env = env.Clone()

env.Append(CPPPATH = [
'#/src/mesa',
'#/src/mesa/main',
])

sources = [
'glxapi.c',

+ 9
- 7
src/gallium/winsys/xlib/brw_aub.c View File

@@ -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);
}


+ 7
- 0
src/mesa/SConscript View File

@@ -4,6 +4,13 @@

Import('*')

env = env.Clone()

# Includes
env.Append(CPPPATH = [
'#/src/mesa',
'#/src/mesa/main',
])

#######################################################################
# Core sources

+ 1
- 1
src/mesa/x86/common_x86_asm.S View File

@@ -39,7 +39,7 @@
* in there will break the build on some platforms.
*/

#include "matypes.h"
#include "assyntax.h"
#include "common_x86_features.h"

SEG_TEXT

Loading…
Cancel
Save