1. 05 Mar, 2017 2 commits
    • ROOL's avatar
      Offer export of raw EDID blob and complementary MDF export · 961adc98
      ROOL authored
      Detail:
        Export the EDID raw data as a file in ResourceFS. This allows the Screen Setup plugin to scan that directory to pick up the currently connected monitor, and similarly select it from !Boot.Choices.PreDesk. The EDID data can also be drag & drop copied or exported for offline analysis.
        Add SaveModeFile command. This differs in that it works on the current set, to be symmetrical with LoadModeFile which loads the current set. Also fixes issues of losing the original mode names given; NULL pointer dereference when the EDID block contains no modes (eg. VIDCDriver); and no long writes out malformed MDFs which can't be loaded into !MakeModes (this seems to be because the CreateModeFile command was based on a stale copy of EDIDDecode which fixed the same bug circa 2012).
        Query the current GraphicsV driver for the deepest colour depth for the preferred mode, rather than assuming 32bpp is always possible (eg. because of bandwidth or graphics controller constraints).
        If the configured MonitorType is EDID but no EDID could be read, or it was corrupt, substitute a safe VESA monitor to allow the kernel to select something close to MODE 28.
        Add ScreenModes_Features SWI so the Screen Setup plugin knows whether it's safe to offer EDID in its dialogues.
        Retire the ReadEDID command (no longer needed since LoadModeFile can load the exported EDID blob, or one from disc) and CreateModeFile commands (see SaveModeFile).
        Internationalise the default monitor title ("Unidentified") used when EDID doesn't contain one.
      Admin:
        New file - doc/BootStates documents all possible situations, and their recovery, for both the MDF and (non-hotplug) EDID schemes.
        New file - doc/EDIDGoals states the aims of the EDID support from both a user and support perspective.
      
        Submission for the EDID bounty.
      
      Version 0.61. Tagged as 'ScrModes-0_61'
      961adc98
    • ROOL's avatar
      Check for array bounds · 95d1dca9
      ROOL authored
      Detail:
        Define MAXDMTMODENUM to guard against requesting DMT timing not in our table. Assert that the table size matches the define.
        Lowercased some 'X' (edidsupport.c), change to _swix (mdfsupport.c).
      Admin:
        Submission for the EDID bounty.
      
      Version 0.60. Tagged as 'ScrModes-0_60'
      95d1dca9
  2. 14 May, 2016 1 commit
    • ROOL's avatar
      Split out data tables, stylistic refactoring · 8a00983b
      ROOL authored
      Detail:
        Move the 500+ lines of tables into a new source file and remove storage inferred by former CEAModes.h.
        Tame some of the rampant style from various authors, even within 1 function, to something reasonably consistent.
        Uppercase the 'debug' macro to 'IFDEBUG'.
        Relocate ScrModes specific defines out of EDIDModes header, rename to edidmemory.h.
        Add monitor type 6 to monitors.h.
        Fix for unguarded debug printout "Can't allocate space for monitor list" in parseedid.
      Admin:
        Tested briefly, functionality unchanged.
        Submission for the EDID bounty.
        Tagged as ScrModes-0_53-tables
      8a00983b
  3. 05 Nov, 1996 1 commit