Maarten Maathuis <[email protected]> writes:

> - Currently reloc'ing a user bo to gart will first cause an allocation in 
> vram,
> which is then cpu written to, then the bo gets moved to gart.
>
> Signed-off-by: Maarten Maathuis <[email protected]>
> ---
>  nouveau/nouveau_reloc.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/nouveau/nouveau_reloc.c b/nouveau/nouveau_reloc.c
> index 301482b..332dfa0 100644
> --- a/nouveau/nouveau_reloc.c
> +++ b/nouveau/nouveau_reloc.c
> @@ -73,6 +73,12 @@ nouveau_reloc_emit(struct nouveau_channel *chan, struct 
> nouveau_bo *reloc_bo,
>               return -EINVAL;
>       }
>  
> +     /* We're about to reloc a user buffer, better make sure we don't cause
> +      * a double migration.
> +      */
> +     if (!(nvbo->flags & (NOUVEAU_BO_GART | NOUVEAU_BO_VRAM)))
> +             nvbo->flags |= (flags & (NOUVEAU_BO_GART | NOUVEAU_BO_VRAM));
> +
>       rpbbo = nouveau_bo_emit_buffer(chan, reloc_bo);
>       if (!rpbbo)
>               return -ENOMEM;

Looks good to me:
Acked-by: Francisco Jerez <[email protected]>

Attachment: pgpX4oYFsUZ9k.pgp
Description: PGP signature

_______________________________________________
Nouveau mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to