drm/vmwgfx: Assign eviction priorities to resources
TTM provides a means to assign eviction priorities to buffer object. This means that all buffer objects with a lower priority will be evicted first on memory pressure. Use this to make sure surfaces and in particular non-dirty surfaces are evicted first. Evicting in particular shaders, cotables and contexts imply a significant performance hit on vmwgfx, so make sure these resources are evicted last. Some buffer objects are sub-allocated in user-space which means we can have many resources attached to a single buffer object or resource. In that case the buffer object is given the highest priority of the attached resources. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Deepak Rawat <drawat@vmware.com>
This commit is contained in:
@@ -88,6 +88,8 @@ static const struct vmw_res_func vmw_gb_context_func = {
|
||||
.res_type = vmw_res_context,
|
||||
.needs_backup = true,
|
||||
.may_evict = true,
|
||||
.prio = 3,
|
||||
.dirty_prio = 3,
|
||||
.type_name = "guest backed contexts",
|
||||
.backup_placement = &vmw_mob_placement,
|
||||
.create = vmw_gb_context_create,
|
||||
@@ -100,6 +102,8 @@ static const struct vmw_res_func vmw_dx_context_func = {
|
||||
.res_type = vmw_res_dx_context,
|
||||
.needs_backup = true,
|
||||
.may_evict = true,
|
||||
.prio = 3,
|
||||
.dirty_prio = 3,
|
||||
.type_name = "dx contexts",
|
||||
.backup_placement = &vmw_mob_placement,
|
||||
.create = vmw_dx_context_create,
|
||||
|
Reference in New Issue
Block a user