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

Implement the features missing for latest wined3d

    XMLWordPrintable

Details

    • Task
    • Resolution: Fixed
    • Major
    • 0.4.17
    • 3D Graphics
    • None

    Description

      Several d3dkmt APIs are missing in ReactOS:
      D3DKMTSetVidPnSourceOwner
      D3DKMTQueryVideoMemoryInfo
      D3DKMTOpenAdapterFromGdiDisplayName
      D3DKMTDestroyDevice
      D3DKMTCreateDevice
      D3DKMTCloseAdapter

      These APIs are an interesting case,
      In windows Vista/7 most of these APIs don't do anything unless a WDDM driver is active.
      In windows most of these are syscalls that just read into the special interface between DxgKrnl <-> Win32k. But in WINE these are implemented directly in win32u.

      So what will ReactOS do?
      I believe the sane approach that will provide the foundation to WDDM is to do what BasicRenderer.sys's task is in Windows 8+.

      We'll implement all of the KMT APIs BasicRenderer implements inside win32k itself, this will allow us to still use wine in an accelerated fashion even on XPDM drivers. This is very much what WINE does too, but more interestingly the outcome of this is almost exactly how windows 8+ acts.

      1) If the DxgKrnl interface is NULL, Fall back to basic renderer
      2) If the DxgKrnl Interface is valid Invoke the Driver associated with the d3dkmt handle.
      3) If the DxgKrnl Interface is NULL and BasicRenderer doesn't exist than we cannot start the OS. (This is impossible on ROS since the BasicRenderer is built into win32k.)

      This replicates the behaviors of windows 8 while retaining backwards compatibility with XPDM and allowing a non intrusive step forward with our WINE code.

      Attachments

        Activity

          People

            The_DarkFire The_DarkFire
            The_DarkFire The_DarkFire
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: