diff options
author | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:43:39 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:43:39 +0200 |
commit | f4092abdf94af6a99aff944d6264bc1284e8bdd4 (patch) | |
tree | 2ac1c9cc16ceb93edb2c4382c088dac5aeafdf0f /nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dri.h | |
parent | a840692edc9c6d19cd7c057f68e39c7d95eb767d (diff) | |
download | nx-libs-f4092abdf94af6a99aff944d6264bc1284e8bdd4.tar.gz nx-libs-f4092abdf94af6a99aff944d6264bc1284e8bdd4.tar.bz2 nx-libs-f4092abdf94af6a99aff944d6264bc1284e8bdd4.zip |
Imported nx-X11-3.1.0-1.tar.gznx-X11/3.1.0-1
Summary: Imported nx-X11-3.1.0-1.tar.gz
Keywords:
Imported nx-X11-3.1.0-1.tar.gz
into Git repository
Diffstat (limited to 'nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dri.h')
-rw-r--r-- | nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dri.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dri.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dri.h new file mode 100644 index 000000000..339c579f7 --- /dev/null +++ b/nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dri.h @@ -0,0 +1,143 @@ +/* + * Author: Max Lingua <sunmax@libero.it> + */ + +#ifndef _S3V_DRI +#define _S3V_DRI + +#include "s3v_common.h" + +#define S3V_MAX_DRAWABLES (S3V_DMA_BUF_NR/2) /* 32 */ /* 256 */ /* FIXME */ + +typedef struct +{ + int deviceID; + int width; + int height; + int mem; + int cpp; + int bitsPerPixel; + + int fbOffset; + int fbStride; + + int logTextureGranularity; + int textureOffset; + + drm_handle_t regs; + drmSize regsSize; + + unsigned int sarea_priv_offset; +/* + drmAddress regsMap; + + drmSize textureSize; + drm_handle_t textures; +*/ + +#if 0 + drm_handle_t agp_buffers; + drmSize agp_buf_size; +#endif + +/* + drmBufMapPtr drmBufs; + int irq; + unsigned int sarea_priv_offset; +*/ + +/* FIXME: cleanup ! */ + + drmSize registerSize; /* == S3V_MMIO_REGSIZE */ + drm_handle_t registerHandle; + + drmSize pciSize; + drm_handle_t pciMemHandle; + + drmSize frontSize; /* == videoRambytes */ +/* drm_handle_t frontHandle; */ + unsigned long frontOffset; /* == fbOffset */ + int frontPitch; +/* unsigned char *front; */ + + unsigned int bufferSize; /* size of depth/back buffer */ + + drmSize backSize; +/* drm_handle_t backHandle; */ + unsigned long backOffset; + int backPitch; +/* unsigned char *back; */ + + drmSize depthSize; +/* drm_handle_t depthHandle; */ + unsigned long depthOffset; + int depthPitch; +/* unsigned char *depth; */ + + drmSize texSize; +/* drm_handle_t texHandle; */ + unsigned long texOffset; + int texPitch; +/* unsigned char *tex; */ + + drmSize dmaBufSize; /* Size of buffers (in bytes) */ + drm_handle_t dmaBufHandle; /* Handle from drmAddMap */ + unsigned long dmaBufOffset; /* Offset/Start */ + int dmaBufPitch; /* Pitch */ + unsigned char *dmaBuf; /* Map */ + int bufNumBufs; /* Number of buffers */ + drmBufMapPtr buffers; /* Buffer map */ + +} S3VDRIRec, *S3VDRIPtr; + +/* WARNING: Do not change the SAREA structure without changing the kernel + * as well */ + +typedef struct { + unsigned char next, prev; /* indices to form a circular LRU */ + unsigned char in_use; /* owned by a client, or free? */ + int age; /* tracked by clients to update local LRU's */ +} S3VTexRegionRec, *S3VTexRegionPtr; + +typedef struct { + unsigned int nbox; + drm_clip_rect_t boxes[S3V_NR_SAREA_CLIPRECTS]; + + /* Maintain an LRU of contiguous regions of texture space. If + * you think you own a region of texture memory, and it has an + * age different to the one you set, then you are mistaken and + * it has been stolen by another client. If global texAge + * hasn't changed, there is no need to walk the list. + * + * These regions can be used as a proxy for the fine-grained + * texture information of other clients - by maintaining them + * in the same lru which is used to age their own textures, + * clients have an approximate lru for the whole of global + * texture space, and can make informed decisions as to which + * areas to kick out. There is no need to choose whether to + * kick out your own texture or someone else's - simply eject + * them all in LRU order. + */ + S3VTexRegionRec texList[S3V_NR_TEX_REGIONS+1]; /* Last elt is sentinal */ + + int texAge; /* last time texture was uploaded */ + + int last_enqueue; /* last time a buffer was enqueued */ + int last_dispatch; /* age of the most recently dispatched buffer */ + int last_quiescent; /* */ + + int ctxOwner; /* last context to upload state */ +} S3VSAREARec, *S3VSAREAPtr; + +typedef struct { + /* Nothing here yet */ + int dummy; +} S3VConfigPrivRec, *S3VConfigPrivPtr; + +typedef struct { + /* Nothing here yet */ + int dummy; +} S3VDRIContextRec, *S3VDRIContextPtr; + + +#endif |