Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DispmanX snapshot blank when using resource smaller than display with display rotated. #435

Closed
AndrewFromMelbourne opened this issue Jun 6, 2015 · 4 comments

Comments

@AndrewFromMelbourne
Copy link

I have a bug report for the utility I wrote called raspi2png that uses the DispmanX snapshot to make a screen shot of the Raspberry Pi. The issue is that when the Raspberry Pi display is rotated, and a snapshot is created using a resource that has dimensions that are different to the display, the snapshot is blank.

I have a small example program on gist (snapshot_resize.c) that shows the problem. If you run the example the program takes a snapshot with width and height set to half the display width and height and then displays the snapshot centered on the display.

The issue is present with the latest firmware release (31/5/2015 revision 74fca0c56a378f78ace0148b7d439d177ead3c54), I attempted to see if the issue is new, but I went back as far as 8/11/2014 (revision 537ce36354588a7a4a3d58323e85ca8e35ec5f1f) and the issue was still present.

@AndrewFromMelbourne AndrewFromMelbourne changed the title DispmanX snapshot using resource smaller than display with display rotated. DispmanX snapshot blank when using resource smaller than display with display rotated. Jun 7, 2015
@popcornmix
Copy link
Contributor

Can you test this firmware:
https://dl.dropboxusercontent.com/u/3669512/temp/firmware_rotate_snapshot.zip
Please check it doesn't break any other snapshot (especially rotated screen) use cases.

@AndrewFromMelbourne
Copy link
Author

Thank @popcornmix!

I have tested the linked firmware using all the variations of display_rotate I know of. Using rotation of 0, 1, 2, 3 and then using those rotations with horizontal (0x10000) and vertical flip (0x20000) and both (0x30000).

I have retested all the previous firmware bugs that I have raised and closed. I can find no regression at all.

Thanks for looking at the issue. Works well for me.

popcornmix added a commit that referenced this issue Jun 17, 2015
firmware: dispmanx: Rotate clipped coordinated when display is rotated
See: #438

firmware: arm_display: Avoid holding lock while waiting for vsync with rotated display
See: #437

firmware: dispmanx: Fix order of scale and flip for dispmanx_snapshot
See: #435

firmware: arm_loader: Fix force_core for 2836 and add disable SMP/L2 option

firmware: qpu_execute: Optionally launch qpus explicitly on first N qpus

firmware: qpu_execute: Enable profiling options for qpu_execute
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Jun 17, 2015
firmware: dispmanx: Rotate clipped coordinated when display is rotated
See: raspberrypi/firmware#438

firmware: arm_display: Avoid holding lock while waiting for vsync with rotated display
See: raspberrypi/firmware#437

firmware: dispmanx: Fix order of scale and flip for dispmanx_snapshot
See: raspberrypi/firmware#435

firmware: arm_loader: Fix force_core for 2836 and add disable SMP/L2 option

firmware: qpu_execute: Optionally launch qpus explicitly on first N qpus

firmware: qpu_execute: Enable profiling options for qpu_execute
@popcornmix
Copy link
Contributor

Should be in latest rpi-update firmware

@AndrewFromMelbourne
Copy link
Author

Thanks very much @popcornmix. I have updated to 33a6707cf1c96b8a2b5dac2ac9dead590db9fcaa and can confirm that the issue is fixed. Thanks for all the help!

neuschaefer pushed a commit to neuschaefer/raspi-binary-firmware that referenced this issue Feb 27, 2017
firmware: dispmanx: Rotate clipped coordinated when display is rotated
See: raspberrypi#438

firmware: arm_display: Avoid holding lock while waiting for vsync with rotated display
See: raspberrypi#437

firmware: dispmanx: Fix order of scale and flip for dispmanx_snapshot
See: raspberrypi#435

firmware: arm_loader: Fix force_core for 2836 and add disable SMP/L2 option

firmware: qpu_execute: Optionally launch qpus explicitly on first N qpus

firmware: qpu_execute: Enable profiling options for qpu_execute
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants