Skip to content

Commit 92203a5

Browse files
EDID Integration
🔌 EDID Profile Integration - Automatic Monitor Configuration: Loads settings from monitor_profile.xml - Priority System: Manual settings override EDID when needed - Graceful Fallback: Uses manual config if EDID loading fails 🌈 HDR10 Support - SMPTE ST.2086 Compliance: Industry-standard HDR metadata - Color Primaries: RGB chromaticity coordinates + white point - Luminance Management: Min/max mastering + content light levels 🎨 Advanced Color Processing - Multi Color Space: sRGB, DCI-P3, Rec.2020, Adobe RGB support - Gamma Correction: Customizable gamma curves with 3x4 matrix transforms - FP16 Pipeline: High-precision color calculations 📺 Intelligent Mode Management - EDID Mode Generation: Automatic resolution extraction from profiles - Advanced Filtering: Refresh rate, resolution, and aspect ratio constraints - Mode Optimization: Duplicate removal and performance tuning 🛡️ Production Quality - Comprehensive Validation: 4-test diagnostic suite with real-time monitoring - Configuration Sanitization: Automatic correction of invalid settings - Emergency Fallback: sRGB/D65 defaults for system stability - Performance Monitoring: 10ms threshold tracking for optimal performance 🔧 File Structure C:\VirtualDisplayDriver\ ├── vdd_settings.xml (Required - Main configuration) └── EDID\monitor_profile.xml (Optional - EDID profile data) 🙏 Acknowledgments - MikeTheTech - For implementing this comprehensive EDID integration into the driver codebase. - Jocke - For developing the EDID parser that generates the monitor profile data used by this system.
1 parent 61ae3fb commit 92203a5

File tree

9 files changed

+3061
-101
lines changed

9 files changed

+3061
-101
lines changed
File renamed without changes.
81 KB
Binary file not shown.
256 Bytes
Binary file not shown.

Virtual Display Driver (HDR)/EDID/edid_parser.txt

Lines changed: 1001 additions & 0 deletions
Large diffs are not rendered by default.
256 Bytes
Binary file not shown.
Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<IddCxMonitorConfig>
3+
<MonitorModes>
4+
<MonitorMode>
5+
<Width>640</Width>
6+
<Height>480</Height>
7+
<RefreshRate>60.000</RefreshRate>
8+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
9+
<NominalRefreshRate>60</NominalRefreshRate>
10+
</MonitorMode>
11+
<MonitorMode>
12+
<Width>720</Width>
13+
<Height>480</Height>
14+
<RefreshRate>59.940</RefreshRate>
15+
<RefreshRateMultiplier>999</RefreshRateMultiplier>
16+
<NominalRefreshRate>60</NominalRefreshRate>
17+
</MonitorMode>
18+
<MonitorMode>
19+
<Width>720</Width>
20+
<Height>576</Height>
21+
<RefreshRate>50.000</RefreshRate>
22+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
23+
<NominalRefreshRate>50</NominalRefreshRate>
24+
</MonitorMode>
25+
<MonitorMode>
26+
<Width>800</Width>
27+
<Height>600</Height>
28+
<RefreshRate>60.000</RefreshRate>
29+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
30+
<NominalRefreshRate>60</NominalRefreshRate>
31+
</MonitorMode>
32+
<MonitorMode>
33+
<Width>1024</Width>
34+
<Height>768</Height>
35+
<RefreshRate>60.000</RefreshRate>
36+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
37+
<NominalRefreshRate>60</NominalRefreshRate>
38+
</MonitorMode>
39+
<MonitorMode>
40+
<Width>1152</Width>
41+
<Height>864</Height>
42+
<RefreshRate>75.000</RefreshRate>
43+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
44+
<NominalRefreshRate>75</NominalRefreshRate>
45+
</MonitorMode>
46+
<MonitorMode>
47+
<Width>1280</Width>
48+
<Height>720</Height>
49+
<RefreshRate>50.000</RefreshRate>
50+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
51+
<NominalRefreshRate>50</NominalRefreshRate>
52+
</MonitorMode>
53+
<MonitorMode>
54+
<Width>1280</Width>
55+
<Height>720</Height>
56+
<RefreshRate>59.940</RefreshRate>
57+
<RefreshRateMultiplier>999</RefreshRateMultiplier>
58+
<NominalRefreshRate>60</NominalRefreshRate>
59+
</MonitorMode>
60+
<MonitorMode>
61+
<Width>1280</Width>
62+
<Height>1024</Height>
63+
<RefreshRate>60.000</RefreshRate>
64+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
65+
<NominalRefreshRate>60</NominalRefreshRate>
66+
</MonitorMode>
67+
<MonitorMode>
68+
<Width>1600</Width>
69+
<Height>900</Height>
70+
<RefreshRate>60.000</RefreshRate>
71+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
72+
<NominalRefreshRate>60</NominalRefreshRate>
73+
</MonitorMode>
74+
<MonitorMode>
75+
<Width>1680</Width>
76+
<Height>1050</Height>
77+
<RefreshRate>60.000</RefreshRate>
78+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
79+
<NominalRefreshRate>60</NominalRefreshRate>
80+
</MonitorMode>
81+
<MonitorMode>
82+
<Width>1920</Width>
83+
<Height>1080</Height>
84+
<RefreshRate>7.000</RefreshRate>
85+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
86+
<NominalRefreshRate>7</NominalRefreshRate>
87+
</MonitorMode>
88+
<MonitorMode>
89+
<Width>1920</Width>
90+
<Height>1080</Height>
91+
<RefreshRate>50.000</RefreshRate>
92+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
93+
<NominalRefreshRate>50</NominalRefreshRate>
94+
</MonitorMode>
95+
<MonitorMode>
96+
<Width>1920</Width>
97+
<Height>1080</Height>
98+
<RefreshRate>59.940</RefreshRate>
99+
<RefreshRateMultiplier>999</RefreshRateMultiplier>
100+
<NominalRefreshRate>60</NominalRefreshRate>
101+
</MonitorMode>
102+
<MonitorMode>
103+
<Width>3840</Width>
104+
<Height>2160</Height>
105+
<RefreshRate>0.000</RefreshRate>
106+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
107+
<NominalRefreshRate>0</NominalRefreshRate>
108+
</MonitorMode>
109+
<MonitorMode>
110+
<Width>3840</Width>
111+
<Height>2160</Height>
112+
<RefreshRate>4.000</RefreshRate>
113+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
114+
<NominalRefreshRate>4</NominalRefreshRate>
115+
</MonitorMode>
116+
<MonitorMode>
117+
<Width>3840</Width>
118+
<Height>2160</Height>
119+
<RefreshRate>24.000</RefreshRate>
120+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
121+
<NominalRefreshRate>24</NominalRefreshRate>
122+
</MonitorMode>
123+
<MonitorMode>
124+
<Width>3840</Width>
125+
<Height>2160</Height>
126+
<RefreshRate>25.000</RefreshRate>
127+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
128+
<NominalRefreshRate>25</NominalRefreshRate>
129+
</MonitorMode>
130+
<MonitorMode>
131+
<Width>3840</Width>
132+
<Height>2160</Height>
133+
<RefreshRate>29.970</RefreshRate>
134+
<RefreshRateMultiplier>999</RefreshRateMultiplier>
135+
<NominalRefreshRate>30</NominalRefreshRate>
136+
</MonitorMode>
137+
<MonitorMode>
138+
<Width>3840</Width>
139+
<Height>2160</Height>
140+
<RefreshRate>50.000</RefreshRate>
141+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
142+
<NominalRefreshRate>50</NominalRefreshRate>
143+
</MonitorMode>
144+
<MonitorMode>
145+
<Width>3840</Width>
146+
<Height>2160</Height>
147+
<RefreshRate>59.940</RefreshRate>
148+
<RefreshRateMultiplier>999</RefreshRateMultiplier>
149+
<NominalRefreshRate>60</NominalRefreshRate>
150+
</MonitorMode>
151+
<MonitorMode>
152+
<Width>3840</Width>
153+
<Height>2160</Height>
154+
<RefreshRate>100.000</RefreshRate>
155+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
156+
<NominalRefreshRate>100</NominalRefreshRate>
157+
</MonitorMode>
158+
<MonitorMode>
159+
<Width>3840</Width>
160+
<Height>2160</Height>
161+
<RefreshRate>120.000</RefreshRate>
162+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
163+
<NominalRefreshRate>120</NominalRefreshRate>
164+
</MonitorMode>
165+
<MonitorMode>
166+
<Width>4096</Width>
167+
<Height>2160</Height>
168+
<RefreshRate>23.976</RefreshRate>
169+
<RefreshRateMultiplier>999</RefreshRateMultiplier>
170+
<NominalRefreshRate>24</NominalRefreshRate>
171+
</MonitorMode>
172+
<MonitorMode>
173+
<Width>4096</Width>
174+
<Height>2160</Height>
175+
<RefreshRate>50.000</RefreshRate>
176+
<RefreshRateMultiplier>1000</RefreshRateMultiplier>
177+
<NominalRefreshRate>50</NominalRefreshRate>
178+
</MonitorMode>
179+
<MonitorMode>
180+
<Width>4096</Width>
181+
<Height>2160</Height>
182+
<RefreshRate>59.940</RefreshRate>
183+
<RefreshRateMultiplier>999</RefreshRateMultiplier>
184+
<NominalRefreshRate>60</NominalRefreshRate>
185+
</MonitorMode>
186+
</MonitorModes>
187+
<HDRCapabilities>
188+
<HDR10Supported>true</HDR10Supported>
189+
<DolbyVisionSupported>false</DolbyVisionSupported>
190+
<HDR10PlusSupported>false</HDR10PlusSupported>
191+
<MaxLuminance>1670.838</MaxLuminance>
192+
<MinLuminance>10.615</MinLuminance>
193+
</HDRCapabilities>
194+
<ColorProfile>
195+
<PrimaryColorSpace>sRGB</PrimaryColorSpace>
196+
<Gamma>2.200</Gamma>
197+
<Chromaticity>
198+
<RedX>0.6250</RedX>
199+
<RedY>0.3398</RedY>
200+
<GreenX>0.2803</GreenX>
201+
<GreenY>0.5947</GreenY>
202+
<BlueX>0.1553</BlueX>
203+
<BlueY>0.0703</BlueY>
204+
<WhiteX>0.2832</WhiteX>
205+
<WhiteY>0.2979</WhiteY>
206+
</Chromaticity>
207+
</ColorProfile>
208+
<PreferredMode>
209+
<Width>4096</Width>
210+
<Height>2160</Height>
211+
<RefreshRate>59.940</RefreshRate>
212+
</PreferredMode>
213+
</IddCxMonitorConfig>

0 commit comments

Comments
 (0)