Bug 98684 - [SKL] Watermark programming is broken when page flipping from linear to Y/Yf tiled frame buffers
Summary: [SKL] Watermark programming is broken when page flipping from linear to Y/Yf ...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: https://bugs.freedesktop.org/show_bug...
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-11 11:15 UTC by Tvrtko Ursulin
Modified: 2017-03-03 13:32 UTC (History)
1 user (show)

See Also:
i915 platform: SKL
i915 features: display/watermark


Attachments

Description Tvrtko Ursulin 2016-11-11 11:15:36 UTC
When flipping from linear to Y or Yf tiled frame buffer we get a FIFO underrun and a black screen.

This can be reproduced with the kms_flip_tiling flip-to-Y-tiled and flip-to-Yf-tiled testcases.

Test first displays a Y tiled fb to collect the reference CRC. Display programming looks like this at that point:

                           DSPASURF (0x0007019c): 0x01100000
                           DSPACNTR (0x00070180): 0xc4803000 (enabled)
                         DSPASTRIDE (0x00070188): 0x00000040 (1)
                                    (0x00070190): 0x0437077f
                                    (0x0007018c): 0x00000000
                        DSPATILEOFF (0x000701a4): 0x00000000 (0, 0)
                                    (0x000701ac): 0x01100020
                                    (0x00070240): 0x80020079
                                    (0x00070268): 0x00000000

Then the test flips to a linear fb, and back to the reference Y tiled fb. At this point the plane register programming looks like:


                           DSPASURF (0x0007019c): 0x01100000
                           DSPACNTR (0x00070180): 0xc4803000 (enabled)
                         DSPASTRIDE (0x00070188): 0x00000040 (1)
                                    (0x00070190): 0x0437077f
                                    (0x0007018c): 0x00000000
                        DSPATILEOFF (0x000701a4): 0x00000000 (0, 0)
                                    (0x000701ac): 0x01100020
                                    (0x00070240): 0x80004004
                                    (0x00070268): 0x00000000

Register 0x70240 (PLANE_WM_1_A_0) is different so probably wrong.

Scenario which tests the opposite flip direction. from Y/Yf to linear works fine (subtests flip-changes-tiling-Y and flip-changes-tiling-Yf).
Comment 1 Ville Syrjala 2016-11-11 17:16:03 UTC
Not just the watermark programming. Also the DSPSURF vs. x/y/linear offset stuff is hosed.
Comment 2 Jani Saarinen 2016-12-22 08:26:42 UTC
With latest fixes on drm-tip, is issue stil seen?
Comment 3 Tvrtko Ursulin 2017-01-04 10:18:36 UTC
Yes it is still broken. Could you please specify which fixes you were referring to?
Comment 4 Rami 2017-02-07 15:38:55 UTC
This is not reproduced on skl with last setup: 
 SKLS1:
------
Platform SKL Gigabyte
CPU: Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz (family 6, model 94, stepping 3)
GPU: Intel® HD Graphics 530 - Intel Corporation Sky Lake Integrated Graphics (rev 06)
Motherboard version: H170N-WIFI-CF
Memory: 2x 4GB Kingston 9905622-055.A00G
Software
==========
Bios: F3 
Linux distribution: Ubuntu 16.04 64 bits
DMC 1.26 from https://01.org/sites/default/files/downloads/intelr-graphics-linux/skldmcver126.tar_1.bz2
GUC 6.1 from https://01.org/sites/default/files/downloads/intelr-graphics-linux/sklgucver61.tar.bz2
Kernel: drm-tip: 2017y-02m-06d-09h-59m-54s UTC integration manifest
commit 8b63c510e68d252b3d160c77f49198bc32c21c6d
Author: Jani Nikula <jani.nikula@intel.com>
Date:  Mon Feb 06 10:00:47 2017 +0000

drm: libdrm-2.4.75-7-gfe7cb34 from git://anongit.freedesktop.org/mesa/drm
mesa: mesa-13.0.3-bec04114 from git://anongit.freedesktop.org/mesa/mesa
cairo:1.15.4-68bbb693 from git://anongit.freedesktop.org/cairo
xserver: xorg-server-1.19.0-66-ga6fcb15 from git://git.freedesktop.org/git/xorg/xserver
xf86-video-intel: 2.99.917-750-g2d6f2e8 from git://git.freedesktop.org/git/xorg/driver/xf86-video-intel
libva:  libva-1.7.3.pre1-48-ge677ad9 from git://git.freedesktop.org/git/vaapi/libva
vaapi-intel-driver: 1.7.3-287-g05d2d25 from git://git.freedesktop.org/git/vaapi/intel-driver
intel-gpu-tool:intel-gpu-tools-1.17-225-gcc8c960
Comment 5 Jani Saarinen 2017-03-03 11:37:46 UTC
Tvrtko did some tests on this:
"Seems to be working so I’d say it is OK to close."
Comment 6 yann 2017-03-03 13:32:17 UTC
(In reply to Jani Saarinen from comment #5)
> Tvrtko did some tests on this:
> "Seems to be working so I’d say it is OK to close."

and based on comment #4, closing it.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.