Mavericks not able to use external display at full resolution

I have been several months using my mid-2010 15" MBP connected to a Dell U2711 through a miniDisplayPort-DisplayPort adapter, without any trouble cranking the resolution up in Mountain Lion to it's full 2560x1440.

I have just updated my laptop to Mavericks, and I'm not able to use the full resolution of my monitor anymore. I have done several tests, either with the lid open and closed, or trying to force the discrete GPU through gfxCardStatus

Is anyone experiencing this same behaviour? Anything I could try? Possible workarounds?


Finally I found this. Looks like the default EDID configuration for Dell displays is not quite right.

On that post there's also a ruby script that suposedly generates the right file for your display, but it ended up screwing even more my resolution.

I downloaded the file from the first post, and after copying it to /System/Library/Displays/Overrides and rebooting, my display was showing again its awesome full resolution. The files are suposedly to correct issues with U2713H and U2713HM, but it worked with my U2711 also.

Hope this helps someone as it helped me.


This Ruby script generates a custom override for your monitor. Save it as patch-edid.rb to your user folder, and from Terminal run ruby patch-edid.rb. Copy the generated file into /System/Library/Displays/Overrides/ and reboot.

#!/usr/bin/ruby
# Create display override file to force Mac OS X to use RGB mode for Display
# see http://embdev.net/topic/284710
# 
# Update 2013-06-24: added -w0 option to prevent truncated lines

require 'base64'

data=`ioreg -l -w0 -d0 -r -c AppleDisplay`

edid_hex=data.match(/IODisplayEDID.*?<([a-z0-9]+)>/i)[1]
vendorid=data.match(/DisplayVendorID.*?([0-9]+)/i)[1].to_i
productid=data.match(/DisplayProductID.*?([0-9]+)/i)[1].to_i

puts "found display: vendorid #{vendorid}, productid #{productid}, EDID:\n#{edid_hex}"

bytes=edid_hex.scan(/../).map{|x|Integer("0x#{x}")}.flatten

puts "Setting color support to RGB 4:4:4 only"
bytes[24] &= ~(0b11000)

puts "Number of extension blocks: #{bytes[126]}"
puts "removing extension block"
bytes = bytes[0..127]
bytes[126] = 0

bytes[127] = (0x100-(bytes[0..126].reduce(:+) % 256)) % 256
puts 
puts "Recalculated checksum: 0x%x" % bytes[127]
puts "new EDID:\n#{bytes.map{|b|"%02X"%b}.join}"

Dir.mkdir("DisplayVendorID-%x" % vendorid) rescue nil
f = File.open("DisplayVendorID-%x/DisplayProductID-%x" % [vendorid, productid], 'w')
f.write '<?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">'
f.write "
<dict>
  <key>DisplayProductName</key>
  <string>Display with forced RGB mode (EDID override)</string>
  <key>IODisplayEDID</key>
  <data>#{Base64.encode64(bytes.pack('C*'))}</data>
  <key>DisplayVendorID</key>
  <integer>#{vendorid}</integer>
  <key>DisplayProductID</key>
  <integer>#{productid}</integer>
</dict>
</plist>"
f.close

Source: EmbDev.net, topic “Dell U2713H on Mac: forcing RGB mode instead of YCbCr”, post #3027030


I have a solution that worked for me. Running MBP retina 15" early 2013 with Dell u2713hm.

This solved the problem:

http://embdev.net/attachment/167830/U2713H_U2713HM_Mac_EDID_override.zip

The problem can be solved by overriding the EDID data of the display (http://en.wikipedia.org/wiki/Extended_display_identification_data) in order to tell OS X that the display only supports RGB. This can be done by reading the EDID with ioreg -l, modifying the offending bits (see the specification in the Wikipedia article), and creating a display config override file for OS X. I have attached such a file for the U2713H and U2713HM; just extract it and move the contained folder into /System/Library/Displays/Overrides. After a reboot, the monitor should show that RGB colors are used. For other monitors with the same problem, the files won't work, but in principle the solution is the same.

Source: http://embdev.net/topic/284710#3027030