On Thu, May 21, 2015 at 11:03 AM, Thomas Hellstrom thellstrom@vmware.com wrote:
Hi, Rob!
On 05/21/2015 04:53 PM, Rob Clark wrote:
For actual sharing of buffers with other drivers (ie. actual hardware) we'll need to pimp things out a bit better to deal w/ caching, multiple memory domains, etc. See thread:
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_ar...
But for the llvmpipe use-case this isn't a problem. Nor do we really need prime/dri3 (dri2 is sufficient). So until the other issues are sorted lets remove DRIVER_PRIME.
NOTE this ends up leaving some basically dead code for prime import/ export (mostly because I was rushing to send this before a meeting).
What worries me a little is what Daniel brought up in his commit message, that let's say in the end people add a reasonable interface to dma_buf mmap, vgem also needs a corresponding interface... Makes me think that the best solution for now is perhaps to revert it.
Well, I think that is solvable.. ie. when vgem regains PRIME support, disallow mmap'ing of imported buffers (and disallow export?), and do all cpu-prep/fini stuff via dmabuf handle, for example.
Without prime, vgem is at least for now useful for allocating a dumb buffer and sharing it between X and client (for llvmpipe rendering).
BR, -R
/Thomas
Signed-off-by: Rob Clark robdclark@gmail.com
This is an alternative to removing vgem completely for 4.1, so that llvmpipe work can get started in parallel with sorting out the other issues for sw + hw access..
drivers/gpu/drm/vgem/vgem_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c index cb3b435..b0316f9 100644 --- a/drivers/gpu/drm/vgem/vgem_drv.c +++ b/drivers/gpu/drm/vgem/vgem_drv.c @@ -302,7 +302,7 @@ static const struct file_operations vgem_driver_fops = { };
static struct drm_driver vgem_driver = {
.driver_features = DRIVER_GEM | DRIVER_PRIME,
.driver_features = DRIVER_GEM, .gem_free_object = vgem_gem_free_object, .gem_vm_ops = &vgem_gem_vm_ops, .ioctls = vgem_ioctls,