-
-
Save cnlohr/152d4b7f35a7a76e0688ee4305d81a0b to your computer and use it in GitHub Desktop.
parse-edid | |
Checksum Correct | |
Section "Monitor" | |
Identifier "HTC-VIVE" | |
ModelName "HTC-VIVE" | |
VendorName "HVR" | |
# Monitor Model Year: 2016 | |
# EDID version 1.3 | |
# Digital Display | |
# Display Physical Size not given. Normal for projectors. | |
Gamma 2.20 | |
Option "DPMS" "false" | |
Horizsync 1-255 | |
VertRefresh 20-120 | |
# Maximum pixel clock is 290MHz | |
#Extension block found. Parsing... | |
Modeline "Mode 2" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync | |
Modeline "Mode 0" 297.00 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync | |
Modeline "Mode 1" 297.00 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync | |
Modeline "Mode 3" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync | |
Modeline "Mode 4" 297.00 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync | |
Modeline "Mode 5" 297.00 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync | |
Modeline "Mode 6" 297.00 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync | |
Modeline "Mode 7" 297.00 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync | |
Option "PreferredMode" "Mode 2" | |
EndSection | |
Edid-decode | |
Extracted contents: | |
header: 00 ff ff ff ff ff ff 00 | |
serial number: 22 d2 01 aa 00 00 00 00 ff 1a | |
version: 01 03 | |
basic params: 80 00 00 78 02 | |
chroma info: 60 bc aa 55 40 b6 23 0c 4c 52 | |
established: 00 00 00 | |
standard: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 | |
descriptor 1: 04 74 70 6a 80 b0 08 41 28 14 c2 04 7a 44 00 00 00 18 | |
descriptor 2: 04 74 70 6a 80 b0 08 41 28 14 c2 04 7a 44 00 00 00 18 | |
descriptor 3: 00 00 00 fc 00 48 54 43 2d 56 49 56 45 0a 20 20 20 20 | |
descriptor 4: 00 00 00 fd 00 14 78 01 ff 1d 01 0a 20 20 20 20 20 20 | |
extensions: 01 | |
checksum: de | |
Manufacturer: HVR Model aa01 Serial Number 0 | |
Made week 255 of model year 26 | |
EDID version: 1.3 | |
Digital display | |
Image size is variable | |
Gamma: 2.20 | |
Supported color formats: RGB 4:4:4 | |
First detailed timing is preferred timing | |
Established timings supported: | |
Standard timings supported: | |
Detailed mode: Clock 297.000 MHz, 122 mm x 68 mm | |
2160 2200 2220 2266 hborder 0 | |
1200 1228 1230 1464 vborder 0 | |
-hsync -vsync | |
Detailed mode: Clock 297.000 MHz, 122 mm x 68 mm | |
2160 2200 2220 2266 hborder 0 | |
1200 1228 1230 1464 vborder 0 | |
-hsync -vsync | |
Monitor name: HTC | |
Monitor ranges (bare limits): 20-120Hz V, 1-255kHz H, max dotclock 290MHz | |
Has 1 extension blocks | |
Checksum: 0xde (valid) | |
CEA extension block | |
Extension version: 3 | |
17 bytes of CEA data | |
Video data block | |
VIC 01 640x480@60Hz | |
VIC 02 720x480@60Hz | |
Audio data block | |
Linear PCM, max channels 1 | |
Supported sample rates (kHz): 48 44.1 32 | |
Supported sample sizes (bits): 24 20 16 | |
Speaker allocation data block | |
Vendor-specific data block, OUI 000c03 (HDMI) | |
Source physical address 1.0.0.0 | |
Basic audio support | |
0 native detailed modes | |
Detailed mode: Clock 297.000 MHz, 192 mm x 120 mm | |
2160 2200 2220 2266 hborder 0 | |
1200 1228 1230 1464 vborder 0 | |
-hsync -vsync | |
Detailed mode: Clock 297.000 MHz, 192 mm x 120 mm | |
2160 2200 2220 2266 hborder 0 | |
1200 1228 1230 1464 vborder 0 | |
-hsync -vsync | |
Detailed mode: Clock 297.000 MHz, 192 mm x 120 mm | |
2160 2200 2220 2266 hborder 0 | |
1200 1228 1230 1464 vborder 0 | |
-hsync -vsync | |
Detailed mode: Clock 297.000 MHz, 192 mm x 120 mm | |
2160 2200 2220 2266 hborder 0 | |
1200 1228 1230 1464 vborder 0 | |
-hsync -vsync | |
Checksum: 0xb1 (valid) | |
EDID block does NOT conform to EDID 1.3! | |
Detailed block string not properly terminated | |
EDID block does not conform at all! | |
Detailed blocks filled with garbage | |
Range descriptor contains garbage | |
Current rpi thing I'm playing with:
# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
hdmi_pixel_freq_limit=300000000
hvs_priority=0x32ff
gpu_mem=256
hdmi_ignore_edid=0xa5000080
max_framebuffer_width=2160
max_framebuffer_height=1200
framebuffer_width=2160
framebuffer_height=1200
arm_freq=1200
gpu_freq=500
sdram_freq=500
over_voltage=5
core_freq=500
hdmi_force_hotplug=1
config_hdmi_boost=5
hdmi_drive=2 #Must be 2!
hdmi_group=2
#will do 1 eye.
#hdmi_mode=4
hdmi_mode=87
#hdmi_cvt=2160 1200 90 5 0 0 1
#hdmi_timings=<h_active_pixels> <h_sync_polarity <h_front_porch> <h_sync_pulse> <h_back_porch> <v_active_lines> <v_sync_polarity> <v_front_porch> <v_sync_pulse> <v_back_porch> <v_sync_offset_a> <v_sync_offset_b> <pixel_rep> <frame_rate> <interlaced> <pixel_freq> <aspect_ratio>
#hdmi_timings=2160 1 40 20 66 1200 0 28 2 234 0 0 0 90 0 297000000 5
#hdmi_timings=2160 1 20 40 66 1200 0 2 28 234 0 0 0 90 0 297000000 5
#hdmi_timings=2160 0 40 20 46 1200 0 28 2 234 0 0 0 90 0 297000000 5
#This is probably the closest!
#hdmi_timings=2160 1 40 20 46 1200 1 28 2 234 0 0 0 90 0 297000000 5
#Cookey idea. didn't work
#hdmi_timings=1080 1 20 10 23 1200 1 28 2 234 0 0 0 90 0 148500000 5
#"Mode 3" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
#this is TOTALLY BUSTED
#hdmi_timings = 720 1 16 62 60 480 1 9 6 131 0 0 0 60 0 27027000 5
#hdmi_timings = 1440 1 32 122 120 480 1 9 6 13 0 0 0 75 0 74054000 5
#"Mode 2" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
#TOTALLY BUSTED (crashes)
#hdmi_timings = 640 1 16 96 48 480 1 10 2 33 0 0 0 60 0 25200000 5
#Maybe it works? seems to also cause crashes.
#hdmi_timings = 640 0 16 64 120 480 0 1 3 16 0 0 0 75 0 31500000 1
# Crash mania
#hdmi_timings = 1280 0 32 128 240 480 0 1 3 16 0 0 0 75 0 63000000 6
SUPER GLITCHY But
with this config:
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
# hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=87
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
hdmi_pixel_freq_limit=400000000
hvs_priority=0x32ff
gpu_mem=256
#hdmi_ignore_edid=0xa5000080
max_framebuffer_width=2160
max_framebuffer_height=1200
framebuffer_width=2160
framebuffer_height=1200
hdmi_force_hotplug=1
config_hdmi_boost=11 #0..11
dpi_group=2
dpi_mode=87
hdmi_drive=2 #Must be 2!
hdmi_group=2 #DMT
#hdmi_mode=4
hdmi_mode=87
#hdmi_timings=
# <h_active_pixels>
# <h_sync_polarity <h_front_porch> <h_sync_pulse> <h_back_porch>
# <v_active_lines> <v_sync_polarity> <v_front_porch> <v_sync_pulse> <v_back_porch> <v_sync_offset_a>
# <v_sync_offset_b> <pixel_rep> <frame_rate> <interlaced> <pixel_freq> <aspect_ratio>
#hdmi_timings=2160 1 40 20 66 1200 0 28 2 234 0 0 0 90 0 297000000 5
#hdmi_timings=2160 1 20 40 66 1200 0 2 28 234 0 0 0 90 0 297000000 5
#hdmi_timings=2160 0 40 20 46 1200 0 28 2 234 0 0 0 90 0 297000000 5
#hdmi_timings=2160 1 40 20 46 1200 1 28 2 234 0 0 0 90 0 297000000 5
#hdmi_timings=2160 1 40 20 46 1200 1 28 2 234 0 0 0 90 0 297000000 5
#hdmi_timings=2160 1 40 20 46 1200 1 28 2 234 0 0 0 89 0 297000000 5
#OK NEW
#hdmi_timings=2160 1 40 20 46 1200 1 28 2 234 0 0 0 90 0 297000000 5
#Modeline "Mode 3" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
hdmi_timings=720 1 16 62 60 480 1 9 6 36 0 0 0 60 0 27027000 5
#x11 modeline: 297.000 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync
This will set the mode.
vcgencmd hdmi_timings 2160 1 40 20 46 1200 1 28 2 234 0 0 0 85 0 295000000 5 && tvservice -e "DMT 87";sleep .5; fbset -depth 8 && fbset -depth 16; sleep .5; cat /dev/urandom > /dev/fb0
One other note: You cannot operate the Vive HMD without jamming the system into full speed mode. It seems the default raspberry pi 3b+ CPU Frequency is 1.4GHz, and the core is 400MHz. The core really should be higher.
Add
core_freq=500
sdram_freq=600
sdram_schmoo=0x02000020
to your config.txt
and then at boot...
vcgencmd hdmi_timings 2160 1 40 20 46 1200 1 28 2 234 0 0 0 90 0 297000000 5 && tvservice -e "DMT 87"
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
You can measure performance based on char here: https://elinux.org/RPI_vcgencmd_usage
More FYIs - I am trying to use the X thing since it seems with the frame buffer all draw calls take 30+us.
Install libgles2-mesa-dev cmake libglm-dev
Use raspi-config to install full kernel acceleration.
Any update on this? I got a dual OLED HDMI display and I can get them to do 1080x1200@90fps on a Raspberry PI 3B+ but once I try to go to 2160x1200@90fps I only get half a screen. I assume it cannot be done but is there a device with a similar form factor that can do it?
Vive data from entech monitor asset manager:
http://entechtaiwan.com/util/moninfo.shtm
Monitor
Model name............... HTC-VIVE
Manufacturer............. HVR
Plug and Play ID......... HVRAA01
Serial number............ n/a
Manufacture date......... 2016, ISO week 255
Filter driver............ None
EDID revision............ 1.3
Input signal type........ Digital
Color bit depth.......... Undefined
Display type............. Monochrome/grayscale
Screen size.............. Undefined or variable
Power management......... Not supported
Extension blocs.......... 1 (CEA-EXT)
DDC/CI................... Not supported
Color characteristics
Default color space...... Non-sRGB
Display gamma............ 2.20
Red chromaticity......... Rx 0.665 - Ry 0.334
Green chromaticity....... Gx 0.250 - Gy 0.711
Blue chromaticity........ Bx 0.139 - By 0.050
White point (default).... Wx 0.300 - Wy 0.320
Additional descriptors... None
Timing characteristics
Horizontal scan range.... 1-255kHz
Vertical scan range...... 20-120Hz
Video bandwidth.......... 290MHz
CVT standard............. Not supported
GTF standard............. Not supported
Additional descriptors... None
Preferred timing......... Yes
Native/preferred timing.. 2160x1200p at 90Hz
Modeline............... "2160x1200" 297.000 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync
Detailed timing #1....... 2160x1200p at 90Hz
Modeline............... "2160x1200" 297.000 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync
Standard timings supported
EIA/CEA-861 Information
Revision number.......... 3
IT underscan............. Not supported
Basic audio.............. Supported
YCbCr 4:4:4.............. Not supported
YCbCr 4:2:2.............. Not supported
Native formats........... 0
Detailed timing #1....... 2160x1200p at 90Hz (16:10)
Modeline............... "2160x1200" 297.000 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync
Detailed timing #2....... 2160x1200p at 90Hz (16:10)
Modeline............... "2160x1200" 297.000 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync
Detailed timing #3....... 2160x1200p at 90Hz (16:10)
Modeline............... "2160x1200" 297.000 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync
Detailed timing #4....... 2160x1200p at 90Hz (16:10)
Modeline............... "2160x1200" 297.000 2160 2200 2220 2266 1200 1228 1230 1464 -hsync -vsync
CE video identifiers (VICs) - timing/formats supported
640 x 480p at 60Hz - Default (4:3, 1:1)
720 x 480p at 60Hz - EDTV (4:3, 8:9)
NB: NTSC refresh rate = (Hz*1000)/1001
CE audio data (formats supported)
LPCM 2-channel, 16-bit at 32/44/48 kHz
CE speaker allocation data
Channel configuration.... 2.0
Front left/right......... Yes
Front LFE................ No
Front center............. No
Rear left/right.......... No
Rear center.............. No
Front left/right center.. No
Rear left/right center... No
Rear LFE................. No
CE vendor specific data (VSDB)
IEEE registration number. 0x000C03
CEC physical address..... 1.0.0.0
Maximum TMDS clock....... 165MHz
Report information
Date generated........... 3/15/2017
Software revision........ 2.90.0.1020
Data source.............. Real-time 0x0041
Operating system......... 6.1.7601.2.Service Pack 1
Raw data
00,FF,FF,FF,FF,FF,FF,00,22,D2,01,AA,00,00,00,00,FF,1A,01,03,80,00,00,78,02,60,BC,AA,55,40,B6,23,
0C,4C,52,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,04,74,70,6A,80,B0,08,41,28,14,
C2,04,7A,44,00,00,00,18,04,74,70,6A,80,B0,08,41,28,14,C2,04,7A,44,00,00,00,18,00,00,00,FC,00,48,
54,43,2D,56,49,56,45,0A,20,20,20,20,00,00,00,FD,00,14,78,01,FF,1D,01,0A,20,20,20,20,20,20,01,DE,
02,03,15,40,42,01,02,23,09,07,01,83,01,00,00,65,03,0C,00,10,00,04,74,70,6A,80,B0,08,41,28,14,C2,
04,C0,78,00,00,00,18,04,74,70,6A,80,B0,08,41,28,14,C2,04,C0,78,00,00,00,18,04,74,70,6A,80,B0,08,
41,28,14,C2,04,C0,78,00,00,00,18,04,74,70,6A,80,B0,08,41,28,14,C2,04,C0,78,00,00,00,18,00,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,B1