The existing code effectively turns off preemptive flushing for all
but the regions used for draws. This turns out to be overly
restrictive as some memory regions, e.g. GMR, may never get a draw
when used as a DMA upload staging area, causing problems for apps
that upload a large amount of textures, e.g. Unigine Heaven.
This patch fixes the Unigine Heaven memory allocation error and
has been verified to not cause a regression in the previous extended
retina display issue.
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
pSuffix->flags = flags;
swc->commit(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
return PIPE_OK;
}
pSuffix->flags = flags;
swc->commit(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
return PIPE_OK;
}
cmd->box = *box;
swc->commit(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
return PIPE_OK;
}
SVGA_RELOC_WRITE | SVGA_RELOC_INTERNAL);
swc->commit(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
return PIPE_OK;
}
cmd->image.mipmap = mipLevel;
swc->commit(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
return PIPE_OK;
}
SVGA_RELOC_READ | SVGA_RELOC_INTERNAL);
swc->commit(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
return PIPE_OK;
}
cmd->invertBox = invertBox;
swc->commit(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
return PIPE_OK;
}
pipe_resource_reference(&dummy, &sbuf->b.b);
SVGA_FIFOCommitAll(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
sbuf->dma.flags.discard = FALSE;
return PIPE_OK;
SVGA_FIFOCommitAll(swc);
+ swc->hints |= SVGA_HINT_FLAG_DRAW_EMITTED;
sbuf->dma.flags.discard = FALSE;
return PIPE_OK;