2010/11/11 Keith Whitwell <kei...@vmware.com>:
> There is still more to do there.  Currently r600g treats buffer and texture 
> uploads separately, and I've only attempted to improve texture uploads.  
> Buffer is just as important however.
>
> The change needed is likely to be one of two:
> a) Allow newly created vertex buffers to be in the GTT domain, where they can 
> be mapped cached.
> b) Provide a staging resource upload path (with the staging buffer in GTT 
> domain).
>
> The latter will catch more cases and doesn't suffer from waits for the engine 
> to go idle when accessing an in-use buffer.  The former is probably fastest 
> for the cases where it works.
>
> Right now staged texture uploads use a 3d blit to copy from the staging 
> resource to the final destination.  That probably won't work (directly at 
> least) for buffer uploads as buffer dimensions (eg 64k by 1) mean they 
> usually can't be bound as render targets.  So we need to jump through some 
> hoops to get a hardware upload path in the absence of a DMA engine or 1d-blit.
>

The drm bo blit code can be used as a reference. it supports arbitrary
sizes and offsets using loops and scissors.
http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=blob;f=drivers/gpu/drm/radeon/r600_blit_kms.c;h=8362974ef41ac9eac713f1e66377661aa7106c0b;hb=refs/heads/drm-next

Alex

> Keith
> ________________________________________
> From: mesa-dev-bounces+keithw=vmware....@lists.freedesktop.org 
> [mesa-dev-bounces+keithw=vmware....@lists.freedesktop.org] On Behalf Of Alex 
> Deucher [alexdeuc...@gmail.com]
> Sent: Thursday, November 11, 2010 3:25 PM
> To: Christian König
> Cc: mesa-dev@lists.freedesktop.org
> Subject: Re: [Mesa-dev] Status update of XvMC on R600
>
> 2010/11/11 Christian König <deathsim...@vodafone.de>:
>> Am Mittwoch, den 10.11.2010, 15:30 -0500 schrieb Younes Manton:
>>> In the meantime, I suggest you check if your vertex buffers are in
>>> sytem memory (preferably at least WC-ed if not cached); I don't recall
>>> spending that much time in gen_block_verts in Nouveau.
>>
>> Looks like your suspicions about the vertex buffer not being in system
>> memory were right. Even if I move every single calculation from
>> gen_block_verts into the vertex shader the cpu time spend in this
>> function doesn't goes below ~35%.
>>
>> I also doesn't understand why it's only gen_block_verts and not
>> gen_macroblock_verts. Probably because most blocks are only intra
>> blocks, but we will see if this changes when I manage to implement
>> proper buffer usage modes into r600g.
>>
>
> FWIW, Keithw committed a bunch of r600g usage fixes last week.
>
> Alex
>
>> Christian.
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to