Enable FBC on SKL

Submitted by Chris Wilson on March 21, 2016, 7:26 p.m.

Details

Reviewer None
Submitted March 21, 2016, 7:26 p.m.
Last Updated June 21, 2016, 7:30 a.m.
Revision 9

Cover Letter(s)

Revision 1
      Hi

Here's a patch series to workaround the current SKL FBC problems, then try to
enable it by default.

Between patch 2/4 and the DDX patch, we only need one of them for things to
work. We'll also be fine if we merge both, but we need at least one.

No IGT changes are needed due to the automatic workaround disable during
dirtyfb/sw_finish.

Thanks,
Paulo

Paulo Zanoni (4):
  drm/i915/fbc: update busy_bits even for GTT and flip flushes
  drm/i915/fbc: sanitize i915.enable_fbc during FBC init
  drm/i915: opt-out CPU and WC mmaps from FBC
  drm/i915/fbc: enable FBC on SKL too

 drivers/gpu/drm/i915/i915_drv.h          |  9 +++++
 drivers/gpu/drm/i915/i915_gem.c          | 19 ++++++----
 drivers/gpu/drm/i915/intel_display.c     |  1 +
 drivers/gpu/drm/i915/intel_drv.h         |  3 ++
 drivers/gpu/drm/i915/intel_fbc.c         | 60 ++++++++++++++++++++++++++------
 drivers/gpu/drm/i915/intel_frontbuffer.c | 31 +++++++++++++++++
 6 files changed, 105 insertions(+), 18 deletions(-)
    
Revision 2
      Now with the suggestion from Chris instead of the old workaround. We don't need
new DDX patches anymore, but now we need new IGT patches.

Chris Wilson (1):
  drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps

Paulo Zanoni (3):
  drm/i915/fbc: update busy_bits even for GTT and flip flushes
  drm/i915/fbc: sanitize i915.enable_fbc during FBC init
  drm/i915/fbc: enable FBC on gen 9+ too

 drivers/gpu/drm/i915/i915_drv.h  |  1 +
 drivers/gpu/drm/i915/i915_gem.c  | 14 +++++++++++---
 drivers/gpu/drm/i915/intel_fbc.c | 27 ++++++++++++++++-----------
 3 files changed, 28 insertions(+), 14 deletions(-)
    

Revisions

Patches download mbox

Tests


http://patchwork.freedesktop.org/api/1.0/series/4722/revisions/2/mbox

Test gem_busy:
        Subgroup basic-bsd:
                pass       -> SKIP       (byt-n2820)
        Subgroup basic-render:
                skip       -> PASS       (hsw-i7-4770r)
                skip       -> PASS       (hsw-i3-4010u)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-WARN (ilk1-i5-650)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                pass       -> DMESG-WARN (byt-n2820)
        Subgroup basic-rte:
                dmesg-warn -> PASS       (byt-n2820)

bdw-i7-5600u     total:202  pass:179  dwarn:0   dfail:0   fail:0   skip:23 
byt-n2820        total:202  pass:166  dwarn:1   dfail:0   fail:0   skip:35 
hsw-i3-4010u     total:202  pass:179  dwarn:0   dfail:0   fail:0   skip:23 
hsw-i7-4770r     total:202  pass:179  dwarn:0   dfail:0   fail:0   skip:23 
ilk1-i5-650      total:201  pass:131  dwarn:1   dfail:0   fail:1   skip:68 
ivb-i7-3770      total:202  pass:169  dwarn:0   dfail:0   fail:0   skip:33 
skl-i7-6700hq    total:198  pass:176  dwarn:0   dfail:0   fail:0   skip:22 

Results at /archive/results/CI_IGT_test/RO_Patchwork_428/

aedfaae drm-intel-nightly: 2016y-04m-04d-13h-09m-54s UTC integration manifest
2247f0c drm/i915/fbc: enable FBC on gen 9+ too
bb5b5ed drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps
9803622 drm/i915/fbc: sanitize i915.enable_fbc during FBC init
a00cb28 drm/i915/fbc: update busy_bits even for GTT and flip flushes

Patches download mbox

Tests

Series 4722v4 Enable FBC on SKL
http://patchwork.freedesktop.org/api/1.0/series/4722/revisions/4/mbox/

Test gem_busy:
        Subgroup basic-blt:
                skip       -> PASS       (bsw-nuc-2)
Test kms_flip:
        Subgroup basic-flip-vs-wf_vblank:
                fail       -> PASS       (snb-x220t)
Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                dmesg-warn -> PASS       (snb-dellxps)

bdw-nuci7        total:203  pass:191  dwarn:0   dfail:0   fail:0   skip:12 
bdw-ultra        total:203  pass:180  dwarn:0   dfail:0   fail:0   skip:23 
bsw-nuc-2        total:202  pass:163  dwarn:0   dfail:0   fail:0   skip:39 
byt-nuc          total:202  pass:164  dwarn:0   dfail:0   fail:0   skip:38 
hsw-brixbox      total:203  pass:179  dwarn:0   dfail:0   fail:0   skip:24 
hsw-gt2          total:203  pass:184  dwarn:0   dfail:0   fail:0   skip:19 
ilk-hp8440p      total:203  pass:135  dwarn:0   dfail:0   fail:0   skip:68 
ivb-t430s        total:203  pass:175  dwarn:0   dfail:0   fail:0   skip:28 
skl-i7k-2        total:203  pass:178  dwarn:0   dfail:0   fail:0   skip:25 
skl-nuci5        total:203  pass:192  dwarn:0   dfail:0   fail:0   skip:11 
snb-dellxps      total:203  pass:165  dwarn:0   dfail:0   fail:0   skip:38 
snb-x220t        total:203  pass:165  dwarn:0   dfail:0   fail:1   skip:37 

Results at /archive/results/CI_IGT_test/Patchwork_1899/

c0a9d3a8bcf7f049a391a601578054d96708667e drm-intel-nightly: 2016y-04m-14d-12h-22m-13s UTC integration manifest
9ce4821 drm/i915/fbc: enable FBC on gen 9+ too
0662155 drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps
d26f985 drm/i915/fbc: sanitize i915.enable_fbc during FBC init
7f0588e drm/i915/fbc: update busy_bits even for GTT and flip flushes



Test drv_getparams_basic:
        Subgroup basic-eu-total:
                pass       -> INCOMPLETE (ro-hsw-i3-4010u)
Test drv_hangman:
        Subgroup error-state-basic:
                fail       -> PASS       (ro-ilk1-i5-650)
Test drv_module_reload_basic:
                pass       -> SKIP       (ro-hsw-i3-4010u)
Test gem_ctx_param_basic:
        Subgroup invalid-size-get:
                pass       -> INCOMPLETE (ro-hsw-i3-4010u)
Test gem_exec_parse:
        Subgroup basic-rejected:
                pass       -> INCOMPLETE (ro-hsw-i3-4010u)
Test gem_exec_whisper:
        Subgroup basic:
                pass       -> INCOMPLETE (ro-bdw-i5-5250u)
Test gem_mmap_gtt:
        Subgroup basic-small-bo-tiledx:
                pass       -> INCOMPLETE (ro-hsw-i3-4010u)
        Subgroup basic-small-copy-xy:
                pass       -> INCOMPLETE (ro-hsw-i3-4010u)
Test kms_pipe_crc_basic:
        Subgroup nonblocking-crc-pipe-b:
                pass       -> INCOMPLETE (ro-hsw-i3-4010u)
        Subgroup suspend-read-crc-pipe-a:
                incomplete -> DMESG-WARN (ro-skl-i7-6700hq)
        Subgroup suspend-read-crc-pipe-c:
                dmesg-warn -> SKIP       (ro-bdw-i5-5250u)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                dmesg-warn -> PASS       (ro-skl-i7-6700hq)
Test pm_rps:
        Subgroup basic-api:
                pass       -> INCOMPLETE (ro-hsw-i3-4010u)

fi-byt-n2820     total:202  pass:164  dwarn:0   dfail:0   fail:0   skip:38 
fi-skl-i7-6700k  total:203  pass:178  dwarn:0   dfail:0   fail:0   skip:25 
ro-bdw-i5-5250u  total:182  pass:167  dwarn:2   dfail:0   fail:0   skip:12 
ro-byt-n2820     total:203  pass:169  dwarn:0   dfail:0   fail:0   skip:34 
ro-hsw-i3-4010u  total:203  pass:172  dwarn:0   dfail:0   fail:0   skip:24 
ro-hsw-i7-4770r  total:203  pass:180  dwarn:0   dfail:0   fail:0   skip:23 
ro-ilk1-i5-650   total:202  pass:134  dwarn:0   dfail:0   fail:0   skip:68 
ro-ivb-i7-3770   total:203  pass:170  dwarn:0   dfail:0   fail:0   skip:33 
ro-ivb3-i7-3770  total:203  pass:174  dwarn:0   dfail:0   fail:0   skip:29 
ro-skl-i7-6700hq total:203  pass:157  dwarn:24  dfail:0   fail:0   skip:22 
ro-skl2-4405Y    total:203  pass:180  dwarn:1   dfail:0   fail:0   skip:22 

Results at /archive/results/CI_IGT_test/RO_Patchwork_553/

631ffd2 drm-intel-nightly: 2016y-04m-13d-13h-00m-18s UTC integration manifest
6c0c22e drm/i915/fbc: enable FBC on gen 9+ too
5bc7c76 drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps
908430a drm/i915/fbc: sanitize i915.enable_fbc during FBC init
5e7914d drm/i915/fbc: update busy_bits even for GTT and flip flushes

Patches download mbox

Tests

Series 4722v5 Enable FBC on SKL
http://patchwork.freedesktop.org/api/1.0/series/4722/revisions/5/mbox

Test kms_flip:
        Subgroup basic-flip-vs-wf_vblank:
                fail       -> PASS       (ro-bdw-i7-5600u)

ro-bdw-i5-5250u  total:213  pass:197  dwarn:2   dfail:0   fail:0   skip:14 
ro-bdw-i7-5557U  total:213  pass:197  dwarn:1   dfail:0   fail:0   skip:15 
ro-bdw-i7-5600u  total:213  pass:185  dwarn:0   dfail:0   fail:0   skip:28 
ro-bsw-n3050     total:213  pass:172  dwarn:0   dfail:0   fail:2   skip:39 
ro-hsw-i3-4010u  total:213  pass:190  dwarn:0   dfail:0   fail:0   skip:23 
ro-hsw-i7-4770r  total:213  pass:190  dwarn:0   dfail:0   fail:0   skip:23 
ro-ilk-i7-620lm  total:213  pass:150  dwarn:0   dfail:0   fail:1   skip:62 
ro-ilk1-i5-650   total:208  pass:150  dwarn:0   dfail:0   fail:1   skip:57 
ro-ivb-i7-3770   total:213  pass:181  dwarn:0   dfail:0   fail:0   skip:32 
ro-ivb2-i7-3770  total:213  pass:185  dwarn:0   dfail:0   fail:0   skip:28 
ro-snb-i7-2620M  total:213  pass:174  dwarn:0   dfail:0   fail:1   skip:38 
fi-hsw-i7-4770k failed to connect after reboot
ro-byt-n2820 failed to connect after reboot

Results at /archive/results/CI_IGT_test/RO_Patchwork_1153/

b373842 drm-intel-nightly: 2016y-06m-09d-16h-49m-09s UTC integration manifest
a0a9e44 drm/i915/fbc: enable FBC on gen 9+ too
4fe03eb drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps
8670248 drm/i915/fbc: sanitize i915.enable_fbc during FBC init
9eb1895 drm/i915/fbc: update busy_bits even for GTT and flip flushes
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

Tests

Applying: drm/i915/fbc: update busy_bits even for GTT and flip flushes
Applying: drm/i915/fbc: sanitize i915.enable_fbc during FBC init
fatal: sha1 information is lacking or useless (drivers/gpu/drm/i915/intel_fbc.c).
error: could not build fake ancestor
Patch failed at 0002 drm/i915/fbc: sanitize i915.enable_fbc during FBC init
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

Tests

Applying: drm/i915/fbc: update busy_bits even for GTT and flip flushes
Applying: drm/i915/fbc: sanitize i915.enable_fbc during FBC init
fatal: sha1 information is lacking or useless (drivers/gpu/drm/i915/intel_fbc.c).
error: could not build fake ancestor
Patch failed at 0002 drm/i915/fbc: sanitize i915.enable_fbc during FBC init
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

Tests

Applying: drm/i915/fbc: update busy_bits even for GTT and flip flushes
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/intel_fbc.c
Falling back to patching base and 3-way merge...
No changes -- Patch already applied.
Applying: drm/i915/fbc: sanitize i915.enable_fbc during FBC init
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/intel_fbc.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_fbc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_fbc.c
error: Failed to merge in the changes.
Patch failed at 0002 drm/i915/fbc: sanitize i915.enable_fbc during FBC init
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".