Hi Timothy, Out of curiosity, is that blitter MMU kind of "shared" with the CPU's MMU? or do you guys provide your own replacements for malloc()/realloc()/free(), for DirectFB?
Thanks, -Ilyes On Tue, Jun 21, 2011 at 11:31 PM, Strelchun, Timothy <timothy.strelc...@intel.com> wrote: > Hi Ilyes, > >>Is your h/w blitter able to cope with the virtual addresses >>(as seen within the user-space process) of the DirectFB surfaces? > > Yes, that is correct. Any graphics driver that reports support for system > memory surfaces would need to have a way to deal with the non-physically > contiguous (virtual) memory associated with them (such as via their own MMU > that's setup by the driver). > > Cheers, > Timothy > > >>-----Original Message----- >>From: Ilyes Gouta [mailto:ilyes.go...@gmail.com] >>Sent: Tuesday, June 21, 2011 3:20 PM >>To: Strelchun, Timothy >>Cc: directfb-dev@directfb.org >>Subject: Re: [directfb-dev] [PATCH] GPU system memory support >>mods for aligned buffer directfbrc commands (was RE: [PATCH] 3 >>patch set...) >> >>Hi Timothy, >> >>Is your h/w blitter able to cope with the virtual addresses >>(as seen within the user-space process) of the DirectFB surfaces? >> >>-Ilyes >> >>On Tue, May 31, 2011 at 6:35 AM, Strelchun, Timothy >><timothy.strelc...@intel.com> wrote: >>> I just realized there was another helpful set of changes (creating >>> aligned buffers!) for the previous set related to enabling a >>graphics >>> driver to handle system memory buffer allocations. >>> >>> Here are the details from patch: >>> >>> ----------------------- >>> Subject: [PATCH] GPU system memory support mods for aligned >>buffer directfbrc commands. >>> Added the directfbrc commands system-surface-base-alignment and >>> system-surface-pitch-alignment. If the graphics driver supports >>> system memory, these commands >>> are used to sets the byte alignment for the system memory based >>> surface's base address and >>> pitch, or zero for no alignment (which is the default). Aligning >>> these allows pixel data to >>> travel more efficiently through the CPU and across the >>memory bus to >>> increase performance, >>> and meet GPU requirements (if any). >>> >>> Updated the system memory surface pools to use these values for >>> creating surface buffers when they are non-zero. The local surface >>> pool will use the posix_memalign function and the shared >>surface pool will bloat the size to allow for base address to >>be aligned. >>> >>> ----------------------- >>> >>> Note: I set the minimum base address and pitch alignment >>size to very >>> small values since different graphics drivers will have different >>> requirements (some may be larger than others). >>> >>> Cheers, >>> Timothy >>> >>>>-----Original Message----- >>>>From: Strelchun, Timothy >>>>Sent: Sunday, May 15, 2011 3:36 AM >>>>To: 'directfb-dev@directfb.org' >>>>Subject: [PATCH] 3 patch set with core changes made to enable gfx >>>>drivers to handle system memory buffer allocations >>>> >>>>Well it took longer than anticipated to find some spare time to yank >>>>out the key changes from our custom DFB 1.4.3 core, but it's >>done now. >>>>Attached are the patches against the latest 1.5 tip that my >>team made >>>>to enable GPU-based support for malloc memory based surfaces. >>>> >>>>Note: Aside from validation compilation with the latest 1.5 >>code, we >>>>have only done runtime tests with these changes on our >>custom systems >>>>and graphics driver(s), and not with the standard DFB solution. It >>>>would be good to hear of any issues with it, improvements and/or >>>>successes. >>>> >>>>Here are the details from the patches: >>>> >>>>--------------------1 of 3 >>>>Subject: [PATCH] Allow graphic drivers to get buffers from >>any surface >>>>pools. >>>> This was done by adding the >>>>dfb_surface_pool_gfx_driver_update function to update any surface >>>>pools that match the specified types (such as >>>> CSTF_INTERNAL/PREALLOCATED) to by adding the specified >>>>CSAF_READ/WRITE flags to the indicated accessor (such as >>CSAID_GPU). >>>>It is intended to be called by a graphics driver from its >>>>driver_init_driver function. >>>> >>>>On a platform with a UMA, this now allows a graphics driver >>to say it >>>>also supports the local surface pool, shared surface pool, and/or >>>>pre-allocated surface pool. >>>> >>>>-----------------------2 of 3 >>>>Subject: [PATCH] Added buffer alloc destroy notify message. >>>> Added a surface notification message sent for each buffer >>allocation >>>>that is destroyed. It is sent by the dfb_surface_pool_deallocate >>>>function using a new notify function called dfb_surface_pool_notify. >>>> >>>>A graphics driver that allocates custom shared/local resources for a >>>>buffer allocation from any surface pool (such as the pre-allocated >>>>memory one) should register to receive this new buffer allocation >>>>destruction message. This will give the graphics driver (in each >>>>registered process) an opportunity to destroy those >>associated custom >>>>shared/local resources. >>>> >>>>-----------------------3 of 3 >>>>Subject: [PATCH] GPU system memory support cache flushing mods. >>>> Made changes necessary in the dfb_surface_buffer_lock function to >>>>handle GPU based reading or writing support for local and system >>>>memory based surface buffers (as well ones in user pre-allocated >>>>memory). Previously, when a GPU read/write was requested, the CPU >>>>memory cache was not flushed when the CPU had only read from the >>>>memory. Changes require validation on traditional non-UMA based >>>>graphics drivers. >>>> >>>>Updated the dfb_surface_pool_allocate function to alway mark >>brand new >>>>CoreSurfaceAllocations as having been both read and written >>to by the >>>>CPU. Updated the allocation_update_copy function to track that the >>>>CPU wrote to the destination buffer allocation and that it read from >>>>the source buffer allocation so that proper cache flushing >>will occur. >>>> >>>>----------------------- >>>> >>>>Cheers, >>>>Timothy >>>> >>>>-- >>>> >>>>Timothy Strelchun >>>>CE Software Engineering >>>>Digital Home Group >>>>Intel Corporation >>> _______________________________________________ >>> directfb-dev mailing list >>> directfb-dev@directfb.org >>> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev >>> >>> >> _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev