• Jeffrey Lee's avatar
    Assorted GraphicsV improvements · 694750de
    Jeffrey Lee authored
    Detail:
      This set of changes:
      * Adds basic support for multiple GraphicsV drivers, by way of some new OS_ScreenMode reason codes for registering/deregistering, selecting and enumerating drivers (11, 64-68)
      * Tidies up handling of HAL video calls so that the HAL calls will be transformed into a bona fide GraphicsV driver if they're implemented
      * Changes handling of 16bpp gamma table entries so that they're sent to GraphicsV in a generic form instead of in a VIDC-specific form
      * Adds a new GraphicsV call and defines new VIDC list items to allow GraphicsV drivers to utilise the new pixel formats
      File changes:
      * h/VIDCList, hdr/VIDCList, Makefile - Add new header export containing VIDC list type 3 definitions, to avoid repeated definitions in other components
      * Resources/UK/Messages - Add new GraphicsV/OS_ScreenMode error strings and some missing processor type strings
      * hdr/KernelWS - Clean up some pre-GraphicsV definitions, and add new workspace locations for storing the current GraphicsV driver number and the driver list
      * hdr/Options - Remove obsolete InverseTextTransparency option
      * hdr/VduExt - Add VDU variable 192 for storing GraphicsV driver number (same as ROL's VideoV driver number). Remove old 'Flag_*' mode flag definitions (use new 'ModeFlag_*' defintions instead). Add new OS_ScreenMode reason codes.
      * s/ARM600, s/VMSAv6, s/vdu/vdu23, s/vdu/vdugrafa, s/vdu/vdugrafd, s/vdu/vdupalxx, s/vdu/vdupointer, s/vdu/vduwrch - Strip out pre-GraphicsV code. Update GraphicsV code to use correct driver number.
      * s/ArthurSWIs - Pass the default GraphicsV claimant the VduDriverWorkSpace instead of ZeroPage
      * s/Getall - Add Hdr:VIDCList and s/vdu/VduGrafHAL to list of GETs
      * s/NewIRQs - Remove HAL VSync IRQ initialisation, is now handled by grafvhal. Remove old HAL VsyncIRQ entry point, all VSyncs are now handled by VsyncIRQ_ExtEntry.
      * s/PMF/osbyte - Stop OS_Byte 19 waiting forever if no video driver is active
      * s/PMF/osinit - Remove HAL VSync IRQ initialisation, is now handled by grafvhal
      * s/vdu/vducursoft - Use new workspace variable names and flag names
      * s/vdu/vdudecl - Remove old HALDAG_* definitions, GVDAG_* definitions are used instead. Add definition of the per-driver workspace structure and flags.
      * s/vdu/vdudriver - Remove pre-GraphicsV code. Update InitialiseMode to check for and initialise a HAL driver. Use cached driver features word in a few places instead of calling GraphicsV each time. Update PalIndexTable to disable VIDC mangling of 16bpp gamma tables.
      * s/vdu/vdugrafv, s/vdu/vdugrafhal - HAL<->GraphicsV code split off into its own file (vdugrafhal). Default GraphicsV claimant now only deals with VSync events for the active driver.
      * s/vdu/vdumodes - Get rid of old VIDC List type 3 definiton; now in hdr/VIDCList
      * s/vdu/vduswis - Added OS_ScreenMode reason codes 11 and 64-68 for registering, deregistering, selecting and enumerating GraphicsV drivers. Update mode set code to not bother checking if the driver supports the pixel format; instead we assume that the driver's vet mode call will do the check for us.
    Admin:
      Tested in Tungsten, IOMD, OMAP3 & BCM2835 ROMs
      Requires HdrSrc-2_38 and updated video driver modes
    
    
    Version 5.35, 4.79.2.203. Tagged as 'Kernel-5_35-4_79_2_203'
    694750de
NewIRQs 23.5 KB