Open totalgaara opened 3 years ago
What I believe you're saying is that you'd like to control PBP using ddcutil. The question is what are the command sequences? Most likely it is some combination of manufacturer specific features and non-standard extensions to feature X60 (Input Source). You could try to reverse engineer the sequences by changing settings in the OSD and observing what has changed in ddcutil. This has not proven to be productive. See issue #163. The only real solution, I believe, is to sniff the I2C bus while the Windows application provided by the manufacturer makes changes. See issue #192 for my description of inexpensive hardware to do this.
Hi, thanks for your reply :)
I did some tests on Windows with SoftCCMS, and here is the results :
When i try to go to PBP mode here is what happend
Opcode 0x60=00 200E2F0F become Opcode 0x60=00 200E210F
and another value seems to be changing but it seems to be constructor related:
Opcode 0xA5=00 FFFF0000 become Opcode 0xA5=00 FFFF0200
I tried, leaving the PBP mode, to activate it again using this code but.. nothing happends
I maybe paranoic using this protocol can this could messup my screen? I'm scary at every value i'm trying to change :/
I appreciate that English is not your native language, but I'm having difficulty understanding what you've written. When you write "i try to go to PBP mode here is what happened", I assume you mean you set PBP mode using the OSD, then observed the values using MCCS. Where are you getting what you're calling the "opcode" values? The value for feature xA5 (window selection) sort of makes sense, where FFFF is the maximum value, and 0200 is the current value. However, this would make more sense as FFFF0002, since the byte ordering in DDC communication is MH,ML,SH,SL (max value high order byte, max value low order byte, current value high order byte, current value low order byte). I have no idea how to make sense of the feature x60 values, where you're highlighting 5 hex digits.
How are you trying to set the VCP feature values? Using MCCS or ddcutil?
I can't guarantee that playing with VCP feature values won't permanently "messup" your screen, But I've never heard of this happening. At worst, you may have to restore factor settings using ddcutil or the OSD.
Hi, I'm sorry for my English, Normally my writing is not so bad, after reading me again, you're right that it's difficult to understand what i mean..
What i did was :
Using MCCS software on WIndows :
-> Take a capture of the current state of my screen, with PBP mode disabled first
-> Take another capture after switching to PBP mode using the OSD menu
I could see a change on the 0x60 and 0xA5 features
Then i switched back to "PBP OFF" mode and try to sent the values of
200E210F on "0x60" (display input) then change the value of 0xA5 to "FFFF0200" with MCCS but that didn't do anything
How are you sending the feature values to the monitor? My copy of softMCCS does not have the ability to send specific values to the monitor. Or are you using **ddcutil setvcp*? The results you're seeing are the get feature value responses. After the "opcode", the 00 byte indicates that the feature is settable, as opposed to momentary. The remaining 4 bytes are known as MH, ML, SH, SL. usually the high and lower order bytes of the maximum value, followed by the high and low order bytes of the current value. Some features use the bytes in feature specific ways. When setting a feature value, you send only the SH and SL bytes for the new value, i.e. 2 bytes. You can't change the maximum value. If using ddcutil setvcp, since you're sending a 2 byte hex value, specify it in hex notation, e.g. ddcutil setvcp xa5 x0200.
Since you're seeing variation in the MH,ML bytes for feature x60, the monitor is likely using that feature in a special way.
Sorry for the delayed reply, i was very busy. :) There is some slider on softmmcs to adjust and those slider seems to change the value, but changing them wasn't doing anything
I tried your example command "ddcutil setvcp xa5 x0200" with ddcutil and it kind of work. The monitor was set on PIP mode but actually the screen wasn't split ?. Normally when i turn on PBP mode i've the screen cut in half, on the left manjaro and on the right, windows.
I feel like we are getting closer to a result ;)
Hi,
First i want to thank you for that awesome,project, it could be my solution for my virtualisation setup. I'm running Manjaro on host and a VM with Windows 8.1 with gpu passtrough, i've got two gpu :
Main : R9 290 -> Using Displayport VM : GTX 745 -> Using HDMI 1
For now i've been using software like Moonlight and GeForce experience to remote control my VM, but it's really not perfect, sometime it feels "slow". i then tried the PBP mode on my monitor and it's so much better, the only issue : it's absolutely not adaptive, if i shutdown my vm, it doesn't go like "ok there is one display, use full monitor", i'm stuck in dual monitor mode.
I would like to make a script using dd-utils to enable PBP and disable it when the VM is shutdown but i can't see any PBP options...
Here is some command i wrote for you (PS For now all command are used as root as i'm testing):
Do you know what could be the issues ? i tried to figure it out by myself but i'm not really sure what i've to look at :/
Thank you