Remove src/mesa and src/mesa/main from gallium source include paths.
This commit is contained in:
parent
5d78212d75
commit
b9da3791c9
|
@ -109,8 +109,6 @@ else:
|
|||
# Includes
|
||||
env.Append(CPPPATH = [
|
||||
'#/include',
|
||||
'#/src/mesa',
|
||||
'#/src/mesa/main',
|
||||
'#/src/gallium/include',
|
||||
'#/src/gallium/auxiliary',
|
||||
'#/src/gallium/drivers',
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -26,9 +26,8 @@
|
|||
*/
|
||||
|
||||
|
||||
#include "simple_list.h"
|
||||
|
||||
#include "pipe/p_compiler.h"
|
||||
#include "util/u_simple_list.h"
|
||||
|
||||
#include "draw_vf.h"
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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_*/
|
|
@ -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_ */
|
|
@ -25,8 +25,6 @@
|
|||
*
|
||||
**************************************************************************/
|
||||
|
||||
//#include "imports.h"
|
||||
|
||||
#include "i915_reg.h"
|
||||
#include "i915_context.h"
|
||||
#include "i915_winsys.h"
|
||||
|
|
|
@ -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
|
||||
|
||||
#include "p_compiler.h"
|
||||
|
||||
/*
|
||||
* XXX: We should come up with a system-independent thread definitions.
|
||||
* XXX: Patching glthread defs for now.
|
||||
/**
|
||||
* @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 __MSC__
|
||||
#ifndef _P_THREAD_H_
|
||||
#define _P_THREAD_H_
|
||||
|
||||
#include "glapi/glthread.h"
|
||||
|
||||
#else /* __MSC__ */
|
||||
#if defined(USE_MGL_NAMESPACE)
|
||||
#define _glapi_Dispatch _mglapi_Dispatch
|
||||
#endif
|
||||
|
||||
typedef int _glthread_Mutex;
|
||||
|
||||
#define _glthread_INIT_MUTEX( M ) ((void) (M))
|
||||
#define _glthread_LOCK_MUTEX( M ) ((void) (M))
|
||||
#define _glthread_UNLOCK_MUTEX( M ) ((void) (M))
|
||||
|
||||
#define sched_yield() ((void) 0)
|
||||
#if (defined(PTHREADS) || defined(SOLARIS_THREADS) ||\
|
||||
defined(WIN32_THREADS) || defined(USE_XTHREADS) || defined(BEOS_THREADS)) \
|
||||
&& !defined(THREADS)
|
||||
# define THREADS
|
||||
#endif
|
||||
|
||||
#endif /* __MSC__ */
|
||||
#ifdef VMS
|
||||
#include <GL/vms_x_fix.h>
|
||||
#endif
|
||||
|
||||
#endif /* P_THREAD_H */
|
||||
/*
|
||||
* 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 */
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 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 *);
|
||||
|
||||
|
||||
extern void
|
||||
_glthread_SetTSD(_glthread_TSD *, void *);
|
||||
|
||||
#if defined(GLX_USE_TLS)
|
||||
|
||||
extern __thread struct _glapi_table * _glapi_tls_Dispatch
|
||||
__attribute__((tls_model("initial-exec")));
|
||||
|
||||
#define GET_DISPATCH() _glapi_tls_Dispatch
|
||||
|
||||
#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 /* _P_THREAD_H_ */
|
||||
|
|
|
@ -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'],
|
||||
)
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.Append(CPPPATH = [
|
||||
'#/src/mesa',
|
||||
'#/src/mesa/main',
|
||||
])
|
||||
|
||||
sources = [
|
||||
'glxapi.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);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,13 @@
|
|||
|
||||
Import('*')
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
# Includes
|
||||
env.Append(CPPPATH = [
|
||||
'#/src/mesa',
|
||||
'#/src/mesa/main',
|
||||
])
|
||||
|
||||
#######################################################################
|
||||
# Core sources
|
||||
|
|
|
@ -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…
Reference in New Issue