Blurry text on Dell Monitor + Mac OS X

I recently received a new MacBook Pro, and a new external monitor, from the company I work for. Unfortunately when I hooked the laptop up to the monitor (Dell U3014), via display port, I was surprised by the poor picture quality. Text was misshapen, and contrast completely off.

The reason is that the DisplayPort uses YCbCr colors instead of RGB to drive the display, which limits the range of colors and apparently causes the display to apply some undesired post processing.

Steps to fix the issue (I’ve found the solution in the link below):

    • Download the file patch-edid.rb from the forum here , or copy the following code in a new file:
      #!/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
      
    • Connect the external monitor and close the lid (only the external monitor must be connected).
    • Run the command chmod +x patch-edid.rb
    • Run the script ./patch-edid.rb
    • A new folder will be created with the overrides for your monitor.
    • Move it into the /System/Library/Displays/Overrides folder.
    • Restart your computer.

Link to the forum thread with the solution: http://embdev.net/topic/284710

19 thoughts on “Blurry text on Dell Monitor + Mac OS X

  1. kOoLiNuS

    Two things my friend:
    • did you get it by Dell Italy or not? A couple of months ago I saw that they “stop” at 24″ inches
    • with the patch applied are you satisfied with the result ???
    Cheers

    Reply
    1. Danilo Post author

      Got it from amazon.it, but the vendor was from Germany. Everything was OK with them.
      With the patch applied the monitor works just fine, but I think a 27″ could be enough, and way cheaper. I’m still trying to figure out how to use this big monitor. It’s too big and I usually only use the central part of it.

      Reply
  2. Joachim

    I’v tried to run the script and a get permission denied for the most part. It worked once and made a folder but no file? I have a dell 3014 (bought it today) that would be nice to get running. Know i can’t get it to work again, and I have tried all variants of the script above?
    Any clue, need some help.

    Reply
  3. Joachim

    I fixed it! I found a “DisplayVendorID-10ac” folder with a file for my screen in it on a Japanese web site. I don’t understand why the ones who could run the script don’t put the files up on the net. Then, after a short while, fixes for all monitors would be available with out having to run the script. I now have the file for Dell 3014U (and U2713HM, U2713H in the same folder) if anyone wants them.
    Is it possible for me to upload them here? or send them to you and then you can put them up.
    //Joachim

    Reply
    1. Danilo Post author

      It’s better to run the script because sometimes configurations could change, even on the same monitor. I’ve tried both the file available on that forum, and both the file created created with the script here, locally on my laptop, and they are almost the same. Same settings, same result.
      If you want to upload your files, please use a file sharing service (even with dropbox you can share files) and post the link here.

      Reply
        1. Travis Griggs

          I don’t have a DisplayVendorID-10ac folder in my Overrides directory. Is 10ac the ID for all Dell displays? This monitor will let me set the Input Color Format from its OSD menu. If I change it to RGB, things get smoother, but everything’s also really GREEN. It’s like the color channels are swapped or something.

          Reply
          1. Travis Griggs

            Nevermind. I totally missed the part that you have to move the newly generated file. Even easier, I should have just run the script after cd’ing to the /System/Library/Display/Overrides directory.

  4. Martin

    For those that hate rebooting. simply unplug the screen and reinsert… this worked for me at least with my Retina and U2410.

    Reply
  5. Anestis

    I have an Asus 27′ PQ278q 2560×1440 screen and I’ve been searching and searching for WEEKS on how to make my fonts look smoother with on OSX. I thought maybe the aspect ratio is different on the 27′ Apple thunderbolt and that might be why the fonts look SO much nicer on the thunderbolt screen in contrast to my Asus 27′. Then I thought maybe I’ll do some research on how the two dell (27′ and 30′) screens fare and came across your post!
    I’ve applied your fix to my overrides and boy what a difference it made! No need to sell my lovely monitor anymore :O

    You need to change the title to something more generic for people to find it more easily as it is a LIFESAVER!

    Thank you, thank you, thank you!!!

    Reply
  6. Pingback: Macbook: Low quality on external monitors | Danilo Ercoli

  7. riccardo delfanti

    Ciao Danilo!
    ho un ASUS PA279Q, stesso problema dei Dell, ho provato tutte le versioni del patch-edid.eb che ci sono in rete e non mi crea nessun file o mi restituisce un errore quando lo lancio da terminale. Dove sbaglio?!

    Reply
      1. riccardo delfanti

        Si l’ho fatto ma poi ho capito dove stava il problema praticamente non so il perchè quando chiudevo il monitor del portatile non riconosceva più che era collegato un altro monitor, ora sono riuscito a creare il file, ho copiato il file generato in …/Overrides ma il monitor continua a rimanere nero. Riportando a monitor al cambio sorgente o dopo l’accensione un messaggio sul monitor DVI NO SIGNAL.

        Ed il monitor è collegato via Display port.
        Ora però ho provato a collegare anche un notebook PC via HDMI ma da uguale, sospetto sia il monitor malfunzionante?

        Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s