Am Donnerstag, den 06.12.2012, 16:13 +0800 schrieb Mark Zhang: > On 12/06/2012 04:00 PM, Lucas Stach wrote: [...] > > > > Or maybe I'm misunderstanding you and you mean it the other way around. > > You don't let userspace dictate the addresses, the relocation > > information just tells the kernel to find the addresses of the > > referenced buffers for you and insert them, instead of the dummy > > information, into the command stream. > > Yes, I think this is what I mean. No dummy information in the command > stream, userspace just fills the address which it uses(actually this is > cpu address of the buffer) in the command stream, and our driver must > have a HashTable or something which contains the buffer address pair -- > (cpu address, dma address), so our driver can find the dma addresses for > every buffer then modify the addresses in the command stream. > > Hope I explain that clear. > And to do so we would have to hold an unfortunately large table in kernel, as a buffer can be mapped by different userspace processes at different locations. Also you would have to match against some variably sized ranges to find the correct buffer, as the userspace would have to pack bufferbaseaddress and offset into same value. I really don't think it's worth the hassle and it's the right way to use the proven scheme of a sidebandbuffer to pass in the reloc informations. Regards, Lucas _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel