Hi, I just read how the i8x0 drivers use the timestamp of texture objects and heaps to avoid idling the engine for each texture upload. I think I'm going to do the same in the Savage driver.
However, I believe this doesn't handle the case of multiple clients. Whenever another client modified a texture heap the heap's timestamp should be updated when taking the lock. This could be done in the driver's getLock method. Example pseudo-patch for i810GetLock: /* Shared texture managment - if another client has played with * texture space, figure out which if any of our textures have been * ejected, and update our global LRU. */ for ( i = 0 ; i < imesa->nr_heaps ; i++ ) { + /* Update the heap's timestamp. Do this before DRI_AGE_TEXTURES updates local_age. */ + if ( imesa->texture_heaps[ i ] && + imesa->texture_heaps[ i ]->global_age[ 0 ] > imesa->texture_heaps[ i ]->local_age ) + imesa->texture_heaps[ i ]->timestamp = /* get a current time stamp */; DRI_AGE_TEXTURES( imesa->texture_heaps[ i ] ); } Does this look about right, or did I misunderstand something? Regards, Felix -- | Felix Kühling <[EMAIL PROTECTED]> http://fxk.de.vu | | PGP Fingerprint: 6A3C 9566 5B30 DDED 73C3 B152 151C 5CC1 D888 E595 | ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel