1. 22 Jul, 2016 3 commits
  2. 27 Jun, 2016 1 commit
    • Armin Krezović's avatar
      gl-renderer: Always setup gl-renderer · 28d240f2
      Armin Krezović authored
      Currently, the gl-renderer setup is being done on per-output
      basis. This isn't desirable when trying to make weston run
      with zero outputs.
      
      When there are no outputs present, there is no surface available
      to attach an EGLContext to with eglMakeCurrent, which makes
      any EGL command fail.
      
      The problem is solved by using EGL_KHR_surfaceless_context to
      bind an EGLContext to EGL_NO_SURFACE, or if that is
      unavailable, creating a dummy PbufferSurface and binding an
      EGLContext to it, so EGL gets set up properly.
      
      v2:
      
      - Move PbufferSurface creation into its own function
      - Introduce a new EGLConfig with EGL_PBUFFER_BIT set
        and use it to create a PbufferSurface
      - Make PbufferSurface attributes definition static
      - Check for return of gl_renderer_setup and terminate
        in case it fails
      - Remove redundant gl_renderer_setup call from
        gl_renderer_output_create
      - Only destroy the dummy surface if it is valid
      
      This patch causes a warning from Mesa when using the i965 driver:
      libEGL warning: FIXME: egl/x11 doesn't support front buffer rendering.
      A bug has been filed about it since it seems to be spurious:
      https://bugs.freedesktop.org/show_bug.cgi?id=96694Signed-off-by: default avatarArmin Krezović <krezovic.armin@gmail.com>
      [Pekka: filed a Mesa bug and added the note in commit msg]
      Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      28d240f2
  3. 23 Jun, 2016 1 commit
  4. 22 Mar, 2016 1 commit
  5. 14 Jan, 2016 1 commit
  6. 11 Jan, 2016 2 commits
  7. 02 Dec, 2015 1 commit
  8. 20 Nov, 2015 2 commits
  9. 19 Nov, 2015 1 commit
  10. 21 Aug, 2015 1 commit
  11. 14 Aug, 2015 2 commits
    • Pekka Paalanen's avatar
      gl-renderer: add dmabuf import · a3525802
      Pekka Paalanen authored
      Import dmabuf as an EGLImage, and hold on to the EGLImage until we are
      signalled a content change. On content change, destroy the EGLImage and
      re-import to trigger GPU cache flushes.
      
      We hold on to the EGLImage as long as possible just in case the client
      does other imports that might later make re-importing fail.
      
      As dmabuf protocol uses drm_fourcc codes, we need libdrm for
      drm_fourcc.h. However, we are not doing any libdrm function calls, so
      there is no new need to link to libdrm.
      
      RFCv1 changes:
      - fix error if dmabuf exposed unsupported
      - always use GL_TEXTURE_EXTERNAL_OES with dmabuf
      
      v2 changes:
      - improve support check and error handling
      - hold on to the imported EGLImage to avoid the dmabuf becoming
        unimportable in the future
      - send internal errors with linux_dmabuf_buffer_send_server_error()
      - import EGL_EXT_image_dma_buf_import extension headers
      - use heuristics to decide between GL_TEXTURE_2D and
        GL_TEXTURE_EXTERNAL_OES
      - add comment about Mesa requirements
      - change y-invert from per-plane boolean to per-buffer flag
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Signed-off-by: Louis-Francis Ratté-Boulianne's avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      a3525802
    • Louis-Francis Ratté-Boulianne's avatar
      gl-renderer: introduce struct egl_image · 534defdf
      Louis-Francis Ratté-Boulianne authored
      This is a reference-counted holder of an EGLImage. For now, direct
      EGLImage usage is simply converted to use egl_image. Use of reference
      counting will come in a later patch.
      
      v2:
      - this is a new patch, split from gl-renderer dmabuf import support
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      534defdf
  12. 17 Jul, 2015 1 commit
    • Derek Foreman's avatar
      input: Pass the appropriate pointer type to bindings instead of a seat · 8ae2db5b
      Derek Foreman authored
      Normally we need to check if a seat's [device_type]_count is > 0 before
      we can use the associated pointer.  However, in a binding you're
      guaranteed that the seat has a device of that type.  If we pass in
      that type instead of the seat, it's obvious we don't have to test it.
      
      The bindings can still get the seat pointer via whatever->seat if they
      need it.
      
      This is preparation for a follow up patch that prevents direct access
      to seat->device_type pointers, and this will save us a few tests at
      that point.
      Reviewed-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      Signed-off-by: default avatarDerek Foreman <derekf@osg.samsung.com>
      8ae2db5b
  13. 16 Jun, 2015 2 commits
  14. 15 Jun, 2015 1 commit
  15. 22 May, 2015 1 commit
  16. 18 May, 2015 2 commits
  17. 08 Apr, 2015 3 commits
  18. 26 Mar, 2015 2 commits
  19. 20 Mar, 2015 2 commits
  20. 11 Mar, 2015 1 commit
  21. 09 Mar, 2015 1 commit
  22. 04 Mar, 2015 1 commit
  23. 25 Feb, 2015 2 commits
  24. 24 Feb, 2015 1 commit
    • Pekka Paalanen's avatar
      compositor: turn weston_view boundingbox into masked · 25c0ca57
      Pekka Paalanen authored
      weston_view::transform.boundingbox is made to include the layer mask,
      which removes the need for masked_boundingbox.
      
      The following were using boundingbox when they should have used
      masked_boundingbox:
      - drm_output_prepare_overlay_view() uses boundingbox to compute overlay
        position, source and destination coordinates.
      - drm_assign_planes() uses boundingbox for view overlap checks.
      - is_view_not_visible() uses boundingbox, but nothing will show outside
        the layer mask.
      - weston_surface_assign_output() intersects boundingbox with output
        region to choose the primary output for a surface.
      - weston_view_assign_output() intersects boundingbox with output region
        to pick the outputs the view is on.
      
      This patch essentially changes all those cases to use the masked
      boundingbox.
      
      Therefore there are no cases which would need the boundingbox without
      the layer mask, and we can convert boundingbox into masked and remove
      the left-over member.
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      [v2: don't move the decl of 'mask' in weston_view_update_transform]
      Reviewed-By: default avatarGiulio Camuffo <giuliocamuffo@gmail.com>
      25c0ca57
  25. 28 Nov, 2014 2 commits
  26. 21 Nov, 2014 1 commit
  27. 10 Oct, 2014 1 commit