Felix Kühling wrote:
Am Sa, den 18.12.2004 schrieb Tomas Carnecky um 14:54:

Most (all?) supported hardware doesn't support multiple clipping
rectangles in hardware, so the driver iterates over them and draws all
primitives once in each clipping rectangle.

Quite CPU expensive, isn't it?


It seems to me that the framebuffer is allocated from the main meory, not from the videocard memory.

Ok, I think I've found it: linux-code/drm_bufs.c::drm_addmap (or DRM_IOCTL_ADD_MAP).

typedef struct drm_map {
        unsigned long offset;    /**< Requested physical address (0 for SAREA)*/
        unsigned long size;      /**< Requested physical size (bytes) */
        drm_map_type_t type;     /**< Type of memory to map */
        drm_map_flags_t flags;   /**< Flags */
        void *handle;            /**< User-space: "Handle" to pass to mmap() */
                                 /**< Kernel-space: kernel-virtual address */
        int mtrr;                /**< MTRR slot used */
        /*   Private data */
} drm_map_t;


DRM maps are created by the Xserver (2D driver) in order to make certain
address ranges available to DRM clients (3D driver). This way
front/back/depth buffers, DMA buffers, texture regions, sometimes MMIO
regions and the shared memory area that contains the global DRM lock are
handled. DRM clients can map these into their address space using the
drm_map ioctl.

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?


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

Reply via email to