Ian Romanick wrote: > On Fri, Sep 27, 2002 at 07:53:22PM +0100, Keith Whitwell wrote: > > >>One option is to have the kernel actually do the fixup of the buffers when >>they are submitted by the client, so the driver never knows really where it's >>textures are, but talks about them via. some indirection. >> > > I've been looking into this to assess the difficulty of such an > implementation. The back patching would be done in radeon_emit_state / > radeon_emit_packets, yes? > > In radeon_emit_packets you have some code like: > > if ( packet is RADEON_PP_TXFILTER_? or R200_PP_TXOFFSET_? ) > { > texture_id = data[ offset_of_texture_id ]; > address = address of texture_id; > if ( address is not in texturable memory ) > { > address = get space for texture; > copy_texture( from user memory to address ); > } > > data[ offset_of_texture_id ] = address of texture_id; > } > > Is that basically what you had in mind? There would be similar code in > radeon_emit_state.
Yes, effectively. The only other choice is to have the client emit data about where to find values in the command stream that need to be fixed up. > Ignoring issues of SGIS_generate_mipmaps or glCopyPixels for a moment, a > system like this would need some sort of fencing. Basically, reference > counting for packets that set a texture. When a texture is bound to a > texture unit, increment the counter. When another texture is bound, put a > command in the stream to trigger an interrupt. When the interrupt is > received, decrement the counter. If the counter is zero, then the texture > is not in use and can be taken out of memory. Interrupts are much to expensive to use each time a texture is bound... It will be necessary to think about this at a lower time frequency, or find some mechanism other than irq's to acheive it. > This would also allow proper synchronization of glTexSubImage?D. > > This also raises the question of NV_fence. If we go down this path, we will > have already implemented most of the infrastructure for NV_fence. Should we > go the final mile and export it? We should do this anyway. Keith ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel