fixup mach64 for newer build/types
This commit is contained in:
parent
11b3028e7b
commit
54f4f44843
|
@ -143,8 +143,8 @@ GLboolean mach64CreateContext( const __GLcontextModes *glVisual,
|
||||||
driParseConfigFiles (&mmesa->optionCache, &mach64Screen->optionCache,
|
driParseConfigFiles (&mmesa->optionCache, &mach64Screen->optionCache,
|
||||||
mach64Screen->driScreen->myNum, "mach64");
|
mach64Screen->driScreen->myNum, "mach64");
|
||||||
|
|
||||||
mmesa->sarea = (ATISAREAPrivPtr)((char *)driScreen->pSAREA +
|
mmesa->sarea = (drm_mach64_sarea_t *)((char *)driScreen->pSAREA +
|
||||||
sizeof(drm_sarea_t));
|
sizeof(drm_mach64_sarea_t));
|
||||||
|
|
||||||
mmesa->CurrentTexObj[0] = NULL;
|
mmesa->CurrentTexObj[0] = NULL;
|
||||||
mmesa->CurrentTexObj[1] = NULL;
|
mmesa->CurrentTexObj[1] = NULL;
|
||||||
|
|
|
@ -36,11 +36,9 @@
|
||||||
|
|
||||||
#include "dri_util.h"
|
#include "dri_util.h"
|
||||||
#include "drm.h"
|
#include "drm.h"
|
||||||
#include "xf86drm.h"
|
#include "mach64_drm.h"
|
||||||
#include "mach64_common.h"
|
|
||||||
|
|
||||||
#include "mtypes.h"
|
#include "mtypes.h"
|
||||||
#include "mm.h"
|
|
||||||
|
|
||||||
#include "mach64_reg.h"
|
#include "mach64_reg.h"
|
||||||
|
|
||||||
|
@ -227,7 +225,7 @@ struct mach64_context {
|
||||||
*/
|
*/
|
||||||
GLuint new_state;
|
GLuint new_state;
|
||||||
GLuint dirty; /* Hardware state to be updated */
|
GLuint dirty; /* Hardware state to be updated */
|
||||||
mach64_context_regs_t setup;
|
drm_mach64_context_regs_t setup;
|
||||||
|
|
||||||
GLuint NewGLState;
|
GLuint NewGLState;
|
||||||
GLuint Fallback;
|
GLuint Fallback;
|
||||||
|
@ -310,7 +308,7 @@ struct mach64_context {
|
||||||
int driFd;
|
int driFd;
|
||||||
|
|
||||||
mach64ScreenPtr mach64Screen; /* Screen private DRI data */
|
mach64ScreenPtr mach64Screen; /* Screen private DRI data */
|
||||||
ATISAREAPrivPtr sarea; /* Private SAREA data */
|
drm_mach64_sarea_t *sarea; /* Private SAREA data */
|
||||||
|
|
||||||
GLuint hardwareWentIdle;
|
GLuint hardwareWentIdle;
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ void mach64FlushVerticesLocked( mach64ContextPtr mmesa )
|
||||||
int count = mmesa->vert_used;
|
int count = mmesa->vert_used;
|
||||||
int prim = mmesa->hw_primitive;
|
int prim = mmesa->hw_primitive;
|
||||||
int fd = mmesa->driScreen->fd;
|
int fd = mmesa->driScreen->fd;
|
||||||
drmMach64Vertex vertex;
|
drm_mach64_vertex_t vertex;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
mmesa->num_verts = 0;
|
mmesa->num_verts = 0;
|
||||||
|
@ -133,7 +133,7 @@ void mach64FlushVerticesLocked( mach64ContextPtr mmesa )
|
||||||
vertex.buf = buffer;
|
vertex.buf = buffer;
|
||||||
vertex.used = count;
|
vertex.used = count;
|
||||||
vertex.discard = 1;
|
vertex.discard = 1;
|
||||||
ret = drmCommandWrite( fd, DRM_MACH64_VERTEX, &vertex, sizeof(drmMach64Vertex) );
|
ret = drmCommandWrite( fd, DRM_MACH64_VERTEX, &vertex, sizeof(drm_mach64_vertex_t) );
|
||||||
if ( ret ) {
|
if ( ret ) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
fprintf( stderr, "Error flushing vertex buffer: return = %d\n", ret );
|
fprintf( stderr, "Error flushing vertex buffer: return = %d\n", ret );
|
||||||
|
@ -164,7 +164,7 @@ void mach64FlushVerticesLocked( mach64ContextPtr mmesa )
|
||||||
vertex.buf = buffer;
|
vertex.buf = buffer;
|
||||||
vertex.used = count;
|
vertex.used = count;
|
||||||
vertex.discard = discard;
|
vertex.discard = discard;
|
||||||
ret = drmCommandWrite( fd, DRM_MACH64_VERTEX, &vertex, sizeof(drmMach64Vertex) );
|
ret = drmCommandWrite( fd, DRM_MACH64_VERTEX, &vertex, sizeof(drm_mach64_vertex_t) );
|
||||||
if ( ret ) {
|
if ( ret ) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
fprintf( stderr, "Error flushing vertex buffer: return = %d\n", ret );
|
fprintf( stderr, "Error flushing vertex buffer: return = %d\n", ret );
|
||||||
|
@ -184,7 +184,7 @@ void mach64FireBlitLocked( mach64ContextPtr mmesa, drmBufPtr buffer,
|
||||||
GLint offset, GLint pitch, GLint format,
|
GLint offset, GLint pitch, GLint format,
|
||||||
GLint x, GLint y, GLint width, GLint height )
|
GLint x, GLint y, GLint width, GLint height )
|
||||||
{
|
{
|
||||||
drmMach64Blit blit;
|
drm_mach64_blit_t blit;
|
||||||
GLint ret;
|
GLint ret;
|
||||||
|
|
||||||
blit.idx = buffer->idx;
|
blit.idx = buffer->idx;
|
||||||
|
@ -197,7 +197,7 @@ void mach64FireBlitLocked( mach64ContextPtr mmesa, drmBufPtr buffer,
|
||||||
blit.height = height;
|
blit.height = height;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_BLIT,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_BLIT,
|
||||||
&blit, sizeof(drmMach64Blit) );
|
&blit, sizeof(drm_mach64_blit_t) );
|
||||||
|
|
||||||
if ( ret ) {
|
if ( ret ) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -229,7 +229,7 @@ static int mach64WaitForFrameCompletion( mach64ContextPtr mmesa )
|
||||||
int frames;
|
int frames;
|
||||||
|
|
||||||
while ( 1 ) {
|
while ( 1 ) {
|
||||||
drmMach64GetParam gp;
|
drm_mach64_getparam_t gp;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if ( mmesa->sarea->frames_queued < MACH64_MAX_QUEUED_FRAMES ) {
|
if ( mmesa->sarea->frames_queued < MACH64_MAX_QUEUED_FRAMES ) {
|
||||||
|
@ -388,7 +388,7 @@ void mach64PerformanceCounters( mach64ContextPtr mmesa )
|
||||||
void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
{
|
{
|
||||||
GLint ret;
|
GLint ret;
|
||||||
drmMach64Clear clear;
|
drm_mach64_clear_t clear;
|
||||||
GLint x, y, w, h;
|
GLint x, y, w, h;
|
||||||
GLuint color;
|
GLuint color;
|
||||||
GLint nbox;
|
GLint nbox;
|
||||||
|
@ -427,7 +427,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
clear.clear_color = color;
|
clear.clear_color = color;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -452,7 +452,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
clear.clear_color = color;
|
clear.clear_color = color;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -481,7 +481,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
clear.clear_color = color;
|
clear.clear_color = color;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -506,7 +506,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
clear.clear_color = color;
|
clear.clear_color = color;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -532,7 +532,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
clear.clear_color = color;
|
clear.clear_color = color;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -565,7 +565,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
clear.clear_color = color;
|
clear.clear_color = color;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -595,7 +595,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
clear.clear_color = color;
|
clear.clear_color = color;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -627,7 +627,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
|
||||||
clear.clear_color = color;
|
clear.clear_color = color;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -656,7 +656,7 @@ static void mach64DDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
|
||||||
{
|
{
|
||||||
mach64ContextPtr mmesa = MACH64_CONTEXT( ctx );
|
mach64ContextPtr mmesa = MACH64_CONTEXT( ctx );
|
||||||
__DRIdrawablePrivate *dPriv = mmesa->driDrawable;
|
__DRIdrawablePrivate *dPriv = mmesa->driDrawable;
|
||||||
drmMach64Clear clear;
|
drm_mach64_clear_t clear;
|
||||||
GLuint flags = 0;
|
GLuint flags = 0;
|
||||||
GLint i;
|
GLint i;
|
||||||
GLint ret;
|
GLint ret;
|
||||||
|
@ -771,7 +771,7 @@ static void mach64DDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
|
||||||
clear.clear_depth = mmesa->ClearDepth;
|
clear.clear_depth = mmesa->ClearDepth;
|
||||||
|
|
||||||
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_CLEAR,
|
||||||
&clear, sizeof(drmMach64Clear) );
|
&clear, sizeof(drm_mach64_clear_t) );
|
||||||
|
|
||||||
if ( ret ) {
|
if ( ret ) {
|
||||||
UNLOCK_HARDWARE( mmesa );
|
UNLOCK_HARDWARE( mmesa );
|
||||||
|
@ -831,9 +831,9 @@ void mach64FlushDMALocked( mach64ContextPtr mmesa )
|
||||||
/* For client-side state emits - currently unused */
|
/* For client-side state emits - currently unused */
|
||||||
void mach64UploadHwStateLocked( mach64ContextPtr mmesa )
|
void mach64UploadHwStateLocked( mach64ContextPtr mmesa )
|
||||||
{
|
{
|
||||||
ATISAREAPrivPtr sarea = mmesa->sarea;
|
drm_mach64_sarea_t *sarea = mmesa->sarea;
|
||||||
|
|
||||||
mach64_context_regs_t *regs = &sarea->ContextState;
|
drm_mach64_context_regs_t *regs = &sarea->context_state;
|
||||||
unsigned int dirty = sarea->dirty;
|
unsigned int dirty = sarea->dirty;
|
||||||
CARD32 offset = ((regs->tex_size_pitch & 0xf0) >> 2);
|
CARD32 offset = ((regs->tex_size_pitch & 0xf0) >> 2);
|
||||||
|
|
||||||
|
|
|
@ -38,9 +38,6 @@
|
||||||
#include "mach64_reg.h"
|
#include "mach64_reg.h"
|
||||||
#include "mach64_lock.h"
|
#include "mach64_lock.h"
|
||||||
|
|
||||||
#include "xf86drm.h"
|
|
||||||
#include "mach64_common.h"
|
|
||||||
|
|
||||||
#define MACH64_BUFFER_MAX_DWORDS (MACH64_BUFFER_SIZE / sizeof(CARD32))
|
#define MACH64_BUFFER_MAX_DWORDS (MACH64_BUFFER_SIZE / sizeof(CARD32))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ void mach64GetLock( mach64ContextPtr mmesa, GLuint flags )
|
||||||
{
|
{
|
||||||
__DRIdrawablePrivate *dPriv = mmesa->driDrawable;
|
__DRIdrawablePrivate *dPriv = mmesa->driDrawable;
|
||||||
__DRIscreenPrivate *sPriv = mmesa->driScreen;
|
__DRIscreenPrivate *sPriv = mmesa->driScreen;
|
||||||
ATISAREAPrivPtr sarea = mmesa->sarea;
|
drm_mach64_sarea_t *sarea = mmesa->sarea;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
drmGetLock( mmesa->driFd, mmesa->hHWContext, flags );
|
drmGetLock( mmesa->driFd, mmesa->hHWContext, flags );
|
||||||
|
@ -80,13 +80,13 @@ void mach64GetLock( mach64ContextPtr mmesa, GLuint flags )
|
||||||
| MACH64_UPLOAD_MISC
|
| MACH64_UPLOAD_MISC
|
||||||
| MACH64_UPLOAD_CLIPRECTS);
|
| MACH64_UPLOAD_CLIPRECTS);
|
||||||
|
|
||||||
if ( sarea->ctxOwner != mmesa->hHWContext ) {
|
if ( sarea->ctx_owner != mmesa->hHWContext ) {
|
||||||
sarea->ctxOwner = mmesa->hHWContext;
|
sarea->ctx_owner = mmesa->hHWContext;
|
||||||
mmesa->dirty = MACH64_UPLOAD_ALL;
|
mmesa->dirty = MACH64_UPLOAD_ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = mmesa->firstTexHeap ; i < mmesa->lastTexHeap ; i++ ) {
|
for ( i = mmesa->firstTexHeap ; i < mmesa->lastTexHeap ; i++ ) {
|
||||||
if ( mmesa->texHeap[i] && (sarea->texAge[i] != mmesa->lastTexAge[i]) ) {
|
if ( mmesa->texHeap[i] && (sarea->tex_age[i] != mmesa->lastTexAge[i]) ) {
|
||||||
mach64AgeTextures( mmesa, i );
|
mach64AgeTextures( mmesa, i );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,7 +230,7 @@ mach64CreateScreen( __DRIscreenPrivate *sPriv )
|
||||||
mach64Screen->IsPCI = serverInfo->IsPCI;
|
mach64Screen->IsPCI = serverInfo->IsPCI;
|
||||||
|
|
||||||
{
|
{
|
||||||
drmMach64GetParam gp;
|
drm_mach64_getparam_t gp;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
gp.param = MACH64_PARAM_IRQ_NR;
|
gp.param = MACH64_PARAM_IRQ_NR;
|
||||||
|
|
|
@ -34,8 +34,6 @@
|
||||||
|
|
||||||
#ifdef GLX_DIRECT_RENDERING
|
#ifdef GLX_DIRECT_RENDERING
|
||||||
|
|
||||||
#include "mach64_sarea.h"
|
|
||||||
#include "drm_sarea.h"
|
|
||||||
#include "xmlconfig.h"
|
#include "xmlconfig.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -916,8 +916,8 @@ static void mach64DDPrintDirty( const char *msg, GLuint state )
|
||||||
*/
|
*/
|
||||||
void mach64EmitHwStateLocked( mach64ContextPtr mmesa )
|
void mach64EmitHwStateLocked( mach64ContextPtr mmesa )
|
||||||
{
|
{
|
||||||
ATISAREAPrivPtr sarea = mmesa->sarea;
|
drm_mach64_sarea_t *sarea = mmesa->sarea;
|
||||||
mach64_context_regs_t *regs = &(mmesa->setup);
|
drm_mach64_context_regs_t *regs = &(mmesa->setup);
|
||||||
mach64TexObjPtr t0 = mmesa->CurrentTexObj[0];
|
mach64TexObjPtr t0 = mmesa->CurrentTexObj[0];
|
||||||
mach64TexObjPtr t1 = mmesa->CurrentTexObj[1];
|
mach64TexObjPtr t1 = mmesa->CurrentTexObj[1];
|
||||||
|
|
||||||
|
@ -940,7 +940,7 @@ void mach64EmitHwStateLocked( mach64ContextPtr mmesa )
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( mmesa->dirty & (MACH64_UPLOAD_CONTEXT | MACH64_UPLOAD_MISC) ) {
|
if ( mmesa->dirty & (MACH64_UPLOAD_CONTEXT | MACH64_UPLOAD_MISC) ) {
|
||||||
memcpy( &sarea->ContextState, regs,
|
memcpy( &sarea->context_state, regs,
|
||||||
MACH64_NR_CONTEXT_REGS * sizeof(GLuint) );
|
MACH64_NR_CONTEXT_REGS * sizeof(GLuint) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -379,8 +379,8 @@ void mach64EmitTexStateLocked( mach64ContextPtr mmesa,
|
||||||
mach64TexObjPtr t0,
|
mach64TexObjPtr t0,
|
||||||
mach64TexObjPtr t1 )
|
mach64TexObjPtr t1 )
|
||||||
{
|
{
|
||||||
ATISAREAPrivPtr sarea = mmesa->sarea;
|
drm_mach64_sarea_t *sarea = mmesa->sarea;
|
||||||
mach64_context_regs_t *regs = &(mmesa->setup);
|
drm_mach64_context_regs_t *regs = &(mmesa->setup);
|
||||||
|
|
||||||
/* for multitex, both textures must be local or AGP */
|
/* for multitex, both textures must be local or AGP */
|
||||||
if ( t0 && t1 )
|
if ( t0 && t1 )
|
||||||
|
@ -405,7 +405,7 @@ void mach64EmitTexStateLocked( mach64ContextPtr mmesa,
|
||||||
mmesa->setup.secondary_tex_off = t1->offset;
|
mmesa->setup.secondary_tex_off = t1->offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy( &sarea->ContextState.tex_size_pitch, ®s->tex_size_pitch,
|
memcpy( &sarea->context_state.tex_size_pitch, ®s->tex_size_pitch,
|
||||||
MACH64_NR_TEXTURE_REGS * sizeof(GLuint) );
|
MACH64_NR_TEXTURE_REGS * sizeof(GLuint) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,13 +60,13 @@ void mach64DestroyTexObj( mach64ContextPtr mmesa, mach64TexObjPtr t )
|
||||||
if ( t->tObj && t->memBlock && mmesa ) {
|
if ( t->tObj && t->memBlock && mmesa ) {
|
||||||
/* not a placeholder, so release from global LRU if necessary */
|
/* not a placeholder, so release from global LRU if necessary */
|
||||||
int heap = t->heap;
|
int heap = t->heap;
|
||||||
drmTextureRegion *list = mmesa->sarea->texList[heap];
|
drmTextureRegion *list = mmesa->sarea->tex_list[heap];
|
||||||
int log2sz = mmesa->mach64Screen->logTexGranularity[heap];
|
int log2sz = mmesa->mach64Screen->logTexGranularity[heap];
|
||||||
int start = t->memBlock->ofs >> log2sz;
|
int start = t->memBlock->ofs >> log2sz;
|
||||||
int end = (t->memBlock->ofs + t->memBlock->size - 1) >> log2sz;
|
int end = (t->memBlock->ofs + t->memBlock->size - 1) >> log2sz;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
mmesa->lastTexAge[heap] = ++mmesa->sarea->texAge[heap];
|
mmesa->lastTexAge[heap] = ++mmesa->sarea->tex_age[heap];
|
||||||
|
|
||||||
/* Update the global LRU */
|
/* Update the global LRU */
|
||||||
for ( i = start ; i <= end ; i++ ) {
|
for ( i = start ; i <= end ; i++ ) {
|
||||||
|
@ -114,13 +114,13 @@ void mach64SwapOutTexObj( mach64ContextPtr mmesa,
|
||||||
if ( t->tObj && t->memBlock && mmesa ) {
|
if ( t->tObj && t->memBlock && mmesa ) {
|
||||||
/* not a placeholder, so release from global LRU if necessary */
|
/* not a placeholder, so release from global LRU if necessary */
|
||||||
int heap = t->heap;
|
int heap = t->heap;
|
||||||
drmTextureRegion *list = mmesa->sarea->texList[heap];
|
drmTextureRegion *list = mmesa->sarea->tex_list[heap];
|
||||||
int log2sz = mmesa->mach64Screen->logTexGranularity[heap];
|
int log2sz = mmesa->mach64Screen->logTexGranularity[heap];
|
||||||
int start = t->memBlock->ofs >> log2sz;
|
int start = t->memBlock->ofs >> log2sz;
|
||||||
int end = (t->memBlock->ofs + t->memBlock->size - 1) >> log2sz;
|
int end = (t->memBlock->ofs + t->memBlock->size - 1) >> log2sz;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
mmesa->lastTexAge[heap] = ++mmesa->sarea->texAge[heap];
|
mmesa->lastTexAge[heap] = ++mmesa->sarea->tex_age[heap];
|
||||||
|
|
||||||
/* Update the global LRU */
|
/* Update the global LRU */
|
||||||
for ( i = start ; i <= end ; i++ ) {
|
for ( i = start ; i <= end ; i++ ) {
|
||||||
|
@ -174,7 +174,7 @@ void mach64PrintLocalLRU( mach64ContextPtr mmesa, int heap )
|
||||||
|
|
||||||
void mach64PrintGlobalLRU( mach64ContextPtr mmesa, int heap )
|
void mach64PrintGlobalLRU( mach64ContextPtr mmesa, int heap )
|
||||||
{
|
{
|
||||||
drmTextureRegion *list = mmesa->sarea->texList[heap];
|
drmTextureRegion *list = mmesa->sarea->tex_list[heap];
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
fprintf( stderr, "\nGlobal LRU, heap %d list %p:\n", heap, list );
|
fprintf( stderr, "\nGlobal LRU, heap %d list %p:\n", heap, list );
|
||||||
|
@ -202,7 +202,7 @@ void mach64PrintGlobalLRU( mach64ContextPtr mmesa, int heap )
|
||||||
/* NOTE: This function is only called while holding the hardware lock */
|
/* NOTE: This function is only called while holding the hardware lock */
|
||||||
static void mach64ResetGlobalLRU( mach64ContextPtr mmesa, int heap )
|
static void mach64ResetGlobalLRU( mach64ContextPtr mmesa, int heap )
|
||||||
{
|
{
|
||||||
drmTextureRegion *list = mmesa->sarea->texList[heap];
|
drmTextureRegion *list = mmesa->sarea->tex_list[heap];
|
||||||
int sz = 1 << mmesa->mach64Screen->logTexGranularity[heap];
|
int sz = 1 << mmesa->mach64Screen->logTexGranularity[heap];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ static void mach64ResetGlobalLRU( mach64ContextPtr mmesa, int heap )
|
||||||
list[i].next = MACH64_NR_TEX_REGIONS;
|
list[i].next = MACH64_NR_TEX_REGIONS;
|
||||||
list[MACH64_NR_TEX_REGIONS].prev = i;
|
list[MACH64_NR_TEX_REGIONS].prev = i;
|
||||||
list[MACH64_NR_TEX_REGIONS].next = 0;
|
list[MACH64_NR_TEX_REGIONS].next = 0;
|
||||||
mmesa->sarea->texAge[heap] = 0;
|
mmesa->sarea->tex_age[heap] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update the local and global texture LRUs.
|
/* Update the local and global texture LRUs.
|
||||||
|
@ -234,13 +234,13 @@ void mach64UpdateTexLRU( mach64ContextPtr mmesa,
|
||||||
mach64TexObjPtr t )
|
mach64TexObjPtr t )
|
||||||
{
|
{
|
||||||
int heap = t->heap;
|
int heap = t->heap;
|
||||||
drmTextureRegion *list = mmesa->sarea->texList[heap];
|
drmTextureRegion *list = mmesa->sarea->tex_list[heap];
|
||||||
int log2sz = mmesa->mach64Screen->logTexGranularity[heap];
|
int log2sz = mmesa->mach64Screen->logTexGranularity[heap];
|
||||||
int start = t->memBlock->ofs >> log2sz;
|
int start = t->memBlock->ofs >> log2sz;
|
||||||
int end = (t->memBlock->ofs + t->memBlock->size - 1) >> log2sz;
|
int end = (t->memBlock->ofs + t->memBlock->size - 1) >> log2sz;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
mmesa->lastTexAge[heap] = ++mmesa->sarea->texAge[heap];
|
mmesa->lastTexAge[heap] = ++mmesa->sarea->tex_age[heap];
|
||||||
|
|
||||||
if ( !t->memBlock ) {
|
if ( !t->memBlock ) {
|
||||||
fprintf( stderr, "no memblock\n\n" );
|
fprintf( stderr, "no memblock\n\n" );
|
||||||
|
@ -328,9 +328,9 @@ static void mach64TexturesGone( mach64ContextPtr mmesa, int heap,
|
||||||
*/
|
*/
|
||||||
void mach64AgeTextures( mach64ContextPtr mmesa, int heap )
|
void mach64AgeTextures( mach64ContextPtr mmesa, int heap )
|
||||||
{
|
{
|
||||||
ATISAREAPrivPtr sarea = mmesa->sarea;
|
drm_mach64_sarea_t *sarea = mmesa->sarea;
|
||||||
|
|
||||||
if ( sarea->texAge[heap] != mmesa->lastTexAge[heap] ) {
|
if ( sarea->tex_age[heap] != mmesa->lastTexAge[heap] ) {
|
||||||
int sz = 1 << mmesa->mach64Screen->logTexGranularity[heap];
|
int sz = 1 << mmesa->mach64Screen->logTexGranularity[heap];
|
||||||
int nr = 0;
|
int nr = 0;
|
||||||
int idx;
|
int idx;
|
||||||
|
@ -338,9 +338,9 @@ void mach64AgeTextures( mach64ContextPtr mmesa, int heap )
|
||||||
/* Have to go right round from the back to ensure stuff ends up
|
/* Have to go right round from the back to ensure stuff ends up
|
||||||
* LRU in our local list... Fix with a cursor pointer.
|
* LRU in our local list... Fix with a cursor pointer.
|
||||||
*/
|
*/
|
||||||
for ( idx = sarea->texList[heap][MACH64_NR_TEX_REGIONS].prev ;
|
for ( idx = sarea->tex_list[heap][MACH64_NR_TEX_REGIONS].prev ;
|
||||||
idx != MACH64_NR_TEX_REGIONS && nr < MACH64_NR_TEX_REGIONS ;
|
idx != MACH64_NR_TEX_REGIONS && nr < MACH64_NR_TEX_REGIONS ;
|
||||||
idx = sarea->texList[heap][idx].prev, nr++ )
|
idx = sarea->tex_list[heap][idx].prev, nr++ )
|
||||||
{
|
{
|
||||||
/* If switching texturing schemes, then the SAREA might not
|
/* If switching texturing schemes, then the SAREA might not
|
||||||
* have been properly cleared, so we need to reset the
|
* have been properly cleared, so we need to reset the
|
||||||
|
@ -351,9 +351,9 @@ void mach64AgeTextures( mach64ContextPtr mmesa, int heap )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( sarea->texList[heap][idx].age > mmesa->lastTexAge[heap] ) {
|
if ( sarea->tex_list[heap][idx].age > mmesa->lastTexAge[heap] ) {
|
||||||
mach64TexturesGone( mmesa, heap, idx * sz, sz,
|
mach64TexturesGone( mmesa, heap, idx * sz, sz,
|
||||||
sarea->texList[heap][idx].in_use );
|
sarea->tex_list[heap][idx].in_use );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ void mach64AgeTextures( mach64ContextPtr mmesa, int heap )
|
||||||
mmesa->dirty |= (MACH64_UPLOAD_CONTEXT |
|
mmesa->dirty |= (MACH64_UPLOAD_CONTEXT |
|
||||||
MACH64_UPLOAD_TEX0IMAGE |
|
MACH64_UPLOAD_TEX0IMAGE |
|
||||||
MACH64_UPLOAD_TEX1IMAGE);
|
MACH64_UPLOAD_TEX1IMAGE);
|
||||||
mmesa->lastTexAge[heap] = sarea->texAge[heap];
|
mmesa->lastTexAge[heap] = sarea->tex_age[heap];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue