mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-05 18:18:27 +02:00
nouveau: disallow pushbuf BOs in multiple memory types
Under certain circumstances it's possible for libdrm to decide to move a GART|VRAM pushbuf to be VRAM-only. This causes the kernel to reject the command submission on GF8 and up, due to a stricter policy where buffers are only allowed to move to memory types that were specified at creation time. The simplest fix for this is to force the creation-time memory type for the lifetime of the push buffer. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
baf0a7daaf
commit
891517f511
1 changed files with 4 additions and 4 deletions
|
|
@ -574,13 +574,13 @@ nouveau_pushbuf_new(struct nouveau_client *client, struct nouveau_object *chan,
|
|||
push->client = client;
|
||||
push->channel = immediate ? chan : NULL;
|
||||
push->flags = NOUVEAU_BO_RD;
|
||||
if (fifo->pushbuf & NOUVEAU_GEM_DOMAIN_VRAM) {
|
||||
push->flags |= NOUVEAU_BO_VRAM;
|
||||
nvpb->type = NOUVEAU_BO_VRAM;
|
||||
}
|
||||
if (fifo->pushbuf & NOUVEAU_GEM_DOMAIN_GART) {
|
||||
push->flags |= NOUVEAU_BO_GART;
|
||||
nvpb->type = NOUVEAU_BO_GART;
|
||||
} else
|
||||
if (fifo->pushbuf & NOUVEAU_GEM_DOMAIN_VRAM) {
|
||||
push->flags |= NOUVEAU_BO_VRAM;
|
||||
nvpb->type = NOUVEAU_BO_VRAM;
|
||||
}
|
||||
nvpb->type |= NOUVEAU_BO_MAP;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue