intel: Compute in-aperture size for relaxed fenced objects
For relaxed fencing the object may only consume the small set of active pages, but still requires a fence region once bound into the aperture. This is the size we need to use when computing the maximum possible aperture space that could be used by a single batchbuffer and so avoid hitting ENOSPC. Reported-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>main
parent
d17681d538
commit
51b895041c
|
@ -467,8 +467,23 @@ drm_intel_bo_gem_set_in_aperture_size(drm_intel_bufmgr_gem *bufmgr_gem,
|
|||
* aperture. Optimal packing is for wimps.
|
||||
*/
|
||||
size = bo_gem->bo.size;
|
||||
if (bufmgr_gem->gen < 4 && bo_gem->tiling_mode != I915_TILING_NONE)
|
||||
size *= 2;
|
||||
if (bufmgr_gem->gen < 4 && bo_gem->tiling_mode != I915_TILING_NONE) {
|
||||
int min_size;
|
||||
|
||||
if (bufmgr_gem->has_relaxed_fencing) {
|
||||
if (bufmgr_gem->gen == 3)
|
||||
min_size = 1024*1024;
|
||||
else
|
||||
min_size = 512*1024;
|
||||
|
||||
while (min_size < size)
|
||||
min_size *= 2;
|
||||
} else
|
||||
min_size = size;
|
||||
|
||||
/* Account for worst-case alignment. */
|
||||
size = 2 * min_size;
|
||||
}
|
||||
|
||||
bo_gem->reloc_tree_size = size;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue