Hi Thomas,

I think ttm is doing somethings wrong when we validate a bo for the
same mem type but with different cache flags. Here is my understanding :

(Use case i am refering too is object validate with
current state GTT | CACHED validate to GTT | WC)

if (!ttm_bo_mem_compat(bo->proposed_placement, &bo->mem)
Is evaluate as true because cache flags are differents, For instance
is it goes from UNCACHED to WC or CACHED.

So ttm_bo_move_buffer get call, which call ttm_bo_handle_move_mem
in there caching change will only happen if there is no ttm allocated
which might not be the case if for instance we are dealing with
GTT memory (so i think cache transitioning of the object is wrong
and we should move ttm_tt_set_placement_caching outside the if
in ttm_bo_handle_move_mem).

ttm_bo_handle_move_mem will end up calling driver callback move
routine which will call in radeon case the ttm_bo_move_accel_cleanup
and which will create a ghost object holding the ttm memory in order
to delete it at latter point (which is wrong as this memory is still
needed).

So shouldn't the ttm_bo_move_buffer catch this and not call device
move callback but simply transition cache setup of the object ?
Or do i misunderstand somethings ?

Cheers,
Jerome


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to