MacBook Pro no longer outputs native resolution to external monitor when rotation is on

displaydisplayportresolutionthunderbolt

I have a mid 2012 Retina MacBook Pro running Yosemite 10.10.3. As of last week, I was running an external Dell 24" monitor connected with a Thunderbolt to DisplayPort cable and rotated to portrait orientation without problems. This morning when I reconnected my computer, I could not get native resolution output to the monitor.

![Resolutions before selecting native resolution][1]

In the Displays preference pane, I noticed it was set to scale to 1080p resolution. I clicked on the native resolution. The displays flickered. The external monitor display was restored but still running at 1080. At this point, there were no longer any resolution options in the box although scaled is still selected.

![Resolutions after selecting native resolution][2]

If I select "Default for display," that radio button turns on for a split second before reverting to "Scaled" with no resolution options.

I changed the rotation back to standard, and the display runs at normal resolution. I called AppleCare and was told I would have to contact Dell. The senior support rep told me that the monitor rewrites the driver in the OS to provide the rotation setting and that it is not supported by Apple and is only a setting that exists after the monitor sends information to the computer (which sounds pretty wacky to me).

At one point, I switched the orientation to 270 degrees rather than 90 and got native resolution. When I then switched back to standard and again to 270, I was back to 1080 with the same issue as the 90 degree rotation.

I feel like this has to be an issue either with the graphics driver in OS X or with the graphics card. Outside not being able to display above it's native resolution, I can't imagine the monitor is making a decision about what images to display based on their rotation. In fact, I don't think the monitor is at all aware of either its physical orientation nor of the orientation of the image. Am I right about this? Does anyone have a suggestion for how I might fix this problem?

Update: Console output changing orientation to 90 degrees and back to standard: https://gist.github.com/raddevon/fcd76586bf4170bc4ae7

Best Answer

I had exactly the same problem, with the same monitor, Dell U2713 / U2713H / U2713HM / U2713HMt. I had two of them plugged in to my late-2014 Retina Macbook Pro 15" and only one was experiencing the problem. I tried 100s of different solutions (I can say for sure it's definitely not the cable!) and nothing worked. Just like you, I could get landscape 2560x1440 but not portrait. And I was getting the same error WindowServer: description_for_mode_number: IOFBGetPixelInformation failed (-536870206) when I tried to switch to portrait. That is, until I came across this: https://discussions.apple.com/thread/5485930?start=0&tstart=0. I regenerated the EDID override for the screen using the Ruby script, copied it into the correct location, rebooted and now it works again. I think I caused the problem by playing a game (Trine 2) in vertical (720x1280) resolution - after that, I tried everything to get the screen back to displaying portrait 1440x2560 but to no avail. Until I got the Ruby script from the thread above which fixed it.

Just to note, in case the linked thread disappears... the override file is in /System/Library/Displays/Overrides/ under the folder DisplayVendorID-10ac which is for Dell displays. The file for the U2713-series of monitors (and I think the U2711-series too) is DisplayProductID-4080. The contents of the file should be:

<?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>DisplayProductName</key>
  <string>Dell U2713HMt</string>
  <key>IODisplayEDID</key>
  <data>AP///////wAQrIBATDA1NB4WAQSlPCJ4Iku1p1ZLoyUKUFSlSwCBALMA0QBx
T6lAgYABAQEBVl4AoKCgKVAwIDUAVVAhAAAaAAAA/wBHSzBLRDI3TjQ1MEwK
AAAA/ABERUxMIFUyNzEzSE0KAAAA/QAxVh1xHgEKICAgICAgAA0=
</data>
  <key>DisplayVendorID</key>
  <integer>4268</integer>
  <key>DisplayProductID</key>
  <integer>16512</integer>
</dict>
</plist>