Bug 46451 - screenshot doesn't work on weston in drm backend
Summary: screenshot doesn't work on weston in drm backend
Status: VERIFIED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: weston (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-02-22 06:03 UTC by zhao jian
Modified: 2012-05-02 01:56 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description zhao jian 2012-02-22 06:03:14 UTC
System Environment:
--------------------------
wayland: (master) ab3b5cd71ce6dd1a532d9c1fecabb1a6e9d1a055
libdrm: (master) 23eeb7e1e45417a5a84f826286dd982dba440cd3
macros: (master) 52ef6f666a4fb46b693c81dc7a44612e6b78239d
glproto: (master) 29d5b553b30755a25300c30b67d39b37c9a76466
dri2proto: (master) 7fd18b15646a62bd82a4eb0eca60a34c1731813d
xproto: (master) ab1fba1a0967ac2289909c3f1a643f876a5dd393
libX11: (master) 2ca641c3a506dcbee97e279b67990d5387389f36
mesa: (master) 3dd7b53178cb085a1ff3d87844fa51487f8892fc
kbproto: (master) b0f7912512091ea58dfaf8dffb2a658a6afeb96d
libxkbcommon: (master) 1ab058bbb345245088f54315227fe0cf52ae54ed
pixman: (master) 4fc586c3df9a53cc1406891e751a6eed3d7da400
cairo: (master) da8841cc5ea0b45daba6b91227a2b7058a0120b7
weston: (master) 31f9d0e8de4f788aaf35fb8072dc290da19b097a

Bug detailed description:
-------------------------
When run the wayland client demo 'screenshot' in drm backend, it can't get anything on screen but only a black screen in the picture it takes. This is tested on SandyBridge platform. It works well in x11 backend. 

Reproduce steps:
-------------------------
1. start x
2. start weston
3. start demo screenshot
4. check the picture it takes
Comment 1 zhao jian 2012-02-22 16:59:53 UTC
(In reply to comment #0)
> System Environment:
> --------------------------
> wayland: (master) ab3b5cd71ce6dd1a532d9c1fecabb1a6e9d1a055
> libdrm: (master) 23eeb7e1e45417a5a84f826286dd982dba440cd3
> macros: (master) 52ef6f666a4fb46b693c81dc7a44612e6b78239d
> glproto: (master) 29d5b553b30755a25300c30b67d39b37c9a76466
> dri2proto: (master) 7fd18b15646a62bd82a4eb0eca60a34c1731813d
> xproto: (master) ab1fba1a0967ac2289909c3f1a643f876a5dd393
> libX11: (master) 2ca641c3a506dcbee97e279b67990d5387389f36
> mesa: (master) 3dd7b53178cb085a1ff3d87844fa51487f8892fc
> kbproto: (master) b0f7912512091ea58dfaf8dffb2a658a6afeb96d
> libxkbcommon: (master) 1ab058bbb345245088f54315227fe0cf52ae54ed
> pixman: (master) 4fc586c3df9a53cc1406891e751a6eed3d7da400
> cairo: (master) da8841cc5ea0b45daba6b91227a2b7058a0120b7
> weston: (master) 31f9d0e8de4f788aaf35fb8072dc290da19b097a
> 
> Bug detailed description:
> -------------------------
> When run the wayland client demo 'screenshot' in drm backend, it can't get
> anything on screen but only a black screen in the picture it takes. This is
> tested on SandyBridge platform. It works well in x11 backend. 
> 
> Reproduce steps:
> -------------------------
> 1. start x
> 2. start weston
> 3. start demo screenshot
> 4. check the picture it takes

To reproduce it should _not_ start X, and just start weston on the terminal.
Comment 2 Darxus 2012-03-22 12:51:09 UTC
I'm seeing the same thing with nouveau, and wayland 0.85.
Comment 3 ZhaoShengyan 2012-04-18 22:01:10 UTC
It can't be reproduced with:

Arch: i386
Libdrm: (master) 2.4.33-12-g292da616fe1f936ca78a3fa8e1b1b19883e343b6
Wayland: (master)677c5180e67be18b7a0867fafb7f205b57a6e9ff
Mesa: (master)35f2fb70d3826df70fa2f53af05339137cddefc8
Xserver: (master)xorg-server-1.12.0-66-g80fefc42f5e67e6b4a4b440d8991bee7e5f38359
Xf86_video_intel: (master)2.18.0-212-gaf4a6e8cb52ace594934446e6d8a7aaa1945a9b0
Cairo: (master)4f125a1bd069095f3a97f009e7d7af2681353fb1
Cairo_gl: (master)4f125a1bd069095f3a97f009e7d7af2681353fb1
Xkbcommon: (master)3d672fcfea6b823db4793b9ad1c3aadc4b547a08
Weston: (master)e4faa2ab051aca454f3952f458dac42491e54954
Kernel_unstable: (drm-intel-next-queued)fc6826d1dcd65f3d1e9a5377678882e4e08f02be
Comment 4 Scott Moreau 2012-04-18 22:14:16 UTC
>
> --- Comment #3 from ZhaoShengyan <shengyanx.zhao@intel.com> 2012-04-18
> 22:01:10 PDT ---
> It can't be reproduced with:
>

Did you mean "can" be reproduced with?


>
> Arch: i386
> Libdrm: (master) 2.4.33-12-g292da616fe1f936ca78a3fa8e1b1b19883e343b6
> Wayland: (master)677c5180e67be18b7a0867fafb7f205b57a6e9ff
> Mesa: (master)35f2fb70d3826df70fa2f53af05339137cddefc8
> Xserver:
> (master)xorg-server-1.12.0-66-g80fefc42f5e67e6b4a4b440d8991bee7e5f38359
> Xf86_video_intel:
> (master)2.18.0-212-gaf4a6e8cb52ace594934446e6d8a7aaa1945a9b0
> Cairo: (master)4f125a1bd069095f3a97f009e7d7af2681353fb1
> Cairo_gl: (master)4f125a1bd069095f3a97f009e7d7af2681353fb1
> Xkbcommon: (master)3d672fcfea6b823db4793b9ad1c3aadc4b547a08
> Weston: (master)e4faa2ab051aca454f3952f458dac42491e54954
> Kernel_unstable:
> (drm-intel-next-queued)fc6826d1dcd65f3d1e9a5377678882e4e08f02be
>
>
The reason screenshot is buggy is because it shoots the back buffer at a
time when it's contents
are not guaranteed. It needs a bit of rework to read the pixels at the
right time - after the scene
is rendered to the back buffer, right before swapping buffers.
Comment 5 Shuang He 2012-04-18 22:35:44 UTC
(In reply to comment #4)
> >
> > --- Comment #3 from ZhaoShengyan <shengyanx.zhao@intel.com> 2012-04-18
> > 22:01:10 PDT ---
> > It can't be reproduced with:
> >
> Did you mean "can" be reproduced with?
> >
> > Arch: i386
> > Libdrm: (master) 2.4.33-12-g292da616fe1f936ca78a3fa8e1b1b19883e343b6
> > Wayland: (master)677c5180e67be18b7a0867fafb7f205b57a6e9ff
> > Mesa: (master)35f2fb70d3826df70fa2f53af05339137cddefc8
> > Xserver:
> > (master)xorg-server-1.12.0-66-g80fefc42f5e67e6b4a4b440d8991bee7e5f38359
> > Xf86_video_intel:
> > (master)2.18.0-212-gaf4a6e8cb52ace594934446e6d8a7aaa1945a9b0
> > Cairo: (master)4f125a1bd069095f3a97f009e7d7af2681353fb1
> > Cairo_gl: (master)4f125a1bd069095f3a97f009e7d7af2681353fb1
> > Xkbcommon: (master)3d672fcfea6b823db4793b9ad1c3aadc4b547a08
> > Weston: (master)e4faa2ab051aca454f3952f458dac42491e54954
> > Kernel_unstable:
> > (drm-intel-next-queued)fc6826d1dcd65f3d1e9a5377678882e4e08f02be
> >
> >
> The reason screenshot is buggy is because it shoots the back buffer at a
> time when it's contents
> are not guaranteed. It needs a bit of rework to read the pixels at the
> right time - after the scene
> is rendered to the back buffer, right before swapping buffers.

So you mean, it's not fixed yet. We need to run many times of screenshot,and some of them may not be correct.
Comment 6 Scott Moreau 2012-04-20 12:47:30 UTC
>
>
> So you mean, it's not fixed yet. We need to run many times of
> screenshot,and
> some of them may not be correct.
>

You can try the patches I have here, on top of master
https://github.com/soreau/weston/commits/screenshot and see if they help.



Scott
Comment 7 Scott Moreau 2012-04-20 14:37:49 UTC
Actually, this patch set has been committed to weston master. Hopefully this will fix the problem.

http://cgit.freedesktop.org/wayland/weston/commit/?id=062be7ec93bc658f0e5ae02fc1b4e5b43f3f100a
Comment 8 ZhaoShengyan 2012-05-02 01:54:42 UTC
The bug has been fixed at:
arch: i386
Libdrm: (master) 2.4.33-15-g754655c795fff1c6267d358e54ad5198aee0cdd6
Wayland: (master)9d37682db32f16eb69a76d21569af6cac0d3d08c
Mesa: (master)1a33c1b2b895566299ec76643659adacc239a3dc
Xserver: (master)xorg-server-1.12.0-105-gd77eb7ee49ef19c2c4c7381d56e9d0f9c3fbc890
Xf86_video_intel: (master)2.18.0-220-g8c58c840b1ba579a5601804fc710c58e1e00213f
Cairo: (master)f736cd144305f7c9147912f6ec081962b3191e3d
Cairo_gl: (master)f736cd144305f7c9147912f6ec081962b3191e3d
Xkbcommon: (master)3d672fcfea6b823db4793b9ad1c3aadc4b547a08
Weston: (master)90c6f1c90e0d43b8d1c2a057a0a2784991de23a4
Kernel_unstable:(drm-intel-next-queued)eea7d92bdb47727dfaf5f148f6ea72e9a1cffaf1
So we mark this bug as fixed. 

Thanks for your attention and efforts and sorry for changing the status so late.
Comment 9 ZhaoShengyan 2012-05-02 01:56:12 UTC
Mark this bug as verified.


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.