D3D9On12 is a mapping layer, which maps graphics commands from D3D9 to D3D12

Related tags

Utilities D3D9On12
Overview

D3D9On12

D3D9On12 is a mapping layer, which maps graphics commands from D3D9 to D3D12. D3D9On12 is not an implementation of the D3D9 API, but is instead an implementation of the D3D9 usermode DDI (device driver interface). That means it is not a binary named d3d9.dll, but is named d3d9on12.dll.

When an application creates a D3D9 device, they may choose for it to be a D3D9On12 device, rather than a native D3D9 device (see Direct3DCreate9On12 and Direct3DCreate9On12Ex). When this happens, d3d9on12.dll is loaded by the D3D9 runtime and initialized. When the application calls rendering commands, D3D9 will validate those commands, and then will convert those commands to the D3D9 DDI and send it to D3D9On12, just like any D3D9 driver. D3D9On12 will take these commands and convert them into D3D12 API calls, which are further validated by the D3D12 runtime, optionally including the D3D12 debug layer, which are then converted to the D3D12 DDI and sent to the D3D12 driver.

Note that D3D9On12 is an enlightened D3D9 driver, and there are several places where it receives additional information compared to a traditional D3D9 driver, either to enable it to provide API-level information to D3D12 rather than driver-level information (as is the case for shaders), or to enable interop scenarios. When a D3D9 device is created with D3D9On12, the device will expose an IDirect3DDevice9On12 interface which enables applications to submit work to both the D3D9 API and the D3D12 API with lightweight sharing and synchronization.

For more details about D3D9On12, see:

Make sure that you visit the DirectX Landing Page for more resources for DirectX developers.

How does it work?

The primary entrypoint to D3D9On12 is a custom version of the normal D3D9 driver OpenAdapter entrypoint, named OpenAdapter_Private, where D3D9 provides additional information to the mapping layer. In response to this, like a normal driver, D3D9On12 returns an adapter object, which exposes DDIs to create a device. The device is created like normal, but in addition to the normal DDI tables, D3D9on12 also exposes a set of DDIs defined by the D3D9ON12_PRIVATE_DDI_TABLE which can be retrieved by calling GetPrivateDDITable.

The device object internally uses an instance of the D3D12TranslationLayer immediate context to record commands. Similarly, most D3D9On12 objects are backed by an implementation from the D3D12TranslationLayer library. The code in this repository is largely an adaptor from the D3D9 DDI to the D3D12TranslationLayer library, where the real heavy lifting of converting to the D3D12 domain is done.

Building

In order to build D3D9On12, the WDK (Windows Driver Kit) must be installed, in order to provide d3d10umddi.h to D3D9On12, and in order to generate the D3D12TranslationLayer_WDK project, which hosts some code required to parse DXBC shaders and containers. The D3D12TranslationLayer and its subprojects, D3D12TranslationLayer_WDK and DXBCParser, will be fetched from GitHub when building with CMake if D3D12TranslationLayer_WDK isn't already included, such as by a parent CMakeLists.txt that has already entered that project. The DxbcSigner.dll will be pulled in automatically from NuGet.

If you had a local copy of the D3D12TranslationLayer project, your top level project would look something like this:

cmake_minimum_required(VERSION 3.14)
include(FetchContent)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(parent)

FetchContent_Declare(
    d3d12translationlayer
    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/D3D12TranslationLayer
)
FetchContent_MakeAvailable(d3d12translationlayer)

add_subdirectory(D3D9On12)

At the time of publishing, the D3D9On12 and D3D12TranslationLayer require insider versions of the SDK and WDK. Those can be found here.

D3D9On12 requires C++17, and only supports building with MSVC at the moment.

Usage

Note that in order to use your custom version of D3D9on12 you will also need to copy WinPixEventRuntime.dll (will automatically be placed in D3D9on12's build output) and dxbcsigner.dll along with it.

Why open source?

The D3D9On12 mapping layer is included as an operating system component of Windows 10. Over the years and Windows 10 releases, it has grown in functionality, to the point where it is a complete and relatively performant implementation of a D3D9 driver. We are choosing to release the source to this component for two primary reasons:

  1. To enable the community to contribute bugfixes and further performance improvements, which will improve the stability and performance of Windows 10. See CONTRIBUTING.
  2. To serve as an example of how to use the D3D12TranslationLayer library.

What can you do with this?

There are minor differences between binaries built out of this repository and the versions that are included in the OS. To that end, shipping applications should not attempt to override the OS version of D3D9On12 with versions that they have built. We will not guarantee that newer versions of Windows will continue to support older versions of D3D9On12, since it is an OS component which may be revised together with D3D9. However, developers are welcome to override the Windows version of D3D9On12 for local testing and experimentation.

Compatibility

When possible, we will attempt to maintain compatibility between D3D9 and D3D9On12. One should expect that the tip of D3D9On12's master branch should work nicely with the latest release of Windows 10. Support for configurations other than that are not guaranteed to work.

Data Collection

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.

Note however that no data collection is performed when using your private builds.

Comments
  • Text is not displaying in Empire Earth II

    Text is not displaying in Empire Earth II

    I'm developing an unofficial patch for Empire Earth II. I have recently received many messages from players who are unable to play the game, due that the text is not displaying in game. All these players have new laptops with Intel CPUs. Most of these players are refunding their laptops for this reason.

    After reading this page, I learnt that Intel is now using D3D9On12 in their drivers:

    We use a D3D9on12 mapping layer, which maps graphics commands from DX9 to DX12. We do extensive compatibility and performance testing, and partner closely with Microsoft* and ISV’s (Independent Software Vendors) to optimize this solution continuously. Intel has been shipping this solution since our 12th Gen Intel® Core™ processor launch in 2021, and we'll continue to invest heavily in this technology for both integrated and discrete graphics solutions.

    I managed to re-produce the issue on my computer using ForceD3D9On12 d3d9.dll. My unofficial patch already supports d3d8to9, so d3d9.dll could be placed in the game folder and was loaded successfully.

    Screenshots showing the issue:

    image

    image

    Steps to reproduce the problem:

    • Install the game.
    • Install unofficial patch.
    • * Edit file UnofficialVersionConfig.txt and add: UseWorkingDirectoryWorkaround=1.
    • Paste d3d9.dll from ForceD3D9On12 to the game folder.

    * This step is required, so the Launcher copies the game executable to to the main game folder (as EE3.exe), instead of starting the game process from a different location. This is needed because otherwise the game would load d3d9.dll from the SysWOW64 directory.

    As the patch developer, I'm usually trying to fix similar issues myself, using dozens of workarounds, assembly, etc. However this time it looks like the problem is in D3D9On12 itself, so maybe somebody could please check if this can be resolved? After all, the issue is quite serious since players who buy new laptops can't play the game.

    opened by HerMajestyDrMona 30
  • Doesn't seem to work

    Doesn't seem to work

    I tried it and this is the result:

    D3D9ON12_ARGS arg = { };
    arg.Enable9On12 = TRUE;
    pD3d9 = Direct3DCreate9On12(D3D_SDK_VERSION, &arg, 1);
    

    image

    dxvk works perfectly in comparison

    opened by bugproof 7
  • Add support for setting MaxAllocatedUploadHeapSpacePerCommandList via app shim or registry

    Add support for setting MaxAllocatedUploadHeapSpacePerCommandList via app shim or registry

    Add support for setting MaxAllocatedUploadHeapSpacePerCommandList via app shim or registry. Add support for setting MaxSRVHeapSize via app shim or registry. Also fix compiler warnings that show up on VS 2022.

    This change requires a corresponding change to translation layer.

    opened by bhouse-intel 3
  • Claim support for Dither

    Claim support for Dither

    Dithering only really made sense when rendering to reduced bit-depth formats (565, 5551, etc), but DX9 era hardware generally had 8 bit precision in pixel shaders anyway so it was usually a noop when outputting to an 8 bit per channel format. DXVK also chose to simply ignore dithering, so we should be fine to claim support but not actually do anything.

    opened by vdwtanner 2
  • Implement new present path

    Implement new present path

    Updating 9on12 present path to more closely mirror what happens in the version of 9on12 that ships with the OS. Among other things, this should allow fullscreen apps to work with this version of 9on12.

    We will need a few new DDIs in order to implement the new Present path. Unfortunately, the existing CreateDeviceArgs doesn't have a concept of versioning. This requires the addition of a new OpenAdapter2_Private DDI so that we can use a new version of the CreateDeviceArgs struct that contains versioning info.

    We also need a new way to handle fetching the privateDDITable as we are now adding DDIs out of sync with the runtime. Old runtimes will still call GetPrivateDDITable which will copy the original 27 DDIs, but newer runtimes will be able to call GetPrivateDDITableVersioned which allows the caller to pass the expected size of the private ddi table struct. Since we don't change the order of the DDIs between versions, this is a safe way to make sure that the runtime always gets the full ddi table that it expects without overwriting regions of memory owned by the runtime.

    opened by vdwtanner 1
  • Halo Custom Edition with Open Sauce crashes almost instantly

    Halo Custom Edition with Open Sauce crashes almost instantly

    I don't know if this is the right place to post this. I am using Windows 11 Home Edition 21H2 22000.1042 on my laptop. It has an iGPU with Intel Iris Xe and a dGPU with Nvidia Geforce RTX 3050 Ti. I have read that Intel Iris Xe has removed true D3D9 support in favor of this module, not sure if this is true on Nvidia's end.

    After installing the mod Open Sauce 4.0 onto a copy of Halo Custom Edition, I have found that when opening the game, it loads for a couple seconds and then silently crashes to the desktop. This occurs regardless of whether I have it set to render using the integrated graphics or the dedicated graphics. This crash does not occur if Open Sauce 4.0 is not installed. Nor does it occur if Open Sauce 4.0 is installed but I am using a graphics wrapper (either DGVoodoo2 or DXVK work). Since the crash affects both graphics cards, I'm wondering if this is the cause of the crash.

    opened by Danfun64 1
  • Get IDXGISwapchain for a given IDirect3DSwapChain9 instance.

    Get IDXGISwapchain for a given IDirect3DSwapChain9 instance.

    I would like to render directx9 content in a SwapChainPanel via D3D9On12, but I can't seem to figure out how to get access to the IDXGI_Swapchain. Is there any way to get the IDXGI_Swapchain for a given IDirect3DSwapChain9? If not, could you consider adding this as a feature.

    opened by knk190001 1
  • BlobContainer.h/dxbcutils.h missing

    BlobContainer.h/dxbcutils.h missing

    I have to verify if the D3D9on12 patch fixes my issue, then I tried to build D3D9on12 on VS 2019. However, there're some header files missing. Could you please help tell me where to find them? Thanks

    Severity Code Description Project File Line Suppression State Error (active) E1696 cannot open source file "BlobContainer.h" d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\include\DxbcBuilder.hpp 2 Error (active) E1696 cannot open source file "BlobContainer.h" d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 4 Error (active) E0020 identifier "DXBCFourCC" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\include\DxbcBuilder.hpp 56 Error (active) E0020 identifier "CDXBCParser" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\include\DxbcBuilder.hpp 60 Error (active) E0020 identifier "DXBCFourCC" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\include\DxbcBuilder.hpp 60 Error (active) E0020 identifier "DXBCBlobHeader" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\include\DxbcBuilder.hpp 77 Error (active) E0020 identifier "DXBCHeader" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 14 Error (active) E0020 identifier "DXBCFourCC" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 51 Error (active) E0020 identifier "DXBCBlobHeader" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 66 Error (active) E0020 identifier "DXBC_MAX_SIZE_IN_BYTES" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 73 Error (active) E0020 identifier "CDXBCParser" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 124 Error (active) E0020 identifier "DXBCFourCC" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 124 Error (active) E0020 identifier "DXBC_BLOB_NOT_FOUND" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 130 Error (active) E0020 identifier "DXBCHeader" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 167 Error (active) E0020 identifier "pHeader" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 167 Error (active) E0029 expected an expression d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 167 Error (active) E0065 expected a ';' d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 167 Error (active) E0020 identifier "DXBCBlobHeader" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 169 Error (active) E0020 identifier "pNextBlobHeader" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 169 Error (active) E0029 expected an expression d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 169 Error (active) E0029 expected an expression d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 179 Error (active) E0020 identifier "DXBC_FOURCC_NAME" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 187 Error (active) E0020 identifier "DXBC_MAJOR_VERSION" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 188 Error (active) E0020 identifier "DXBC_MINOR_VERSION" is undefined d3d12translationlayer_wdk.lib (_deps\d3d12translationlayer-build\src\d3d12translationlayer_wdk.lib) - windows-default C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 189 Error C1083 Cannot open include file: 'BlobContainer.h': No such file or directory C:\Users\celestil\D3DGFx\out\build\windows-default\D3DGFx C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\DxbcBuilder.cpp 4 Error C1083 Cannot open include file: 'dxbcutils.h': No such file or directory C:\Users\celestil\D3DGFx\out\build\windows-default\D3DGFx C:\Users\celestil\D3DGFx\D3D12TranslationLayer\src\ShaderParser.cpp 6 Error C1083 Cannot open include file: 'BlobContainer.h': No such file or directory C:\Users\celestil\D3DGFx\out\build\windows-default\D3DGFx C:\Users\celestil\D3DGFx\D3D9On12\include\pch.h 22

    opened by celestil 1
  • Conversion between D3D12 to DXVA Multiplier/StepSize semantics for Video Processing filters and Query caps

    Conversion between D3D12 to DXVA Multiplier/StepSize semantics for Video Processing filters and Query caps

    There's a semantic difference between how DXVA and D3D12 express the filter ranges and steps for video processing filters such as Contrast, Saturation, etc that was not addressed in 9on12. When enabling Video Processing Enhancement in Video Playback Settings, some video players are affected by this bug, rendering a black screen as processing the brightness/contrast when playing video. With this fix, the enhanced video plays correctly.

    opened by sivileri 1
  • Minor perf improvements + update for residency re-work

    Minor perf improvements + update for residency re-work

    Remove some unneeded CPU allocations from the PSO LRU cache by using splice instead of freeing and reallocating list nodes, and deal with the residency re-work from https://github.com/microsoft/D3D12TranslationLayer/pull/80.

    opened by jenatali 0
  • Fix how we determine if we are drawing pretransformed verts

    Fix how we determine if we are drawing pretransformed verts

    The correct way to determine if we are drawing pre transformed verts is by checking if the d3ddeclusage is positionT, not based off of which Draw API is being used.

    https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-semantics

    Fixes #57

    opened by vdwtanner 0
  • NULL_CLASS_PTR_READ_c0000005_d3d9on12.dll

    NULL_CLASS_PTR_READ_c0000005_d3d9on12.dll

    Hello,

    I've tried all known Intel Iris Xe drivers and they all get the same crash. I did a memory test with the app at https://memtest.org/ and it passed. When I disable the Intel Iris Xe device from the device manager, the problem is solved. The game usually crashes between 4 and 10 minutes.

    Dmp file: https://drive.google.com/file/d/1a431zmOc6HDgvfPXnaN1J_oDNTascK9J/view?usp=sharing

    I downloaded and recompiled the library to follow up on the problem. I saved the value of pResource->GetDesc()->Width from the InputAssembly::SetVertexBuffer method to the file until the game crashed.

    I tried this game on many computers with up-to-date hardware, none of them have this problem.

    Driver problem or d3d9on12 mapping layer?

    Intel Community Link : https://community.intel.com/t5/Graphics/i7-12700H-Intel-Iris-Xe-Game-Crash-on-d3d9on12-dll/td-p/1426476

    The last lines of the output (1)

    bufferSize:112 bufferSize:112 bufferSize:112 bufferSize:112 bufferSize:112 bufferSize:32768 bufferSize:112 bufferSize:112 bufferSize:32768 bufferSize:112 bufferSize:32768 bufferSize:112 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:8810597777358030847 ->when it crashed

    The last lines of the output (2)

    bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:32768 bufferSize:16809754405499322002 -> when it crashed

        HRESULT InputAssembly::SetVertexBuffer(Device& device, Resource* pResource, UINT vbSlot, UINT offset, UINT stride)
        {
            HRESULT hr = S_OK;
            if (pResource) {
                LOG_("bufferSize", std::to_string(pResource->GetDesc().Width ? pResource->GetDesc().Width : 0));
            }
    
            const UINT64 bufferSize = pResource ? pResource->GetDesc().Width : 0;
    
            InputBuffer& inputBuffer = m_inputStreams[vbSlot];
            Resource* pPrevResource = m_inputStreams[vbSlot].GetAppResource();
    

    System Information

      Time of this report: 11/10/2022, 17:51:30
             Machine name: ***
               Machine Id: {1867AEC7-407A-4918-9B2E-57E57CE1EC54}
         Operating System: Windows 11 Pro 64-bit (10.0, Build 22621) (22621.ni_release.220506-1250)
                 Language: Turkish (Regional Setting: Turkish)
      System Manufacturer: HUAWEI
             System Model: RLEF-XX
                     BIOS: 1.23 (type: UEFI)
                Processor: 12th Gen Intel(R) Core(TM) i7-12700H (20 CPUs), ~2.3GHz
                   Memory: 16384MB RAM
      Available OS Memory: 16110MB RAM
                Page File: 13580MB used, 6626MB available
              Windows Dir: C:\Windows
          DirectX Version: DirectX 12
      DX Setup Parameters: Not found
         User DPI Setting: 96 DPI (100 percent)
       System DPI Setting: 120 DPI (125 percent)
          DWM DPI Scaling: UnKnown
                 Miracast: Available, with HDCP
    

    Microsoft Graphics Hybrid: Not Supported DirectX Database Version: 1.4.3 DxDiag Version: 10.00.22621.0001 64bit Unicode

    opened by erknkaya 5
  • WPF 3D content not working on Intel Iris XE

    WPF 3D content not working on Intel Iris XE

    Hey,

    from all informations I have now I think this is the right place to discuss this problem.

    The problem is that WPF 3D content will not work on intel graphics without D3D9 support like the iris XE. The first thread I opened was this one: https://community.intel.com/t5/Graphics/Graphics-failure-with-WPF-3D-content-and-Iris-XE/td-p/1415196 It describes the problem in detail.

    As Intel itself could not reproduce this issue I opened another one at the WPF repo: https://github.com/dotnet/wpf/issues/7076

    But now it turned out that Intel can also reproduce this issue: https://community.intel.com/t5/Graphics/3D-rendering-issue-on-12th-gen-Intel-Core-i3/m-p/1407118/highlight/true#M109118

    @IanDunn-Intel @vdwtanner can you please look into this. Looks like more people are getting this problem here.

    opened by lukaslober 12
  • 0xC0000005 Crashed in 10.0.22000.652 build

    0xC0000005 Crashed in 10.0.22000.652 build

    A crash happened in d3d9on12.dll 10.0.22000.652 when my app call av_hwframe_transfer_data(in ffmpeg), while it worked fine in d3d9on12.dll 10.0.22000.593 and before build. Here is the dump file: https://1drv.ms/u/s!AqL91iUT-5JUgSTtlMoP4Sbybo0U?e=zE6y0P

    Unhandled exception at 0x00007FFFC8E4D9DF (d3d9on12.dll) in ReadyFor.exe.19472.dmp: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

    `

    d3d9on12.dll!00007fffc8e4d9df() d3d9on12.dll!00007fffc8e4d025() d3d9on12.dll!00007fffc8e41a36() d3d9on12.dll!00007fffc8e41b7a() d3d9on12.dll!00007fffc8e413a9() d3d9on12.dll!00007fffc8e0f837() d3d9on12.dll!00007fffc8e0f44c() d3d9.dll!00007fffc9106cbc() d3d9.dll!00007fffc90130d7() d3d9.dll!00007fffc902e2ab() d3d9.dll!00007fffc90a382b() avutil-57.dll!00007fffb6d4cfd8() avutil-57.dll!00007fffb6d4d184() avutil-57.dll!00007fffb6d48163() avutil-57.dll!00007fffb6d481e7() `

    opened by bobohuang1985 0
  • pls help crashed on intel uhd 770,windows 10, probably memory leak

    pls help crashed on intel uhd 770,windows 10, probably memory leak

    Our game player reported one crash on intel uhd 770, windows10, our game is based d3d9 , Game engine error log has printed "ENGINE_INIT:RenderAPI Error:Context::DrawIndexed :hr = 80004005, primitive=0, base index=0, vertex count=20, start index=0, primitive count=10", and found stack crash on d3d9on12.dll, After profile the client, I find it probably exsist memory leak in d3d9on12, I also try use d3d dynamic vertex buffer and index buf with discard flag to draw dynamic vertex, still found memory grow in each frame lock buffer. wpa1 lockleak ,

    opened by luyt86 0
  • Is there a reason D3DFMT_A32B32G32R32F is marked unblendable?

    Is there a reason D3DFMT_A32B32G32R32F is marked unblendable?

    ref: https://github.com/microsoft/D3D9On12/blob/5af944baee8ba540bd6bbcc07efa68066adb6cab/src/9on12Adapter.cpp#L435

    From what I can tell, R32G32B32A32_FLOAT must be blendable since D3D11.0, so I don't think there's any technical limitation demanding this: https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/format-support-for-direct3d-11-0-feature-level-hardware#dxgi_format_r32g32b32a32_floatfcs-2

    opened by magcius 1
  • fatal error LNK1107: invalid or corrupt file: cannot read at 0xDD2

    fatal error LNK1107: invalid or corrupt file: cannot read at 0xDD2

    Hi, I got another link error. Could you please shed a light on this? Thanks!

    C:\Users\celestil\D3DGFx\out\build\windows-default\packages\WinPixEventRuntime.1.0.190604001\build\WinPixEventRuntime.targets : fatal error LNK1107: invalid or corrupt file: cannot read at 0xDD2 ninja: build stopped: subcommand failed.

    opened by celestil 1
Owner
Microsoft
Open source projects and samples from Microsoft
Microsoft
The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.

libxo libxo - A Library for Generating Text, XML, JSON, and HTML Output The libxo library allows an application to generate text, XML, JSON, and HTML

Juniper Networks 253 Dec 10, 2022
Stripped down version of BIGTREETECH-TouchScreenFirmware which only supports ST7920 emulation (Marlin Mode)

Stripped down version of BIGTREETECH-TouchScreenFirmware which only supports ST7920 emulation (Marlin Mode). This project only uses peripheral drivers supplied by the screen manufacturer and uses it's own library to parse the ST7920 commands.

null 112 Dec 30, 2022
A Cobalt Strike Beacon Object File (BOF) project which uses direct system calls to enumerate processes for specific loaded modules or process handles.

FindObjects-BOF A Cobalt Strike Beacon Object File (BOF) project which uses direct system calls to enumerate processes for specific modules or process

Outflank B.V. 247 Dec 28, 2022
A Beacon Object File (BOF) for Cobalt Strike which uses direct system calls to enable WDigest credential caching.

WdToggle A Proof of Concept Cobalt Strike Beacon Object File which uses direct system calls to enable WDigest credential caching and circumvent Creden

Outflank B.V. 205 Dec 3, 2022
A small proxy DLL which enables dev. console in Mass Effect 1, 2 and 3 (Legendary Edition).

LEBinkProxy A small proxy DLL which enables dev. console in Mass Effect 1, 2 and 3 (Legendary Edition). Usage In your game binary directory (Game\ME?\

null 10 Jan 6, 2022
A LKM rootkit targeting 4.x and 5.x kernel versions which opens a backdoor that can be used to spawn a reverse shell to a remote host and more.

Umbra Umbra (/ˈʌmbrə/) is an experimental LKM rootkit for kernels 4.x and 5.x (up to 5.7) which opens a network backdoor that spawns reverse shells to

Marcos S. Bajo 93 Dec 10, 2022
A interpreter that runs the script which is programmed in the language of FF0 script (or you can call it as Warfarin)

ff0-script A interpreter that runs the script which is programmed in the language of FF0 script (or you can call it as Warfarin) You can do it, unders

null 24 Apr 27, 2022
Whitee is a tiny compiler written in C++17, which translates SysY language into ARM-v7a assembly.

Whitee is a tiny compiler written in C++17, which translates SysY language into ARM-v7a assembly. Table of Contents Background Install Usage Ar

null 14 Dec 11, 2022
A simple YAML parser which produces a Node Tree Object representation of YAML Documents

A simple YAML parser which produces a Node Tree Object representation of YAML Documents and includes a find method to locate individual Nodes within the parsed Node Tree.

Timothy Rule 2 Sep 18, 2022
CppDyn is a library which aims to simplify use of polymorphism in C++20

Cpp Dyn Cpp-Dyn tries to improve C++ runtime polymorphism. Indeed, C++ runtime polymorphism, originally, uses inheritance and virtual methods. Sean Pa

Antoine MORRIER 14 Jun 7, 2022
This is a Header-only c++ string implentation which specializes in dealing with small strings. 🧵

string-impl This is a Header-only c++ string implentation which specializes in dealing with small strings. ?? Usage ⌨ Instantiation A string can be in

null 1 Oct 26, 2022
Thor is a DoS(slowloris) tool which can be used against a target.

Thor is a DoS(slowloris) tool which can be used against a target. It does this by continuously sending partial HTTP requests, none of which are completed.

AnonabdulJ 1 Nov 6, 2021
Organic Maps is a better fork of MAPS.ME, an Android & iOS offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MAPS.ME founders.

?? Organic Maps is a better fork of MAPS.ME, an Android & iOS offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MAPS.ME founders. No ads, no tracking, no data collection, no crapware.

Organic Maps 4.4k Jan 2, 2023
A d3d9 and d3d10 to d3d11 translation layer.

DXUP A D3D9 and D3D10 -> D3D11 Translation Layer Get latest build here or tagged builds here. What's the point? The main reason is for DXVK, a D3D11->

Joshie 245 Dec 18, 2022
A fork of Microsoft's D3D12 Raytracing Fallback Layer

D3D12 Raytracing Fallback Layer The D3D12 Raytracing Fallback Layer is a library that emulates the DirectX Raytracing (DXR) API on devices without nat

Phil Guo 9 Sep 13, 2022
🗺️ OMAPS.APP — Offline OpenStreetMap maps for iOS and Android. A community-driven fork of MAPS.ME.

OMaps is an open source cross-platform offline maps application, built on top of crowd-sourced OpenStreetMap data. It was publicly released for iOS and Android.

OMaps 4.4k Jan 7, 2023
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

Low Level Graphics Library (LLGL) Documentation NOTE: This repository receives bug fixes only, but no major updates. Pull requests may still be accept

Lukas Hermanns 1.5k Jan 8, 2023
SSL_SLAM2: Lightweight 3-D Localization and Mapping for Solid-State LiDAR (mapping and localization separated) ICRA 2021

SSL_SLAM2 Lightweight 3-D Localization and Mapping for Solid-State LiDAR (Intel Realsense L515 as an example) This repo is an extension work of SSL_SL

Wang Han 王晗 337 Dec 27, 2022
GnuTLS implements the TLS/SSL (Transport Layer Security aka Secure Sockets Layer) protocol

GnuTLS implements the TLS/SSL (Transport Layer Security aka Secure Sockets Layer) protocol

Jonathan Bastien-Filiatrault 3 Jun 3, 2021
An implementation of physically based shading & image based lighting in D3D11, D3D12, Vulkan, and OpenGL 4.

Physically Based Rendering (c) 2017 - 2018 Michał Siejak (@Nadrin) An implementation of physically based shading model & image based lighting in vario

Michał Siejak 1.1k Jan 4, 2023