.. | .. |
---|
823 | 823 | if (ret == 0) { |
---|
824 | 824 | ret = nouveau_fence_new(chan, false, &fence); |
---|
825 | 825 | if (ret == 0) { |
---|
| 826 | + /* TODO: figure out a better solution here |
---|
| 827 | + * |
---|
| 828 | + * wait on the fence here explicitly as going through |
---|
| 829 | + * ttm_bo_move_accel_cleanup somehow doesn't seem to do it. |
---|
| 830 | + * |
---|
| 831 | + * Without this the operation can timeout and we'll fallback to a |
---|
| 832 | + * software copy, which might take several minutes to finish. |
---|
| 833 | + */ |
---|
| 834 | + nouveau_fence_wait(fence, false, false); |
---|
826 | 835 | ret = ttm_bo_move_accel_cleanup(bo, |
---|
827 | 836 | &fence->base, |
---|
828 | 837 | evict, false, |
---|