** Description changed:
[ Impact ]
- * This issue impact devices which enable FBC and using damage to update
+ * This issue impact devices which enable FBC and using damage to update
display. The framebuffer ID is 0 in the damage information cause driver
reject the submission.
[ Test Plan ]
- * enable FBC on device
- * cat /sys/kernel/debug/dri/{num}/*fbc* to make sure FBC is enabled
- * using bpftrace to tracking what info pass to kernel
- ```
- sudo bpftrace -e '
- kprobe:drm_mode_dirtyfb_ioctl
- {
- $fb_id = *(uint32)(arg1 + 0);
- $num = *(uint32)(arg1 + 12);
- $clipptr = *(uint64)(arg1 + 16);
- printf("kernel DirtyFB fb_id=%u num_clips=%u comm=%s\n", $fb_id, $num,
comm);
- if ($num > 0 && $clipptr != 0) {
- printf(" clip[0] x1=%u y1=%u x2=%u y2=%u\n",
- *(uint16)($clipptr + 0),
- *(uint16)($clipptr + 2),
- *(uint16)($clipptr + 4),
- *(uint16)($clipptr + 6));
- }
- }'
- ```
-
+ * find a machine where the issue is reproducible
+ * enable Framebuffer Compression (FBC) on the device if it is not enabled
+ * check if enable through command: cat /sys/kernel/debug/dri/{card
number}/*fbc*
+ * test that on screen rotation the screen would be whole black
+ * install the package update
+ * test that the issue is no longer reproducible
[ Where problems could occur ]
- * The image maybe disorder, broken or black screen if wrong region info
+ * The image maybe disorder, broken or black screen if wrong region info
is passed.
** Description changed:
[ Impact ]
- * This issue impact devices which enable FBC and using damage to update
- display. The framebuffer ID is 0 in the damage information cause driver
- reject the submission.
+ * When Framebuffer Compression (FBC) is enabled, rotating the display may
cause display to black out
+ * This is caused by wrong framebuffer ID being passed when Intel gpu updates
display according to damage information, and the driver rejects the submission.
+ * This issue can be probed by using bpftrace command:
+ ```
+ sudo bpftrace -e '
+ kprobe:drm_mode_dirtyfb_ioctl
+ {
+ $fb_id = *(uint32)(arg1 + 0);
+ $num = *(uint32)(arg1 + 12);
+ $clipptr = *(uint64)(arg1 + 16);
+ printf("kernel DirtyFB fb_id=%u num_clips=%u comm=%s\n", $fb_id, $num,
comm);
+ if ($num > 0 && $clipptr != 0) {
+ printf(" clip[0] x1=%u y1=%u x2=%u y2=%u\n",
+ *(uint16)($clipptr + 0),
+ *(uint16)($clipptr + 2),
+ *(uint16)($clipptr + 4),
+ *(uint16)($clipptr + 6));
+ }
+ }'
+ ```
[ Test Plan ]
- * find a machine where the issue is reproducible
- * enable Framebuffer Compression (FBC) on the device if it is not enabled
- * check if enable through command: cat /sys/kernel/debug/dri/{card
number}/*fbc*
- * test that on screen rotation the screen would be whole black
- * install the package update
- * test that the issue is no longer reproducible
+ * find a machine where the issue is reproducible
+ * enable Framebuffer Compression (FBC) on the device if it is not enabled
+ * check if enable through command: cat /sys/kernel/debug/dri/{card
number}/*fbc*
+ * test that on screen rotation the screen would be whole black
+ * install the package update
+ * test that the issue is no longer reproducible
[ Where problems could occur ]
* The image maybe disorder, broken or black screen if wrong region info
is passed.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2146867
Title:
[SRU] Fixing screen rotation failure when using FBC
To manage notifications about this bug go to:
https://bugs.launchpad.net/oem-priority/+bug/2146867/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs