Skip to content
  • Christian Gmeiner's avatar
    gallium: add renderonly library · 848b49b2
    Christian Gmeiner authored and Emil Velikov's avatar Emil Velikov committed
    
    
    This a very lightweight library to add basic support for renderonly
    GPUs. A kms gallium driver must specify how a renderonly_scanout
    objects gets created. Also it must provide file handles to the used
    kms device and the used gpu device.
    
    This could look like:
    struct renderonly ro = {
       .create_for_resource = renderonly_create_gpu_import_for_resource,
       .kms_fd = fd,
       .gpu_fd = open("/dev/dri/renderD128", O_RDWR | O_CLOEXEC)
    };
    
    The renderonly_scanout object exits for two reasons:
     - Do any special treatment for a scanout resource like importing the
       GPU resource into the scanout hw.
     - Make it easier for a gallium driver to detect if anything special
       needs to be done in flush_resource(..) like a resolve to linear.
    
    A GPU gallium driver which gets used as renderonly GPU needs to be
    aware of the renderonly library.
    
    This library will likely break android support and hopefully will get
    replaced with a better solution based on gbm2.
    
    Changes from V1 -> V2:
     - reworked the lifecycle of renderonly object (suggested by Nicolai Hähnle)
     - killed the midlayer (suggested by Thierry Reding)
     - made the API more explicit regarding gpu and kms fd's
     - added some docs
    
    Signed-off-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
    Acked-by: default avatarEmil Velikov <emil.velikov@collabora.com>
    Tested-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
    848b49b2