1. 26 Mar, 2017 2 commits
    • Eric Anholt's avatar
      drm/vc4: Use runtime autosuspend to avoid thrashing V3D power state. · 2bbcbc24
      Eric Anholt authored
      commit 3a622346 upstream.
      
      The pm_runtime_put() we were using immediately released power on the
      device, which meant that we were generally turning the device off and
      on once per frame.  In many profiles I've looked at, that added up to
      about 1% of CPU time, but this could get worse in the case of frequent
      rendering and readback (as may happen in X rendering).  By keeping the
      device on until we've been idle for a couple of frames, we drop the
      overhead of runtime PM down to sub-.1%.
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      Cc: Amit Pundir <amit.pundir@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2bbcbc24
    • Eric Anholt's avatar
      drm/vc4: Fix termination of the initial scan for branch targets. · dd0b0e22
      Eric Anholt authored
      commit 457e67a7 upstream.
      
      The loop is scanning until the original max_ip (size of the BO), but
      we want to not examine any code after the PROG_END's delay slots.
      There was a block trying to do that, except that we had some early
      continue statements if the signal wasn't a PROG_END or a BRANCH.
      
      The failure mode would be that a valid shader is rejected because some
      undefined memory after the PROG_END slots is parsed as a branch and
      the rest of its setup is illegal.  I haven't seen this in the wild,
      but valgrind was complaining when about this up in the userland
      simulator mode.
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      Cc: Amit Pundir <amit.pundir@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dd0b0e22
  2. 22 Mar, 2017 38 commits