New

Client Monitor EDID Tampering/Artificial Resolution & Refresh Limiting


Userlevel 3
Badge +1

Issue/Describe the bug
Client monitor EDID information is no longer being correctly passed to Shadow VM - Results in the following issues:

1. unable to set custom resolutions in nvidia control panel after launching client
2. maximum resolution/refresh seems to be artificially limited on anything over 1440p- (DQHD, 5k2k, and 5k monitors no longer work with Shadow)
3. “impersonated” EDID loaded in Shadow VM only allows 1080p when client monitor exceeds some new artificial limiter and “always match shadow resolution with local display” is checked in the client

 

Applications/Devices:
MacOS

Versions:
Current Versions of Alpha, Beta, and Official

Steps to Reproduce:

  1. Using a Monitor Higher Than 2560x1440 (Tested 3440x1440@120, 5120x1440@120, 4096x2160@60&144, 5120x2280@60)
  2. Launch Shadow and select “always match shadow resolution with local display” in the client settings
  3. Choose a custom resolution in the above ranges
  4. Note that the client monitor information is not passed to the VM
  5. Note that the VM does not show all client monitor supported resolutions
  6. Note that the “create custom resolution” button in the Nvidia Control Panel is greyed out

Additional Notes

  • The local monitor EDID information is no longer being passed to the VM correctly - In any scenario, the Nvidia Control Panel shows a generic “BladeShadow” or “Digital Display” monitor type of HDMI - HDTV type.
  • Exporting the local EDID file and importing it into the Shadow VM causes monitor information to be correctly displayed and type DisplayPort - PC Display, but some process, I think “Shadow Impersonator” is tampering with this after it is loaded
  • See attached screenshots and EDID files - https://www.dropbox.com/s/qw1dae01iilp0gq/ShadowResolutionBugInfo.zip?dl=0
  • I am available on the Shadow English Discord @Powell#1412 for live demonstration of the issue and help troubleshooting

16 replies

Userlevel 3
Badge +1

Still broken with latest beta update this morning - client tries to set the native resolution/refresh, then falls back to 1080p/60.

 

Client correctly detects native monitor resolution and attempts to set it
New ARTIFICIAL LIMITER kicks in and drops resolution/refresh back to 1080p/60

 

Userlevel 3
Badge +1
When adding a 2nd monitor - The client correctly identifies screen resolution and refresh rate, but the ARTIFICIAL LIMITER prevents it from being set in the Shadow VM

 

Userlevel 3
Badge +1
Native Resolution/Refresh Rate no longer possible on 2021 Macbook Pro 16.  The Client detects the correct settings (pictured above), but the new artificial limiter blocks it from being set in the Shadow VM.

 

Userlevel 4
Badge +4

Hey there @Powell, the bug about being locked into 1920 x 1080 should now be resolved on our latest Beta update. 

Userlevel 3
Badge +1

Hey there @Powell, this issue should now be resolved on our latest Beta update. 

It is not fixed.  The issue persists in alpha, beta, and official versions as of the time of this post. 

Support updated ticket 922269 this morning and indicated that they believe that this was an intentional change and that they had forwarded the details, including information posted here, to development.  Once they hear back from the development team, they are supposed to update the ticket.

The official word from support is that these devices were never officially supported, and the fact that they have been working for 2+ years is inconsequential. Now that development has made changes to the software to specifically exclude them does not constitute a bug, but they have forwarded the information to development for confirmation.

Userlevel 4
Badge +4

Although, Shadow might be able to detect the resolution of your monitor, this does not mean Shadow can support that specific resolution. Shadow has never supported resolutions above 4K (3840 x 2160). 

 

Shadow can only support up to 144Hz at 1080p. If you are using resolutions above 1080p up to 4K, then your refresh rate can only be 60Hz. Please change your frame rate to 60 for any resolution above 1080p in your launcher settings. This is also mentioned in the “About the Usage Stats Panel” help center article under the frame rate section:

 

Shadow can display up to 144FPS (frames per second) on screens with a 1080p resolution. 4K resolution screens can display up to 60FPS. To set a frame rate for Shadow, Open the Quick Menu and click the Display tab.

 

To clarify my comment above, our developers released an update on April 5, 2022 on our Beta app that should resolve the issue with your Shadow being locked into 1920 x 1080. You should now be able to use different resolutions that Shadow can support properly.

 

You can also try setting a custom resolution using the Nvidia Control Panel, but I am unable to guarantee that will work properly. 

Userlevel 3
Badge +1

The difference here is that you are just quoting the same document support has.  There is a BIG difference between “officially” supported as documented vs supported as in “it works fine”.  The higher resolutions and refresh rates have been “working fine” on Shadow for years (since h.265 encoding was introduced).  
 

It is a FACT that the platform supports these higher resolutions and refresh rates.  They have been “working fine” for YEARS.  
 

It is also a FACT that this previously working functionality has been disabled.  
 

So regardless of what the support document says, this change reduced the capabilities of the platform.  
 

I just want a definitive answer from the developers that the decision to break something that has worked fine for a long time was intentional, or if it is an unintended effect of another change (a bug).  If it’s a bug, I’d also love to know when I can expect an update to the alpha client.  

Userlevel 3
Badge +1

Update - Shadow now BSOD when checking “Always match shadow resolution with local display” on the monitor types identified above.

This is occurring in all versions (Official, Beta, and Alpha) on MacOS per the above conditions.

This is also reproducible with a fresh install (after reset your shadow is invoked)

Can you please stop tampering with the EDID and just pass it through to the Shadow VM like before the last major update to display management that broke everything?

Userlevel 3
Badge +1

I found a workaround to the bug I identified earlier in the automatic display management feature.  I had speculated that the EDID tampering being done by the ShadowImpersonator processes was the root cause of the issue, and have now been able to prove that out. 

See the attached screenshots below of my Shadow (official version) operating just fine again at 5120x1440@120hz.

 

Hi Powell, 

Could you share the workaround? I would also like to test it out, to check if I can enable native resolution at 120Hz on my iPad Pro. Thx.

 

Userlevel 3
Badge +1

Hi Powell, 

Could you share the workaround? I would also like to test it out, to check if I can enable native resolution at 120Hz on my iPad Pro. Thx.

 

Warning - this requires a fair bit of technical knowledge and if you mess up you may brick your shadow and need to reset it.

  1. First, you need an EDID file in hex format - This will just end up being a text file with contents that look like “00 FF 6D 50… etc”  It is important that the file format be hex with spaces between the values for the import to work correctly.  You can download binary versions of many monitor EDID files at https://edid.tv/manufacturer/ and convert them to hex, or you can use a tool like AW EDID Editor to create or modify one you already have.  For my Samsung monitor, I just downloaded the file (https://edid.tv/edid/787/) and used the command “xxd -p C49RG9x_1129797209.edid > edid.hex” on my mac to convert it to hex.  Note:  I did need to modify the output to add spaces between the hex values after conversion”
  2. Now that you have your properly formatted EDID file, you can import it into your Shadow.  Open Nvidia Control Panel and click on “View System Topology” under “Workstation” in the left hand menu. 
  3. Click the “EDID” link next to one of the “DisplayPort” items
  4. Select the “Load” tab and browse to the EDID file you created in step 1 and click the checkbox next to DisplayPort(1) to load it - If you get some kind of error here, its probably because the file isn’t formatted correctly.
  5. Click the EDID link again, and select the “Unload” tab and check the checkbox next to the item that says “BladeShadow” then click the “Unlaod EDID” button at the bottom.
  6. To enable persistence between reboots/streaming restarts, disable the “ShadowImpersonatorWatchdog” service.  *Warning - if you do this, and you use multiple devices, you will need to manually load the correct EDID file for each device when you start up each time.

Thanks, but looks like this will only work for external monitors and not for enabling 120Hz on the iPad Pro - correct? 

Userlevel 3
Badge +1

Thanks, but looks like this will only work for external monitors and not for enabling 120Hz on the iPad Pro - correct? 

No, this workaround will work for any device.  All you need is an EDID with the right settings.  

Edit: Here is a working EDID for an iPad Pro 2018 11inch for 120hz:

00 ff ff ff ff ff ff 00 09 84 01 01 b2 57 87 02 ff 1d 01 04 a5 3d 23 78 06 ee 91 a3 54 4c 99 26 0f 50 54 21 08 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 06 34 80 50 70 38 1f 40 08 20 38 00 00 00 00 00 00 1a 00 00 00 fc 00 42 6c 61 64 65 53 68 61 64 6f 77 0a 20 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 cc 54 50 90 84 62 60 08 20 38 00 00 00 00 00 00 1a 01 fb 02 03 1c 40 23 0f 04 01 83 01 00 00 67 03 0c 00 20 00 78 44 67 d8 5d c4 01 78 00 07 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 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 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 b2

Edited the default EDID and just fixed the refresh rate

 

Thanks a lot, looks like without the EDID, the beta version (v3.2.3) supports native 120Hz on the 11“ iPad Pro. But the same doesn‘t work on the 12.9“ iPad Pro. I searched the internet and couldn’t find a EDID for the 12.9“ iPad Pro. Do you have a working EDID for the 12.9“ iPad Pro? That would be very helpful. 

BTW, for some strange reason setting 120Hz (even on 1080p) did not work on my 11“ iPad Pro today. So I used your EDID file, followed the steps and it worked! Thanks for the tip. 

If you could upload a 12.9“ iPad Pro 120Hz EDID file, that would be fantastic. 

Added 120Hz using CRU Tool

After spending a lot of time researching on the internet and looking at forums, I finally managed to setup 120Hz on my iPad Pro 12.9” by using the CRU tool. But the gaming experience was not that great, I guess thats due to the NVIDIA Quadro P5000 GPU. It wasnt smooth, and when I changed it to 1440p at 120Hz, the gaming experience was much better. Looks like 1440p is the sweet spot for 120Hz for this GPU. 

 

BTW, if others would also like to try it on their iPad Pro 12.9”, here is the EDID: 

00 FF FF FF FF FF FF 00 09 84 01 01 B2 57 87 02
FF 1D 01 04 A5 3D 23 78 06 EE 91 A3 54 4C 99 26
0F 50 54 21 08 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 06 34 80 50 70 38 1F 40 08 20
38 00 E0 0E 11 00 00 1A 19 CC 54 50 90 84 62 60
08 20 38 00 55 A1 21 00 00 1A B9 8A AC 50 A0 00
3B 80 08 20 38 00 AB 00 22 00 00 1A 00 00 00 FC
00 42 6C 61 64 65 53 68 61 64 6F 77 0A 20 03 12
02 03 1C 40 23 0F 04 01 83 01 00 00 67 03 0C 00
20 00 78 44 67 D8 5D C4 01 78 00 07 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 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
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 B2
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 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 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 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
70 20 79 00 00 22 00 14 44 33 0B 00 AB 0A 93 00
2F 80 1F 00 FF 07 4C 00 02 80 03 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 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 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 C2 90

Reply