1. 14 Aug, 2020 2 commits
  2. 13 Aug, 2020 2 commits
  3. 12 Aug, 2020 1 commit
  4. 11 Aug, 2020 1 commit
    • Michael Olbrich's avatar
      compositor: use weston_view_is_opaque() to check for opacity in debug_scene_view_print() · b7e5f10b
      Michael Olbrich authored
      
      
      Currently the debug output for 'drm-backend' can be confusing. In the output of
      debug_scene_view_print() views may be listed as 'not opaque' but later, during
      plane assignment, other views underneath such a view is reported as 'occluded on
      our output'.
      This happens because weston_view_is_opaque() has some extra checks to determine
      if a view is fully opaque, such as 'is_opaque' provided by the renderer for
      formats that have no alpha channel.
      
      Use weston_view_is_opaque() in debug_scene_view_print() as well to get more
      accurate results.
      Signed-off-by: Michael Olbrich's avatarMichael Olbrich <m.olbrich@pengutronix.de>
      b7e5f10b
  5. 06 Aug, 2020 1 commit
  6. 30 Jul, 2020 2 commits
  7. 28 Jul, 2020 1 commit
  8. 09 Jul, 2020 1 commit
  9. 01 Jul, 2020 2 commits
  10. 25 Jun, 2020 2 commits
  11. 24 Jun, 2020 1 commit
    • Frank Binns's avatar
      shared: fix unused variable warning · 77d06f7b
      Frank Binns authored
      
      
      Fix the following build warning by moving the 'seals' declaration inside the
      HAVE_MEMFD_CREATE guard:
      
        ../shared/os-compatibility.c: In function ‘os_ro_anonymous_file_get_fd’:
        ../shared/os-compatibility.c:341:6: warning: unused variable ‘seals’ [-Wunused-variable]
          int seals, fd;
              ^
      Signed-off-by: Frank Binns's avatarFrank Binns <frank.binns@imgtec.com>
      77d06f7b
  12. 23 Jun, 2020 1 commit
  13. 12 Jun, 2020 1 commit
  14. 11 Jun, 2020 1 commit
    • Tomek Bury's avatar
      gl-renderer: fix pbuffer surface creation · ba548311
      Tomek Bury authored
      
      
      When there's neither configless nor surfaceless EGL extension
      (i.e. not a Mesa driver), Weston falls back to a dummy pbuffer surface.
      
      Weston attempts to find for that surface an EGL config but uses a NULL
      array of pixel formats. This fails with the following messages:
      
       EGL_KHR_surfaceless_context unavailable. Trying PbufferSurface
       Found an EGLConfig matching { pbf;  } but it is not usable because
          neither EGL_KHR_no_config_context nor EGL_MESA_configless_context
          are supported by EGL.
       failed to choose EGL config for PbufferSurface
       EGL error state: EGL_SUCCESS (0x3000)
       Failed to initialise the GL renderer;
      Signed-off-by: default avatarTomek Bury <tomek.bury@broadcom.com>
      ba548311
  15. 04 Jun, 2020 1 commit
    • Scott Anderson's avatar
      drm: Fix leak of damage blob id · 15c603ca
      Scott Anderson authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      
      This moves the creation of the blob to be earlier, to when the damage is
      calculated. It replaces the damage tracked inside of the plane state
      with the blob id itself.
      
      This should stop creating new blob ids for TEST_ONLY commits, and them
      being leaked in general, as the blob ids are now freed with the plane
      state.
      
      The FB_DAMAGE_CLIPS property is now always set if it's supported, and
      will be 0 in the case that we have no damage information, which
      signifies full damage to the kernel.
      Signed-off-by: Scott Anderson's avatarScott Anderson <scott.anderson@collabora.com>
      15c603ca
  16. 03 Jun, 2020 2 commits
  17. 02 Jun, 2020 5 commits
    • Leandro Ribeiro's avatar
      tests: add drm-backend smoke test · b1c529e9
      Leandro Ribeiro authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      
      This adds the first DRM-backend test. It is very simple
      and was made in order to make easier to add more complex
      DRM-backend tests in the future.
      Signed-off-by: Leandro Ribeiro's avatarLeandro Ribeiro <leandro.ribeiro@collabora.com>
      b1c529e9
    • Leandro Ribeiro's avatar
      tests: add support to run drm-backend tests locally · e8a8c13e
      Leandro Ribeiro authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      
      With this patch we add support to run DRM-backend tests locally
      in the test suite. For now this won't work in the CI, as there
      are no cards available. But the plan is to achieve this by using
      VKMS (virtual KMS) in the future.
      
      To run DRM-backend tests locally, first of all the user has to
      set the environment variable WESTON_TEST_SUITE_DRM_DEVICE to
      'card0', 'card1' or any other device where he wants to run
      the tests. Also, for now it only works if it is run as root,
      but in the future this problem will be solved.
      
      The tests will run on a non-default seat. The reason for that
      is that we want to avoid opening input devices unnecessarily.
      Also, since DRM-backend usage requires gaining DRM master status
      on a DRM KMS device, nothing else must be using the device at
      the same time. To achieve this we use a lock to run the
      DRM-backend tests sequentially.
      Signed-off-by: Leandro Ribeiro's avatarLeandro Ribeiro <leandro.ribeiro@collabora.com>
      e8a8c13e
    • Leandro Ribeiro's avatar
      drm-backend: add --continue-without-input command line option to DRM-backend · e57d8ae8
      Leandro Ribeiro authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      
      In the test suite we may want to run a DRM-backend test on a
      non-default seat, which may not have a input device associated.
      Weston's default behavior is to not open if input devices are
      not found, as it may cause troubles. For instance, Weston can
      open but if no input device is set than the user can not
      interact or leave it.
      
      Add flag --continue-without-input to DRM-backend so we can run
      these types of tests with no input. Notice that this won't force
      the compositor to skip opening a input device if it finds it on
      the non-default seat.
      Signed-off-by: Leandro Ribeiro's avatarLeandro Ribeiro <leandro.ribeiro@collabora.com>
      e57d8ae8
    • Leandro Ribeiro's avatar
      tests: properly select renderer for DRM-backend · 7b37b4d3
      Leandro Ribeiro authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      
      The test suite is dealing only with headless-backend tests.
      In order to make it able to run DRM-backend tests, we have
      to properly select the renderer that it will use.
      
      This patch add the command line option --use-pixman if the test
      defines the DRM-backend renderer as RENDERER_PIXMAN, and it will
      add nothing to the command line if it defines RENDERER_GL (the
      DRM-backend default renderer is already GL). Also, if the user
      defines the DRM-backend renderer as RENDERER_NOOP, the test will
      fail (as it should, since DRM-backend does not implement it).
      Signed-off-by: Leandro Ribeiro's avatarLeandro Ribeiro <leandro.ribeiro@collabora.com>
      7b37b4d3
    • Leandro Ribeiro's avatar
      tests: don't use width and height for drm/fbdev backend tests · e8033e3d
      Leandro Ribeiro authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      
      In the test suite we have some default options which
      are command line arguments used by most of the tests.
      Two of these are width==320 and height==240. But
      when we have DRM or fbdev backends, width and height
      are not possible command line arguments. This makes
      impossible to run tests that uses one of these types
      of backends, as the compositor won't open if the
      command line string is wrong.
      
      Fix this by not passing command line arguments width
      and height if the backend is DRM or fbdev.
      Signed-off-by: Leandro Ribeiro's avatarLeandro Ribeiro <leandro.ribeiro@collabora.com>
      e8033e3d
  18. 01 Jun, 2020 2 commits
  19. 28 May, 2020 1 commit
    • Pekka Paalanen's avatar
      timeline: convert vblank timestamp to MONOTONIC · 50aa3a76
      Pekka Paalanen authored
      
      
      All timeline event timestamps are in CLOCK_MONOTONIC already. DRM KMS
      timestamps are practically guaranteed to be CLOCK_MONOTONIC too, even though
      presentation clock could theoretically be something else. For other backends,
      the presentation clock is likely CLOCK_MONOTONIC_RAW due to
      weston_compositor_set_presentation_clock_software().
      
      This patch ensures that the recorded vblank timestamp is in CLOCK_MONOTONIC.
      Otherwise interpreting the timeline traces might be difficult to do accurately,
      since it would be hard to recover the relationship between the presentation
      clock and timeline event timestamps.
      
      The time conversion routine is the simplest possible, I don't think we need any
      more accurate conversion for timeline purposes. Besides, DRM-backend is the
      only backend where the timings actually matter, the other backends are
      software-timed anyway.
      
      Since the clock domain of the "vblank" attribute potentially changes, the
      attribute is renamed. Wesgr never used this attribute.
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.com>
      50aa3a76
  20. 25 May, 2020 2 commits
    • Michael Olbrich's avatar
      gl-renderer: query EGL to determine if GL_TEXTURE_EXTERNAL_OES should be used · 40c519a3
      Michael Olbrich authored and Daniel Stone's avatar Daniel Stone committed
      
      
      Using the number of planes to determine if GL_TEXTURE_EXTERNAL_OES should be
      used is incorrect with some modifiers: For example RGBA with a
      I915_FORMAT_MOD_Y_TILED_CCS modifier has two planes.
      
      Use eglQueryDmaBufModifiersEXT() to query if the current format/modifier only
      supports GL_TEXTURE_EXTERNAL_OES.
      
      Use the current code as fallback of modifiers are not supported.
      Signed-off-by: Michael Olbrich's avatarMichael Olbrich <m.olbrich@pengutronix.de>
      40c519a3
    • Alexandros Frantzis's avatar
      xdg-shell: Allow fullscreen surfaces to not cover the whole screen · f6bd2129
      Alexandros Frantzis authored and Daniel Stone's avatar Daniel Stone committed
      The wording of the xdg-shell protocol allows surfaces to not cover the
      whole screen when they are made fullscreen. From the description of the
      fullscreen state in xdg-shell:
      
        The window geometry specified in the configure event is a maximum; the
        client cannot resize beyond it. For a surface to cover the whole
        fullscreened area, the geometry dimensions must be obeyed by the
        client.
      
      The last sentence is the condition for fullscreen coverage, not a
      requirement.
      
      This commit updates the code to not flag size mismatches for fullscreen
      surfaces as a protocol error when the surface fits within the screen. In
      such cases, the shell is responsible for centering surfaces
      appropriately and also for obscuring other screen content as described
      in the xdg_toplevel.set_fullscreen request description (and, indeed,
      desktop-shell does all this).
      
      For reference, contrast with the corresponding, stricter wording in the
      obsolete xdg-shell-unstable-v6 p...
      f6bd2129
  21. 14 May, 2020 1 commit
  22. 12 May, 2020 1 commit
  23. 07 May, 2020 2 commits
  24. 29 Apr, 2020 1 commit
    • Michael Olbrich's avatar
      compositor: fix endless recursion in scene-graph printing · ef5f3233
      Michael Olbrich authored
      
      
      If a surface has subsurfaces then the surface itself is in the subsurface
      list. To avoid printing it again there is a check to skip the child view,
      if it is the same as the current view.
      
      However, this fails when a surface with subsurfaces has two (or more) views:
      The check to skip the parent fails for the other view and the two views are
      printed again and again until a stack overflow occurs.
      
      So instead check if the parent view of the subsurface view is the current
      view. This way, any view that does not belong to a real subsurface is
      skipped.
      
      As a side effect, this ensures that each view of the subsurfaces is only
      printed once at the correct place in the hierarchy.
      Signed-off-by: Michael Olbrich's avatarMichael Olbrich <m.olbrich@pengutronix.de>
      ef5f3233
  25. 06 Apr, 2020 1 commit
  26. 30 Mar, 2020 1 commit
  27. 20 Mar, 2020 1 commit