Poyda wrote:
I sent the developer of SwitchResX an email asking if it was possible, here is the reply:
You cannot define which resolution is used as a basis for the scaled resolutions. Scaled resolutions are all "children" of a master resolution, which is always the same, and which is chosen by MacOS X - this is not a choice that can be influenced by SRX
Moreover, as far as I know, Apple has decided that AMD display drivers cannot use scaled resolutions apart those that are stored in a hardcoded list in their display driver. I may be wrong, but this simply means that you cannot get any HiDPI resolution that is not "apple-approved" on a MacPro.
regards
Stephane
I know that Mountain Lion was the last version I was able to create scaled resolutions that are greater in size than the native display size for the Radeon HD 5870 (for HiDPI testing). Apple removed the feature for no good reason. I don't know if Apple has changed that since then because I use an NVIDIA GTX 680 now. It seems that OS X drivers for NVIDIA and AMD are developed separately and don't maintain feature parity.
But Poyda said he was able to create the scaled resolutions that he wanted - they were just using the native timing of the display instead of the new 50 Hz timing. So to solve this, you have to figure out how to make the driver think that 50 Hz is the native timing of the display. The only way I can think to do that is to override the EDID of the display. It may or may not work though.
To override the EDID for the U28D590D you need to create an override file at /System/Library/Displays/Overrides/DisplayVendorID-4c2d/DisplayProductID-b80
Here's a version of an override file for the U28D590D with the preferred timing set to 50 Hz:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductID</key>
<integer>2944</integer>
<key>DisplayVendorID</key>
<integer>19501</integer>
<key>IODisplayEDID</key>
<data>AP///////wBMLYALAAAAADQXAQS1PSN4Ol+xoldPoigPUFS/74BxT4EAgcCBgKnAswCVANEAqKwAoPBwPoAwIDUAX1khAAAaVl4AoKCgKVAwIDUAX1khAAAaAAAA/QAySx6GNgAKICAgICAgAAAA/ABVMjhENTkwCiAgICAgAW4CAwzwIwkHB4MBAAACOoAYcTgtQFgsRQBfWSEAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlw==</data>
</dict>
</plist>
Have you tried refresh rates higher than 50 Hz? 56 Hz is the highest before the pixel clock exceeds 500 MHz which might be a possible limit of the driver. Here's the same override with the preferred timing set to 56 Hz.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductID</key>
<integer>2944</integer>
<key>DisplayVendorID</key>
<integer>19501</integer>
<key>IODisplayEDID</key>
<data>AP///////wBMLYALAAAAADQXAQS1PSN4Ol+xoldPoigPUFS/74BxT4EAgcCBgKnAswCVANEAC8IAoPBwPoAwIDUAX1khAAAaVl4AoKCgKVAwIDUAX1khAAAaAAAA/QAySx6GNgAKICAgICAgAAAA/ABVMjhENTkwCiAgICAgAfUCAwzwIwkHB4MBAAACOoAYcTgtQFgsRQBfWSEAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlw==</data>
</dict>
</plist>
The EDID of the U28D590D says the minimum vertical refresh is 56 Hz so I am not sure why the driver would ignore that and allow your custom 50 Hz timing but since you got it to work, I've updated the EDID to show 50 Hz as the minimum refresh.
If you used SwitchResX to create an override then there might be a file named DisplayYearManufacture-2013-DisplayWeekManufacture-52. Just check the DisplayProductID and DisplayVendorID inside the file to be sure or you could use the "Restore factory settings" option in SwitchResX first before creating the DisplayProductID-b80 file. I'm guessing the Year/Week file created by SwitchResX takes precedence over the ProductID file or SwitchResX removes the ProductID file.