Am So, den 19.12.2004 schrieb Tomas Carnecky um 15:32:
Who exactly does map the memory? The Xserver or the DRM library? If it's the Xserver, how can it know where all the different buffers are?
I'm not sure I understand the question. I'll rephrase the above and hope it clears up any misunderstandings. The Xserver creates the maps using the drm_addmap ioctl. It knows the physical location of the video memory from the the PCI resource lists (you may want to take a look at the PCI scan in your Xorg.0.log for details). As for AGP memory, it only needs to pass offsets in the AGP aperture. Shared memory areas (only the Sarea in most/all drivers) are allocated at free physical addresses. They don't even need to be physically contiguous.
These drm maps are mapped by the 3D driver into the direct rendering application's address space using the drm_map ioctl.
So.. the Xserver creates the maps, and the 3D driver maps them into the application's address space?
Because the maps are identified using 'handles', the Xserver has to pass the handles to the 3D driver, right?
And does the Xserver map the whole video memory (everything it sees in the PCI resource list) or just what it needs?
There is the DRI kernel module for each card/chip, the PCI scaning could be done in this kernel module.
tom
------------------------------------------------------- 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://productguide.itmanagersjournal.com/ -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel