1. 12 May, 2017 3 commits
  2. 12 Jan, 2017 1 commit
    • Christian Gmeiner's avatar
      gallium: add renderonly library · 848b49b2
      Christian Gmeiner authored
      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: Christian Gmeiner's avatarChristian Gmeiner <christian.gmeiner@gmail.com>
      Acked-by: default avatarEmil Velikov <emil.velikov@collabora.com>
      Tested-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
      848b49b2