• Victor Miura's avatar
    gpu scheduler: Compute stream priorities based on priority of waiters. · 56eadad0
    Victor Miura authored
    Previously, a stream tracked all of it's fences that had waiting streams
    in 'release_fences'.  If 'release_fences' was non-empty, the stream's
    priority got bumped up to High.  This means a stream with Normal priority
    waiting on Low priority stream could bump that stream up to High priority.
    
    This change removes that tracking, and instead keeps count of the number
    of waiting streams at each StreamPriority.  The highest priority with non-
    zero count becomes the stream's priority.
    
    When a stream changes priority, it recursively propagates it's new priority
    to all streams it's waiting on.
    
    BUG=781585
    
    Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
    Change-Id: I1fc96f6ca065a8e1f83ddaa61ae4f9725c324bcb
    Reviewed-on: https://chromium-review.googlesource.com/754415
    Commit-Queue: Victor Miura <vmiura@chromium.org>
    Reviewed-by: default avatarSunny Sachanandani <sunnyps@chromium.org>
    Reviewed-by: default avatarAntoine Labour <piman@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#515097}
    56eadad0
scheduler.cc 21.9 KB