1. 04 Feb, 2019 1 commit
  2. 24 Jan, 2019 1 commit
    • Florian Müllner's avatar
      cogl: Fix builds with G_DISABLE_ASSERT · 5c3ec27b
      Florian Müllner authored
      Commit 25f416c1 added additional compilation warnings, including
      -Werror=return-type. There are several places where this results
      in build failures if `g_assert_not_reached()` is disabled at compile
      time and the compiler misses a return value.
      
      #447
      5c3ec27b
  3. 23 Jan, 2019 4 commits
  4. 22 Jan, 2019 7 commits
  5. 10 Jan, 2019 1 commit
    • Georges Basile Stavracas Neto's avatar
      Drop Autotools · 763ae36c
      Georges Basile Stavracas Neto authored
      I saw Meson fade from the sky
      On the wind I heard a sigh
      As snowflakes cover fallen Makefiles
      I will say this last goodbye
      
      Meson is now coming
      So ends Autotools days
      Future is now coming
      And we must away
      Over Python and without Bashisms
      Through lands where never Meson touched
      By silver streams that run down to the Sea
      
      Under parsers, beneath old legacy
      Over snow one winter’s morn
      I turned at last to paths that lead home
      And though where the road then takes me
      I cannot tell
      We came all this way
      But now comes the day
      To bid you farewell
      
      Many places I have been
      Many sorrows I have seen
      But I don’t regret
      Nor will I forget
      All Makefiles that took that road with me
      
      I bid you all a very fond farewell.
      763ae36c
  6. 08 Jan, 2019 2 commits
    • Florian Müllner's avatar
      build: Install .pc files in correct location · d360b25b
      Florian Müllner authored
      If a library is provided in the positional arguments, then meson
      defaults to installing the .pc file in a 'pkgconfig' subdirectory
      in the library's install location. We want the files in the regular
      $libdir/pkgconfig rather than $libdir/mutter-$api/pkgconfig, so
      specify the location explicitly in the parameters.
      
      GNOME/mutter!382
      d360b25b
    • Jonas Ådahl's avatar
      build: Pass library as first argument to pkg.generate() · 73ddd7cd
      Jonas Ådahl authored
      Dependencies are added automatically, and we no longer get warnings
      like:
      
      clutter/clutter/meson.build:628: DEPRECATION: Library mutter-clutter-4
      was passed to the "libraries" keyword argument of a previous call to
      generate() method instead of first positional argument. Adding
      mutter-clutter-4 to "Requires" field, but this is a deprecated behaviour
      that will change in a future version of Meson. Please report the issue
      if this warning cannot be avoided in your case.
      73ddd7cd
  7. 03 Jan, 2019 3 commits
    • Jonas Ådahl's avatar
      cogl/texture: Add API to check whether _get_data() will work · eac18647
      Jonas Ådahl authored
      Currently, GL_TEXTURE_EXTERNAL_OES textures doesn't support getting pixel data.
      Make it possible for texture users to know this.
      
      !362
      eac18647
    • Jonas Ådahl's avatar
      cogl/texture-2d-gl: Bind correct target when getting data · c681ccef
      Jonas Ådahl authored
      While for normal textures, GL_TEXTURE_2D should be used, when it's an external
      texture, binding it using GL_TEXTURE_2D results in an error.
      
      Reading the specification for GL_TEXTURE_EXTERNAL_OES it is unclear whether
      getting pixel data from a texture is possible, and tests show it doesn't result
      in any data, but in case it would eventually start working, at least bind the
      correct target for now.
      
      !362
      c681ccef
    • Jonas Ådahl's avatar
      cogl/texture-2d-gl: Try to determine format for external textures · b3292561
      Jonas Ådahl authored
      Don't just set the internal format to the dummy format "any", as that causes
      code intended to be unreachable code to be reached. It's not possible to
      actually know the internal format of an external texture, however, so it might
      not actually correspond to the real format.
      
      !362
      b3292561
  8. 22 Dec, 2018 1 commit
    • Jonas Ådahl's avatar
      build: Always pass --quiet to g-ir-scanner · f7d4a727
      Jonas Ådahl authored
      This makes the build less verbose, as all .gir generation except for
      clutters didn't pass --quiet to g-ir-scanner, making it output long
      linking commands. Do this by adding a common introspection_args
      variable.
      
      While at it, put -U_GNU_SOURCE in there too, as it was always passed
      everywhere as without it the scanner would log warnings.
      f7d4a727
  9. 20 Dec, 2018 2 commits
    • Georges Basile Stavracas Neto's avatar
      Add Meson support for installed tests · ebb6c56f
      Georges Basile Stavracas Neto authored
      This is the last remaining feature necessary to achieve
      parity with the Autotools build.
      
      A few changes were made to the install locations of the
      tests, in order to better acomodate them in Meson:
      
       * Tests are now installed under a versioned folder (e.g.
         /usr/share/installed-tests/mutter-4)
      
       * The mutter-cogl.test file is now generated from an .in
         file, instead of a series of $(echo)s from within Makefile.
      
      Notice that those tests need very controlled environments
      to run correctly. Mutter installed tests, for example, will
      failed when running under a regular session due to D-Bus
      failing to acquire the ScreenCast and/or RemoteScreen names.
      ebb6c56f
    • Georges Basile Stavracas Neto's avatar
      cogl/tests: Use tmp file to dump test results · 05ab8eeb
      Georges Basile Stavracas Neto authored
      When running installed tests, the working directory for Cogl
      tests is /usr/libexec/installed-tests/mutter-cogl-4/conform,
      which isn't writable by normal users.
      
      To avoid the adding stray hidden files to the current directory,
      adapt the runner script to fallback to $(mktemp) - which is
      available on all platform we care about - and avoid adding
      hidden files everywhere.
      05ab8eeb
  10. 19 Dec, 2018 2 commits
    • Pekka Paalanen's avatar
      cogl: Pick glReadPixels format by target, not source · 981b0454
      Pekka Paalanen authored
      Presumably glReadPixels itself can be more performant with pixel format
      conversions than doing a fix-up conversion on the CPU afterwards. Hence,
      pick required_format based on the destination rather than the source, so
      that it has a better chance to avoid the fix-up conversion.
      
      With CoglOnscreen objects, CoglFramebuffer::internal_format (the source
      format) is also wrong. It is left to a default value and never set to
      reflect the reality. In other words, read-pixels had an arbitrary
      intermediate pixel format that was used in glReadPixels and then fix-up
      conversion made it work for the destination.
      
      The render buffers (GBM surface) are allocated as DRM_FORMAT_XRGB8888.
      If the destination buffer is allocated as the same format, the Cogl
      read-pixels first converts with glReadPixels XRGB -> ABGR because of the
      above default format, and then the fix-up conversion does ABGR -> XRGB.
      This case was observed with DisplayLink outputs, where the native
      renderer must use the CPU copy path to fill the "secondary GPU"
      framebuffers.
      
      This patch stops using internal_format and uses the desired destination
      format instead.
      
      _cogl_framebuffer_gl_read_pixels_into_bitmap() will still use
      internal_format to determine alpha premultiplication state and multiply
      or un-multiply as needed. Luckily all the formats involved in the
      DisplayLink use case are always _PRE and so is the default
      internal_format too, so things work in practise.
      
      Furthermore, the GL texture_swizzle extension can never apply to
      glReadPixels. Not even with FBOs, as found in this discussion:
      GNOME/mutter#72
      Therefore the target_format argument is hardcoded to something that can
      never match anything, which will prevent the swizzle from being assumed.
      
      GNOME/mutter!313
      981b0454
    • Pekka Paalanen's avatar
      cogl: Remove mesa_46631_slow_read_pixels_workaround · 6502735f
      Pekka Paalanen authored
      This function gets hit even today on relatively modern Intel systems (I
      have a Haswell Desktop with Mesa 18.2.4) if the pixel format is right.
      Presumably it makes things slower for no longer a reason.
      
      According to cb146dc5, this
      functionality was refactored into a workaround path in 2012. The commit
      message mentions the problem existing before Mesa 8.0.2. The number
      refers to https://bugs.freedesktop.org/show_bug.cgi?id=46631 .
      
      The use case where I hit this is when improving support for DisplayLink
      video outputs. These are used through a "secondary GPU", and since
      DisplayLink does not have a GPU, Mutter uses the CPU copy path with Cogl
      read-pixels[1]. If the DisplayLink framebuffer was allocated as
      DRM_FORMAT_XRGB8888 (the only format it currently handles correctly),
      mesa_46631_slow_read_pixels_workaround would get hit. The render buffer is
      the same format as the framebuffer, yet doing the copy XRGB -> XRGB ends
      up being slower than XRGB -> XBGR which makes no sense.
      
      This patch is not sufficient to fix the XRGB -> XRGB copy performance,
      but it is required.
      
      This patch reverts CoglGpuInfoDriverBug into what it was before
      cb146dc5.
      
      [1] This is not actually true until
          !278 is
          merged.
      
      !313
      6502735f
  11. 18 Dec, 2018 1 commit
  12. 11 Dec, 2018 1 commit
  13. 06 Dec, 2018 1 commit
    • Georges Basile Stavracas Neto's avatar
      cogl-framebuffer: Remove swap_throttled config · 7d201011
      Georges Basile Stavracas Neto authored
      Since now we don't set the swap throttled value based
      on sync-to-vblank, we can effectively remove it from
      Cogl. Throttling swap buffers in Cogl is as much a
      historical artifact as sync-to-vblank. Furthermore,
      it doesn't make sense to disable it on a compositor,
      which is the case with the embedded Cogl.
      
      In addition to that, the winsys vfunc for updating
      whenever swap throttling changes could also be removed,
      since swap throttling is always enabled now.
      
      Removing it means less code, less branches when running,
      and one less config option to deal with.
      
      This also removes the micro-perf test, since it doesn't
      make sense for the case where Cogl is embedded into the
      compositor.
      
      GNOME/mutter!191
      7d201011
  14. 05 Dec, 2018 1 commit
  15. 01 Dec, 2018 2 commits
    • Ting-Wei Lan's avatar
      tests: Fix warnings reported by shellcheck · 319500e4
      Ting-Wei Lan authored
      This commit includes following fixes for a few shell scripts:
      
      1. Follow the best practice of quoting variables everywhere unless they
         are used in places where word-splitting and globbing can never happen.
      
      2. Replace `command` with $(command) because the latter is easier to use
         and read.
      
      3. Don't use "$@" in places expecting a string because it is an array
         of strings instead of a single string.
      319500e4
    • Ting-Wei Lan's avatar
      build: Don't hardcode the path of bash · b2e75b5d
      Ting-Wei Lan authored
      Bash is not always installed in /bin and we should not hardcode the path
      of it in source code which is expected to be built on many operating
      systems and distributions.
      
      Since most scripts using #!/bin/bash here doesn't have any bashism,
      they can be converted to #!/bin/sh instead of using /usr/bin/env trick.
      b2e75b5d
  16. 23 Nov, 2018 3 commits
  17. 20 Nov, 2018 1 commit
  18. 14 Nov, 2018 1 commit
  19. 08 Nov, 2018 2 commits
  20. 07 Nov, 2018 3 commits