ardera / flutter-pi

A light-weight Flutter Engine Embedder for Raspberry Pi that runs without X.
MIT License
1.49k stars 154 forks source link

Can i customize the resolution? #332

Closed Mitsuha closed 11 months ago

Mitsuha commented 1 year ago

The resolution of my monitor is 2560*1600, but it is recognized as 1920*1080

I saw the issue #51 and found that the width and height cannot be hard code can you add support for custom resolutions ?

Great project, thank you for your effort

[flutter-pi] WARNING: display didn't provide valid physical dimensions. The device-pixel ratio will default to 1.0, which may not be the fitting device-pixel ratio for your display.
==============Locale==============
Flutter locale:
  default: en_GB
  locales: en_GB en.UTF-8 en.UTF-8 en.UTF-8 en_GB en en.UTF-8
===================================
===================================
display mode:
  resolution: 1920 x 1080
  refresh rate: 60Hz
  physical size: 0mm x 0mm
  flutter device pixel ratio: 1.000000
===================================
ardera commented 1 year ago

Thanks, appreciate it!

Try the feature/compositor-ng branch. You can specify --vmode=2650x1600 there

Mitsuha commented 1 year ago

I tried feature/compositor-ng branch and i got other problems:

specifying the --videomod 2560x1600 parameter will fail, the actucal output is still 1920*1080, the error message is:

root@user:~# flutter-pi --videomode 2560x1600 raspberry/
/home/user/flutter-pi/src/window.c: Didn't find a videomode matching "2560x1600"! Falling back to display preferred mode.
flutter: The Dart VM service is listening on http://127.0.0.1:33385/cv-2qQH3Fwg=/

but if i scale down the resolution it's normal

root@user:~# flutter-pi --videomode 1280x720 raspberry/              # now resolution is 1280x720 
flutter: The Dart VM service is listening on http://127.0.0.1:33385/cv-2qQH3Fwg=/

Raspberry Pi recognizes the resolution of this monitor as 1920*1080 (when boot into the console, the information displayed on the monitor). Can flutter-pi not exceed this upper limit?

ardera commented 1 year ago

are you sure your monitor supports that resolution? If it does, could be the EDID is broken

Can you do sudo apt install libdrm-tests and send me the complete output of modetest -c?

Mitsuha commented 1 year ago

Thanks for your reply, this is the output of modetest -c

trying to open device 'i915'...failed
trying to open device 'amdgpu'...failed
trying to open device 'radeon'...failed
trying to open device 'nouveau'...failed
trying to open device 'vmwgfx'...failed
trying to open device 'omapdrm'...failed
trying to open device 'exynos'...failed
trying to open device 'tilcdc'...failed
trying to open device 'msm'...failed
trying to open device 'sti'...failed
trying to open device 'tegra'...failed
trying to open device 'imx-drm'...failed
trying to open device 'rockchip'...failed
trying to open device 'atmel-hlcdc'...failed
trying to open device 'fsl-dcu-drm'...failed
trying to open device 'vc4'...done
Connectors:
id      encoder status          name            size (mm)       modes   encoders
32      31      connected       HDMI-A-1        0x0             23      31
  modes:
        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
  #1 1920x1080 60.00 1920 2008 2052 2200 1080 1082 1087 1125 148500 flags: phsync, pvsync; type: driver
  #2 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver
  #3 1920x1080i 30.00 1920 2008 2052 2200 1080 1084 1094 1125 74250 flags: phsync, pvsync, interlace; type: driver
  #4 1920x1080i 29.97 1920 2008 2052 2200 1080 1084 1094 1125 74176 flags: phsync, pvsync, interlace; type: driver
  #5 1920x1080 50.00 1920 2448 2492 2640 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
  #6 1920x1080i 25.00 1920 2448 2492 2640 1080 1084 1094 1125 74250 flags: phsync, pvsync, interlace; type: driver
  #7 1920x1080i 25.00 1920 1952 2120 2304 1080 1126 1136 1250 72000 flags: phsync, nvsync, interlace; type: driver
  #8 1680x1050 59.88 1680 1728 1760 1840 1050 1053 1059 1080 119000 flags: phsync, nvsync; type: driver
  #9 1600x900 60.00 1600 1624 1704 1800 900 901 904 1000 108000 flags: phsync, pvsync; type: driver
  #10 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver
  #11 1440x900 59.90 1440 1488 1520 1600 900 903 909 926 88750 flags: phsync, nvsync; type: driver
  #12 1280x960 60.00 1280 1376 1488 1800 960 961 964 1000 108000 flags: phsync, pvsync; type: driver
  #13 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  #14 1280x720 59.94 1280 1390 1430 1650 720 725 730 750 74176 flags: phsync, pvsync; type: driver
  #15 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  #16 1280x720 48.00 1280 2240 2280 2500 720 725 730 750 90000 flags: phsync, pvsync; type: driver
  #17 1280x720 47.95 1280 2240 2280 2500 720 725 730 750 89910 flags: phsync, pvsync; type: driver
  #18 1024x768 60.00 1024 1048 1184 1344 768 771 777 806 65000 flags: nhsync, nvsync; type: driver
  #19 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver
  #20 800x600 56.25 800 824 896 1024 600 601 603 625 36000 flags: phsync, pvsync; type: driver
  #21 640x480 60.00 640 656 752 800 480 490 492 525 25200 flags: nhsync, nvsync; type: driver
  #22 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
                        00ffffffffffff004a8b602501010101
                        0020010381000078ec6fb1a7554c9e25
                        0c5054230800d1c0b300a9c095008180
                        814081c07140366a00a0a04042603020
                        36001eb210000018023a801871382d40
                        582c4500d6181100001e000000fd0038
                        3f0f633c000a202020202020000000fc
                        00000a20202020202020202020200140
                        020332f24f04051013141f6c6c6c276c
                        6c6c4b4ce200d5e305c00023097f0783
                        01000067030c001000383ce606050169
                        694f565e00a0a0a0295030203500bb89
                        2100001e023a801871382d40582c2500
                        58c31000001e00000000000000000000
                        00000000000000000000000000000000
                        00000000000000000000000000000050
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 0
        5 link-status:
                flags: enum
                enums: Good=0 Bad=1
                value: 0
        6 non-desktop:
                flags: immutable range
                values: 0 1
                value: 0
        4 TILE:
                flags: immutable blob
                blobs:

                value:
        37 Colorspace:
                flags: enum
                enums: Default=0 SMPTE_170M_YCC=1 BT709_YCC=2 XVYCC_601=3 XVYCC_709=4 SYCC_601=5 opYCC_601=6 opRGB=7 BT2020_CYCC=8 BT2020_RGB=9 BT2020_YCC=10 DCI-P3_RGB_D65=11 DCI-P3_RGB_Theater=12
                value: 0
        33 left margin:
                flags: range
                values: 0 100
                value: 0
        34 right margin:
                flags: range
                values: 0 100
                value: 0
        35 top margin:
                flags: range
                values: 0 100
                value: 0
        36 bottom margin:
                flags: range
                values: 0 100
                value: 0
        38 max bpc:
                flags: range
                values: 8 12
                value: 8
        39 Broadcast RGB:
                flags: enum
                enums: Automatic=0 Full=1 Limited 16:235=2
                value: 0
        40 Output format:
                flags: enum
                enums: Automatic=0 RGB=1 YCbCr 4:2:2=2 YCbCr 4:4:4=3
                value: 0
ardera commented 1 year ago

What Raspberry Pi are you using? Are you using full-KMS or fake-KMS (if you're not sure, can you attach the contents of /boot/config.txt?) It looks like it's fake-KMS, if that's the case you can try switching to full-KMS

github-actions[bot] commented 11 months ago

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. If you find this problem please file a new issue with the same description, what happens and logs. All system setups can be slightly different so it's always better to open new issues and reference the related ones. Thanks for your contribution.