Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-18917

[RealHW] Intel HD Graphics is not loading correctly under Master.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • None

    Description

      ReactOS version: reactos-bootcd-0.4.15-dev-5921-gefe7368
      Arch: 32 bits
      Comp: GCC
      Drivers: Intel HD/HD 2000/2500/3000/4000 - XP32_14.51.10_5436_setup_ZPE.exe
      Environment: Dell Optiplex 3010, Intel® Core™ i3-2120, Intel® HD Graphics 2000 (SNB GT1).

      Description:
      After installing the driver manually from this setup, rebooting the system makes to fail under same as all drivers of Intel GMA/GSE. There is a the same error than CORE-13774, CORE-12701, so I will follow the hack that simonelombardo made for make it boot.

      Once hacked, I found that it would fail under MM freelist and the driver, that calls this:

      BOOT DRIVERS LOADED
      (ntoskrnl/fstub/disksup.c:2109) FSTUB: MaxSector now = 37947394
      (drivers/storage/port/scsiport/ioctl.c:542) unknown ioctl code: 0x66001B
      (ntoskrnl/mm/ARM3/sysldr.c:169) Loading: \SystemRoot\System32\drivers\processr.sys at F7599000 with 9 pages
      (ntoskrnl/mm/ARM3/sysldr.c:169) Loading: \SystemRoot\System32\drivers\igxpmp32.sys at F732F000 with 26a pages
      (ntoskrnl/mm/ARM3/sysldr.c:169) Loading: \SystemRoot\System32\drivers\VIDEOPRT.SYS at F7302000 with 2d pages
      (ntoskrnl/mm/ARM3/sysldr.c:2466) Skipping NT 4 driver @ F732F000
      (ntoskrnl/io/pnpmgr/pnpres.c:648) Resource conflict: IRQ (0xb 0xb vs. 0xb 0xb)
      (ntoskrnl/io/pnpmgr/pnpres.c:648) Resource conflict: IRQ (0xb 0xb vs. 0xb 0xb)
      WARNING:  VideoPortSetTrappedEmulatorPorts at win32ss/drivers/videoprt/resource.c:1061 is UNIMPLEMENTED!
      WARNING:  VideoPortRegisterBugcheckCallback at win32ss/drivers/videoprt/videoprt.c:1578 is UNIMPLEMENTED!
      (ntoskrnl/mm/freelist.c:196) ARM3-DEBUG: Being called with 0 fffff 0 100000 3 0
       
      *** Assertion failed: Pfn1
      ***   Source File: ../ntoskrnl/mm/freelist.c, line 320
       
      Break repeatedly, break Once, Ignore, terminate Process or terminate Thread (boipt)? 
      kdb:> o
      Execute '.cxr F75E13E4' to dump context
      Entered debugger on embedded INT3 at 0x0008:0x8059D122.
      kdb:> bt
      Eip:
      <ntoskrnl.exe:19d122 (:0 (DbgUserBreakPoint))>
      Frames:
      <ntoskrnl.exe:fab17 (ntoskrnl/mm/freelist.c:320 (MiAllocatePagesForMdl))>
      <ntoskrnl.exe:ba1c4 (ntoskrnl/mm/ARM3/mdlsup.c:497 (MmAllocatePagesForMdl))>
      <igxpmp32.sys:325ef>
      <igxpmp32.sys:3153d>
      <igxpmp32.sys:2d759>
      <igxpmp32.sys:25a114>
      <igxpmp32.sys:3998>
      <VIDEOPRT.SYS:a4a2 (win32ss/drivers/videoprt/videoprt.c:438 (IntVideoPortFindAdapter))>
      <VIDEOPRT.SYS:45e6 (win32ss/drivers/videoprt/dispatch.c:921 (IntVideoPortPnPStartDevice))>
      <VIDEOPRT.SYS:4971 (win32ss/drivers/videoprt/dispatch.c:1047 (IntVideoPortDispatchFdoPnp))>
      <VIDEOPRT.SYS:4acd (win32ss/drivers/videoprt/dispatch.c:1116 (IntVideoPortDispatchPnp))>
      <ntoskrnl.exe:77545 (ntoskrnl/io/iomgr/irp.c:1286 (IofCallDriver))>
      <ntoskrnl.exe:84820 (ntoskrnl/io/pnpmgr/pnpirp.c:67 (IopSynchronousCall))>
      <ntoskrnl.exe:849b0 (ntoskrnl/io/pnpmgr/pnpirp.c:104 (PiIrpStartDevice))>
      <ntoskrnl.exe:80f65 (ntoskrnl/io/pnpmgr/devaction.c:2356 (PiDevNodeStateMachine))>
      <ntoskrnl.exe:816c9 (ntoskrnl/io/pnpmgr/devaction.c:2577 (PipDeviceActionWorker))>
      <ntoskrnl.exe:3fd88 (ntoskrnl/ex/work.c:158 (ExpWorkerThreadEntryPoint))>
      <ntoskrnl.exe:139642 (ntoskrnl/ps/thread.c:156 (PspSystemThreadStartup))>
      <ntoskrnl.exe:15b965 (ntoskrnl/ke/i386/thrdini.c:78 (KiThreadStartup))>
      <ntoskrnl.exe:139615 (ntoskrnl/ps/thread.c:63 (PspUserThreadStartup))>
      <ec835356>
      Couldn't access memory at 0x57E58959!
      

      After this failure, I follow an instruction that Zombiedeth and simonelombardo said me about the freelist.c, so I had an issue with the Secondary Display support:

      WARNING:  VideoPortCreateSecondaryDisplay at win32ss/drivers/videoprt/videoprt.c:1403 is UNIMPLEMENTED!
      

      That I applied again a patch that nulls that second screen variable, and make it to continue, and I had to workaround under the igxpmp32.sys the variable videoprtgetregistryinfo (hacking the intel driver).

      The driver starts with the Intel rotated screen, as every-single-intel-driver under ReactOS. And it's easy to make it crash.

      Note for every reader:
      This bug it's a kind of metabug or the biggest mess ever. Current driver investigation is making me to have headaches, so I will try to condense the process in one ticket (until some will be ready to fix graphical drivers as a concept). I will explain here all the hacks I need to make it at least boot.

      Related with: CORE-17594, CORE-13774, CORE-12701, CORE-13314, CORE-18026, CORE-17566, CORE-11421, CORE-13669, CORE-8319, CORE-15861, CORE-16006, CORE-16002

      Tags: Videoprt, Win32k, Intel drivers, etc.

      Proposed for CORE-17501

      Attachments

        1. IMG_20230408_000751_768.jpg
          1.06 MB
          julenuri
        2. SimoneOptiplexIntelHD.patch
          2 kB
          julenuri
        3. Unnamed.png
          40 kB
          julenuri

        Issue Links

          Activity

            People

              Unassigned Unassigned
              julenuri julenuri
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: