Created attachment 107974 [details] dmesg log file for FBC fail ==System Environment== -------------------------- Regression: NO. Non-working platforms: BDW ==kernel== origin/drm-intel-nightly: 1361e359ee657c6dbc9528357e40f91a004c6abe(fails) drm-intel-nightly: 2014y-10m-16d-12h-06m-56s UTC integration manifest origin/drm-intel-next-queued: fff95501f2095fa8a9dbd7e177bbf642d241b2fe(fails) drm/i915: intel_backlight scale() math WA ==Bug detailed description== ----------------------------- BDW FBC is working with x window, but fail with gnome-session desktop lauch Reproduce steps: 1. Enable FBC in kernel with parameter: i915.enable_fbc=1 2. Boot system and start x 3. echo 1 > /sys/kernel/debug/dri/0/i915_fbc_false_color, BDW show red screen 4. start gnome-session: BDW show normal color(white) x windows screen, and background show normal desktop screen, no special color. And observed With below message in terminal: root@x-bdw05:~# echo 1 > /sys/kernel/debug/dri/0/i915_fbc_false_color root@x-bdw05:~# screen compiz (core) - Info: Starting plugin: decor compiz (core) - Info: Loading plugin: grid compiz (core) - Info: Starting plugin: grid compiz (core) - Info: Loading plugin: resize compiz (core) - Info: Starting plugin: resize compiz (core) - Info: Loading plugin: commands compiz (core) - Info: Starting plugin: commands compiz (core) - Info: Loading plugin: vpswitch compiz (core) - Info: Starting plugin: vpswitch compiz (core) - Info: Loading plugin: gnomecompat compiz (core) - Info: Starting plugin: gnomecompat compiz (core) - Info: Loading plugin: snap compiz (core) - Info: Starting plugin: snap compiz (core) - Info: Loading plugin: wall compiz (core) - Info: Starting plugin: wall compiz (core) - Info: Loading plugin: move compiz (core) - Info: Starting plugin: move compiz (core) - Info: Loading plugin: mousepoll compiz (core) - Info: Starting plugin: mousepoll compiz (core) - Info: Loading plugin: place compiz (core) - Info: Starting plugin: place compiz (core) - Info: Loading plugin: regex compiz (core) - Info: Starting plugin: regex compiz (core) - Info: Loading plugin: imgpng compiz (core) - Info: Starting plugin: imgpng compiz (core) - Info: Loading plugin: session compiz (core) - Info: Starting plugin: session I/O warning : failed to load external entity "/root/.compiz/session/10dd69fc06b415c34141355958221060900000046560001" compiz (core) - Info: Loading plugin: animation compiz (core) - Info: Starting plugin: animation compiz (core) - Info: Loading plugin: expo compiz (core) - Info: Starting plugin: expo compiz (core) - Info: Loading plugin: fade compiz (core) - Info: Starting plugin: fade compiz (core) - Info: Loading plugin: workarounds compiz (core) - Info: Starting plugin: workarounds compiz (core) - Info: Loading plugin: ezoom compiz (core) - Info: Starting plugin: ezoom compiz (core) - Info: Loading plugin: scale compiz (core) - Info: Starting plugin: scale ** Message: applet now removed from the notification area /bin/sh: 1: /usr/bin/gtk-window-decorator: not found (nautilus:4842): GLib-GObject-CRITICAL **: g_object_set: assertion 'G_IS_OBJECT (object)' failed (nautilus:4842): GLib-GObject-CRITICAL **: g_object_set: assertion 'G_IS_OBJECT (object)' failed ** Message: using fallback from indicator to GtkStatusIcon dmesg-fbcfail.log attached.
FBC is disabled by default exactly because we expect it to not work...
With i915.enable_fbc=1 and that sw cache clean / nuke on place I expect it working like it works on HSW. This is probably a false positve on sw cache clean. It is never getting cleadned so FBC doesn't compress any frame again.
This problem exists on SKL, too
Also note that the preferred update paths for gnome-shell is by pageflipping (as happens here) so you do not expect FBC to take effect until the system is idle.
(In reply to Chris Wilson from comment #4) > Also note that the preferred update paths for gnome-shell is by pageflipping > (as happens here) so you do not expect FBC to take effect until the system > is idle. Is there a way to avoid pageflipping without stopping gnome-shell? So that system stays idle with gnome.
gnome-shell will only render when there is damage (or it feels to the need to update its own display). It will stop rendering after a while, the only question is whether it quiesces enough for FBC to kick in. Note that without GLX_EXT_buffer_age (i.e. unpatched DRI2), gnome-shell uses DRI2CopyRegion to do its updates, and if you don't have TearFree enabled, that will just dirty small chunks of the framebuffer. Question to the audience: is it worth extending the pageflip ioctl to pass down the dirty rectangles?
It is also on our plan to find a way to _not_ stop FBC on pageflips, which would solve the problem too. There's a Jira for this.
(In reply to Paulo Zanoni from comment #7) > It is also on our plan to find a way to _not_ stop FBC on pageflips, which > would solve the problem too. There's a Jira for this. Not sure what needs finding. I already implemented that almost a year ago as part of my FBC fix series. So someone would just have to go look at those patches.
FBC works well on SKL. So rename bug title.
I am not sure why we keep bugs open about features that aren't enabled by default, and taint the kernel when enabled.
Because the bug is still present and the feature is wip?
We have tasks on JIRA to fix this stuff up. I'm not fond of duplicating the tracking. I'm closing this one and referencing it from the relevant JIRA task.
I think we want to avoid dup tracking with one Jira bug and one fdo bug. But it looks fine to me to track with one Jira task and one fdo bug. Consider the bug is reported by community?
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.