1. 23 Oct, 2020 3 commits
  2. 19 Oct, 2020 2 commits
  3. 16 Oct, 2020 1 commit
  4. 15 Oct, 2020 8 commits
  5. 14 Oct, 2020 3 commits
  6. 13 Oct, 2020 1 commit
  7. 12 Oct, 2020 4 commits
  8. 11 Oct, 2020 2 commits
  9. 10 Oct, 2020 1 commit
  10. 09 Oct, 2020 3 commits
  11. 08 Oct, 2020 1 commit
  12. 07 Oct, 2020 2 commits
  13. 06 Oct, 2020 2 commits
  14. 05 Oct, 2020 1 commit
  15. 04 Oct, 2020 1 commit
  16. 02 Oct, 2020 1 commit
    • Zbigniew Kempczyński's avatar
      lib/igt_core: Reinitialize print mutex in child process · 430bad5a
      Zbigniew Kempczyński authored
      IGT are prone to deadlock in igt_log() in following scenario:
      
      1. Parent process creates additional thread which for example
         is doing endless loop.
      2. Thread sometimes is logging to console using igt_info().
         This locks and unlocks print_mutex.
      3. If in the meantime parent process will spawn child process
         it can be created having print_mutex locked (thread entered
         igt_vlog() function and entered critical section). When child
         will try to log it will deadlock.
      
      We should reinitialize print_mutex in child process to avoid
      use inherited value.
      Signed-off-by: Zbigniew Kempczyński's avatarZbigniew Kempczyński <zbigniew.kempczynski@intel.com>
      Cc: Petri Latvala <petri.latvala@intel.com>
      Reviewed-by: Petri Latvala's avatarPetri Latvala <petri.latvala@intel.com>
      430bad5a
  17. 01 Oct, 2020 1 commit
  18. 30 Sep, 2020 3 commits
    • Matt Roper's avatar
      drm-uapi: Re-synchronize drm_fourcc.h with kernel · 19ae9421
      Matt Roper authored
      drm_fourcc.h should generally be a direct copy of the kernel's header
      file.  There have recently been a couple IGT commits that added
      not-yet-upstream framebuffer modifiers to IGT's copy of this header
      which isn't the standard procedure for handling pre-upstream changes
      like this.
      
      We've already ensured that the IGT tests and libraries that use those
      pre-upstream IDs has switched to pulling their values from a different
      local IGT header instead, so let's re-synchronize the drm_fourcc.h
      header with the latest copy from drm-tip now.
      
      This aligns IGT's drm_fourcc.h to the latest kernel commit da3a9e9a6aa9
      ("drm/fourcc: fix Amlogic Video Framebuffer Compression macro")
      
      v2: Split handling of non-upstream CCS_CC modifier into separate patch
          from the drm_fourcc.h resync.  (Lucas)
      
      Cc: Mika Kahola <mika.kahola@intel.com>
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Fixes: 37bc7b51 ("drm-uapi/drm_fourcc: Format modifier for GEN12 render engine with Color Clear")
      Signed-off-by: Matt Roper's avatarMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      19ae9421
    • Matt Roper's avatar
      lib/igt_fb: Use local definition of GEN12_RC_CCS_CC fb modifier · 39252cf5
      Matt Roper authored
      Support for CCS compression with Clear Color has not landed in the
      kernel yet, but tests for it already exist in IGT.  Until kernel support
      lands, we should use a local copy of the fb modifier ID from
      lib/ioctl_wrappers.h; the ID that was manually added to drm_fourcc.h
      UAPI header will be removed the next time we re-synchronize that header
      with the kernel.
      
      v2: Split igt_fb modifier usage into separate patch from the
          drm_fourcc.h resync.  (Lucas)
      Signed-off-by: Matt Roper's avatarMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      39252cf5
    • Lyude Paul's avatar
      tests: Add nouveau-crc tests · ec36877d
      Lyude Paul authored
      We're finally getting CRC support in nouveau, so let's start testing
      this in igt as well! While the normal CRC capture tests are nice,
      there's a number of Nvidia-specific hardware characteristics that we
      need to test as well.
      
      The most important one is known as a "notifier context flip". Basically,
      Nvidia GPUs store generated CRCs in an allocated memory region, referred
      to as the notifier context, that the driver programs itself. Strangely,
      this region can only hold a limited number of CRC entries, and once it
      runs out of available entries the hardware simply sets an overrun bit
      and stops writing any new CRC entries.
      
      Since igt-gpu-tools doesn't really have an expectation of only being
      able to grab a limited number of CRCs, we work around this in nouveau by
      allocating two separate CRC notifier regions each time we start
      capturing CRCs, and then flip between them whenever we get close to
      filling our currently programmed notifier context. While this keeps the
      number of CRC entries we lose to an absolute minimum, we are guaranteed
      to lose exactly one CRC entry between context flips. Thus, we add some
      tests to ensure that nouveau handles these flips correctly
      (pipe-[A-F]-ctx-flip-detection), and that igt itself is also able to
      handle them correctly (pipe-[A-F]-ctx-flip-skip-current-frame). Since
      these tests use a debugfs interface to manually control the notifier
      context flip threshold, we also add one test to ensure that any flip
      thresholds we set are cleared after a single CRC capture
      (ctx-flip-threshold-reset-after-capture).
      
      In addition, we also add some simple tests to test Nvidia-specific CRC
      sources.
      
      Changes since v5:
      * Fix typo
      Changes since v4:
      * Don't clear the currently set display pipe at the end of each iteration of
        pipe tests, otherwise we'll accidentally leave ourselves with no configured
        CRTCs when the test exits. Instead clear it at the start of each iteration of
        pipe tests but only if we just finished testing a different pipe.
      * Get rid of outdated comment about test_ctx_flip_detection() being limited to a
        single pipe
      * Clarify comments describing guarding against CRC collisions in
        test_ctx_flip_detection()
      * Make a small doc blurb for test_ctx_flip_detection(), it's a rather unusual
        and nvidia-specific behavior
      * Mention in test_ctx_flip_detection() that we also explicitly check that we've
        skipped -exactly- one frame. tl;dr more then one frame is too slow, less then
        one frame means a context flip just didn't happen when it should have.
      * Also check that the flip threshold we set in
        test_ctx_flip_threshold_reset_after_capture() isn't ignored by the driver
      * s/(create|destroy)_colors()/\1_crc_colors/g
      Changes since v3:
      * Update .gitlab-ci.yml to make nouveau exempt from the test-list-diff
        test, since all the cool kids are doing it and we don't care about
        autotools for nouveau
      Changes since v2:
      * Fix missing include in tests/nouveau_crc.c, this should fix builds for
        aarch64
      Changes since v1:
      * Fix copyright year in nouveau_crc.c
      Reviewed-by: Jeremy Cline's avatarJeremy Cline <jcline@redhat.com>
      Signed-off-by: Lyude Paul's avatarLyude Paul <lyude@redhat.com>
      ec36877d