wpf icon indicating copy to clipboard operation
wpf copied to clipboard

High memory consumption or memory leak on Intel integrated graphics

Open EdiWang opened this issue 2 years ago • 42 comments

Description

WPF application running on some Intel integrated graphics card is taking a lot more memory than it should. Even a pure empty WPF app takes 165.2 MB on startup.

3aedc63e2047a93783dd15d5ac35848

On other machine without Intel graphics, or disabling intel graphics card, or use software rendering, the memory consumption is normal.

1ea5fdd519f495d74ada897df20fedb

There are two threads on Intel community site describing the same issue. But I am not sure if this is a WPF issue or Intel issue.

https://community.intel.com/t5/Graphics/Net-WPF-Application-high-memory-consumption/td-p/1434020 https://community.intel.com/t5/Graphics/UHD710-High-memory-usage-and-memory-leak-issues-with-WPF/m-p/1471504

Reproduction Steps

  • Prepare a computer with i9-13900H CPU with Iris XE graphics (Other intel graphic may also have the issue)
    • Install latest RTM driver 31.0.101.4255
    • (Or) install latest beta driver 31.0.101.4257
    • (Or) install old driver 31.0.101.4032 / 31.0.101.4091
  • Create an empty WPF application with VS2022, .NET 6.0 or 7.0
  • Publish the application using Release build
  • Run the application
  • Observe memory usage in task manager

Expected behavior

Memory usage is around 10-30 MB

Actual behavior

Memory usage is around 150 MB

Regression?

No response

Known Workarounds

Set the WPF app to use software rendering.

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
    }
}

Impact

Users with some type of Intel graphics will have much more memory usage and potentially slow down their system.

Configuration

  • .NET 6.0 / 7.0
  • Windows 11 Pro 22621.1485 x64

Other information

This issue does not happen to

  • i7-1185G7 with Intel Iris Xe Graphics (e.g. Surface Pro 8)
  • i7-1065G7 with Intel lris Plus Graphics (e.g. Surface Laptop 3, Driver version 27.20.100.9621)
  • i7-10700T with Intel UHD 630 Graphics (Driver version 31.0.101.2114)
  • i7-8665U with Intel UHD 620 Graphics (Driver version 30.0.101.1404)

Attaching the WPF app used for testing this

WpfApp1.zip

Memory consumption also has something to do with monitors:

  • Using laptop screen only or just one external monitor: ~95MB (which is still considered to be abnormal)
  • Using two external monitors: ~160MB
  • Using laptop screen + two external monitors: ~245MB

It doesn't matter which screen the App is on, the more screens, the more memory usage.

No response

EdiWang avatar Apr 11 '23 02:04 EdiWang

Looks good on my machine....

1b684de70856fac3e6e36d05342480c

adbff5c72f64d9bb4f311c76babb400

Anduin2017 avatar Apr 11 '23 06:04 Anduin2017

@Anduin2017 You are using NVIDIA GPU, so you don't have this issue. It only happens to a few Intel CPU with integrated GPU.

EdiWang avatar Apr 11 '23 12:04 EdiWang

I am also confused about this issue. It is difficult to understand why a simple Net6.0 WPF application would result in such high memory consumption.

Here is some additional information. I hope this issue can be resolved. WPF Task Manager

Dxdiag Info

Credhat avatar Apr 20 '23 14:04 Credhat

We have the same issue on a few recent Dell Laptops with 12th Gen Intel CPUs. In our case (32bit application) it leads to OutOfMemory and other exceptions in strange places.

phreishauer avatar May 31 '23 12:05 phreishauer

i can confirm this issue happens with my 12th Gen Intel CPU 12500 with integrated GPU 770, i created an empty wpf app, can confirm it consumes 100mb more memory in task manager. Snipaste_2023-07-18_14-01-56

qkevin avatar Jul 18 '23 06:07 qkevin

We are also encountering this issue. It's not only limited to what you described. In our case a static Image source is breaking the application completely in addition to exploding memory usage. The error we sometimes are able to catch is System.Runtime.InteropServices.COMException: 'UCEERR_RENDERTHREADFAILURE (Exception from HRESULT: 0x88980406)' which could suggest a driver issue. On a machine with 31.0.101.3251 Intel driver the implementation does not show this behaviour and works without issues.

allopatin avatar Jul 24 '23 12:07 allopatin

The problem is happening to me too

image

image

image

image

eduardoghi avatar Sep 28 '23 11:09 eduardoghi

We have escalated this issue through our hardware distributor to Intel and Microsoft. Sadly, it looks like none of them are ready do acknowledge the issue and instead try to blame the other party for it and hope to wait it out.

As it is only a problem on Intel GPUs with the Intel drivers enabled, i would suggest to contact Intel support if you are affected. Responding to the existing forum threads does not work as threads get ignored after a few weeks. Use a new thread or other channels and reference this issue. Maybe things start to move if enough report it.

Xulunix avatar Sep 29 '23 09:09 Xulunix

We are currently following with the DirectX team internally for this bug. It looks like there is an issue with D3D9On12 abstraction which is causing the spike in memory usage.

We will update you as soon as we know more.

pchaurasia14 avatar Sep 29 '23 09:09 pchaurasia14

The problems are so obviously! - (and after 2 hours of research you can see that the problem comes at the time when microsoft changes the concept to the new wrapper D3D9On12). I can't understand why microsoft or/and intel ignores this bug. Many user have this problem since over one year !

DanielF95 avatar Oct 18 '23 09:10 DanielF95

We are currently following with the DirectX team internally for this bug. It looks like there is an issue with D3D9On12 abstraction which is causing the spike in memory usage.

We will update you as soon as we know more.

Do you have news from this issue? We are currently struggeling with this problem and it is very urgent, that we get a solution! We will appreciate every kind of help.

shennig avatar Oct 19 '23 11:10 shennig

Memory consumption of a Fullscreen WPF application on a 4K UHD Display + Intel GPU is insane. Using Software rendering fixes the issues, but we would prefer a better solution.

Our telemetrics currently shows a lot of OutOfMemory and RenderThreadFailure Exceptions and the majority of our target devices are using these gpus. Hope this will be fixed soon.

PsychoDad9999 avatar Oct 19 '23 14:10 PsychoDad9999

Same issue here.

Hardware:

  • Intel Core i7-12800H
  • Intel Iris Xe Graphics G7 96EUs

Software:

  • Windows 10 Pro 22H2
  • VS2022 .net6 or .net7 WPF application
  • Driver Intel UHD Graphics 31.0.101.4255

The workaround solution mentioned to use software rendering works indeed, but is not preferred.

Onnotjee avatar Nov 02 '23 07:11 Onnotjee

We have the same problem Out of memory issues with our WPF based software. At both x32 and x64 builds, .NET 4.8.

Device specs: image

image

Test WpfApp consumes abnormal 345 MB
image

sm99sensors avatar Nov 15 '23 07:11 sm99sensors

Same thing on UHD630. It's a driver issue. Anything that uses GPU will leak memory no matter what(Tried with Qt and glfw). We have been having problems with Intel igpu's since 2021 and seems like Intel just doesn't care. What a trash company

CrazyWinner avatar Dec 01 '23 12:12 CrazyWinner

I see the same happening on a Dell All-in-One with the Intel Iris Xe Graphics hardware.

Operating System: Microsoft Windows 11 Home 10.0.22621
IGCC Version: 1.100.5237.0
Language: en-US
Physical Memory: 63.7 GB 
Current Resolution: 1920x1080

Processor: 12th Gen Intel(R) Core(TM) i7-1255U
Processor Speed: 1700 MHz
GFX Driver Name: Intel® Iris® Xe Graphics
Shader Version: 5.1
OpenCL* Version: 3.0
* Microsoft DirectX* *
Runtime Version: 12
Hardware-Supported Version: 12
Vendor ID: 8086
Device ID: 46A8
Device Revision: 0C
GFX Driver Version: 31.0.101.4502
Dedicated RAM: 128 MB
Shared RAM: 32 GB
Max Supported Displays: 4
GFX Vulcan: 1.3.250
GFX GOP: 21.0.1046

The project is a new WPF .NET 6 with no modifications. image

and with

RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;

image

Tracy-P avatar Dec 02 '23 05:12 Tracy-P

Reference https://github.com/microsoft/D3D9On12/issues/72

lindexi avatar Dec 15 '23 03:12 lindexi

The version of Intel® Graphics Driver is 31.0.101.5534 now. Could you retest this issues? @EdiWang

lindexi avatar Jun 01 '24 03:06 lindexi

@lindexi I tested the latest driver, 31.0.101.5534 with the same hardware. This issue remains.

EdiWang avatar Jun 02 '24 06:06 EdiWang

I can confirm that the issue remains on 31.0.101.5534 An empty unmodified WPF application still uses ~100Mb memory. An i noticed that window size affects consumed memory

Xulunix avatar Jun 03 '24 09:06 Xulunix

This could just be counting the GPU memory into memory usage.

lindexi avatar Jun 04 '24 00:06 lindexi

Sorry, I clicked the wrong button.

lindexi avatar Jun 04 '24 01:06 lindexi

In the following environment, an empty WPF (.NET 8) application consumes approximately 650MB:

OS: Windows 11 Pro 23H2 CPU: Core Ultra 7 155H GPU: Intel Arc Graphics Memory: 32GB Display: 3840x2400 Intel Driver Version: Intel Arc Graphics 31.0.101.5007 Executing with RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly; reduces the consumption to about 41MB.

zerodev1200 avatar Jun 17 '24 13:06 zerodev1200

same issues on utra5 laptop using latest intel graphic driver.

LiguangZhang avatar Jul 25 '24 02:07 LiguangZhang

@LiguangZhang What is your intel graphic driver version? You can find the version of intel graphic driver in TaskManager.

任务管理器里面的 性能->GPU 里面可以看到 驱动程序版本

lindexi avatar Jul 25 '24 03:07 lindexi

same issue, Intel(R) Iris(R) Xe Graphics version: 31.0.101.4146

ali50m avatar Jul 25 '24 03:07 ali50m

Based on my analysis, this issue arises when using D3D9On12, as the memory that should be counted or stored in the GPU memory is instead accounted for in the WPF application. As indicated by the following stack traces, when wpfgfx_cor3.dll!CD3DDeviceManager::CreateNewDevice creates a device, the resources created are requested in the current WPF application by igdgmm64.dll. Since I am unable to fetch symbols from https://software.intel.com/sites/downloads/symbols, I am uncertain about which functions igdgmm64.dll has invoked.

Most1

igdgmm64.dll!0x7fff6653a554()
ntdll.dll!QueryRegistryValue() - line 0
igdgmm64.dll!0x7fff665511e0()
igdgmm64.dll!0x7fff6654f491()
igdgmm64.dll!0x7fff66535610()
igdgmm64.dll!0x7fff6653b768()
igdgmm64.dll!0x7fff66539fce()
igdgmm64.dll!0x7fff6653d502()
igdgmm64.dll!0x7fff66536d99()
igdgmm64.dll!0x7fff665399e6()
igd12um64xel.dll!0x7fff15ac3ddb()
igd12um64xel.dll!0x7fff15ac3c94()
igd12um64xel.dll!0x7fff15d0577d()
igd12um64xel.dll!0x7fff15d0b394()
igd12um64xel.dll!0x7fff15d610fe()
igd12um64xel.dll!0x7fff15b1c896()
D3D12Core.dll!CDevice::VersionedCreateHeapAndResource(struct D3D12DDIARG_CREATEHEAP_0001 const *,struct D3D12DDI_HHEAP,struct D3D10DDI_HRTRESOURCE,struct D3D12DDIARG_CREATERESOURCE_0088 const *,struct D3D12DDI_CLEAR_VALUES const *,struct D3D12DDI_HPROTECTEDRESOURCESESSION_0030,struct D3D10DDI_HRESOURCE)() - line 0
D3D12Core.dll!CResource::FinalConstruct(struct SD3D12LayeredResourceCreationArgs const &)() - line 0
D3D12Core.dll!CLayeredObject<class CResource>::CreateInstance(struct SD3D12LayeredResourceCreationArgs const &,void *,void *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CDevice::CreateLayeredChild(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredUseCounted *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CBridgeImpl<struct ID3D12LayeredDevice,struct ID3D12LayeredDevice,class CLayeredObject<class NDXGI::CDevice> >::CreateLayeredChild(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredUseCounted *,struct _GUID const &,void * *)() - line 0
D3D12.dll!NOutermost::CDevice::CreateLayeredChild() - line 0
D3D12Core.dll!CHeap::FinalConstruct(struct SD3D12LayeredHeapCreationArgs const &)() - line 0
D3D12Core.dll!CLayeredObject<class CHeap>::CreateInstance(struct SD3D12LayeredHeapCreationArgs const &,void *,void *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CDevice::CreateLayeredChild(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredUseCounted *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CBridgeImpl<struct ID3D12LayeredDevice,struct ID3D12LayeredDevice,class CLayeredObject<class NDXGI::CDevice> >::CreateLayeredChild(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredUseCounted *,struct _GUID const &,void * *)() - line 0
D3D12.dll!NOutermost::CDevice::CreateLayeredChild() - line 0
D3D12Core.dll!public: long __cdecl CDevice::CreateTestResourceAndHeap_Worker<enum D3D12_RESOURCE_STATES>(struct D3D12_HEAP_DESC const *,enum D3D12TEST_HEAP_FLAGS,struct ID3D12Heap *,struct ID3D12Resource *,unsigned __int64,void *,struct D3D12_RESOURCE_DESC1 const *,struct D3D11_RESOURCE_FLAGS const *,enum D3D12TEST_RESOURCE_FLAGS,enum D3D12_RESOURCE_STATES,struct D3D12_CLEAR_VALUE const *,struct ID3D12ProtectedResourceSession *,struct ID3D12LifetimeTracker *,struct ID3D12SwapChainAssistant *,unsigned int,enum DXGI_FORMAT *,struct _GUID const &,void * *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CDevice::CreateCommittedResource_Worker<enum D3D12_RESOURCE_STATES>(struct D3D12_HEAP_PROPERTIES const *,enum D3D12_HEAP_FLAGS,struct D3D12_RESOURCE_DESC1 const *,enum D3D12_RESOURCE_STATES,struct D3D12_CLEAR_VALUE const *,struct ID3D12ProtectedResourceSession *,unsigned int,enum DXGI_FORMAT *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CDevice::CreateCommittedResource(struct D3D12_HEAP_PROPERTIES const *,enum D3D12_HEAP_FLAGS,struct D3D12_RESOURCE_DESC const *,enum D3D12_RESOURCE_STATES,struct D3D12_CLEAR_VALUE const *,struct _GUID const &,void * *)() - line 0
d3d9on12.dll!<lambda_dd79be98c10bc93fda9e998d88fd59bc>::operator()() - line 0
d3d9on12.dll!D3D12TranslationLayer::ImmediateContext::TryAllocateResourceWithFallback<<lambda_dd79be98c10bc93fda9e998d88fd59bc> >() - line 0
d3d9on12.dll!D3D12TranslationLayer::Resource::CreateUnderlying(enum D3D12TranslationLayer::ResourceAllocationContext)() - line 0
d3d9on12.dll!D3D12TranslationLayer::Resource::Create(enum D3D12TranslationLayer::ResourceAllocationContext)() - line 0
d3d9on12.dll!D3D12TranslationLayer::Resource::CreateResource(class D3D12TranslationLayer::ImmediateContext *,struct D3D12TranslationLayer::ResourceCreationArgs &,enum D3D12TranslationLayer::ResourceAllocationContext)() - line 0
d3d9on12.dll!D3D9on12::Resource::CreateUnderlyingResource(struct D3D12TranslationLayer::ResourceCreationArgs &)() - line 0
d3d9on12.dll!D3D9on12::ResourceInternal::CreateUnderlyingResource(struct D3D12TranslationLayer::ResourceCreationArgs &,struct _D3DDDIARG_CREATERESOURCE2 &)() - line 0
d3d9on12.dll!D3D9on12::Resource::InitInternal(struct _D3DDDIARG_CREATERESOURCE2 &,bool,struct D3D12TranslationLayer::unique_comptr<class D3D12TranslationLayer::Resource,struct D3D12TranslationLayer::unique_comptr_deleter>,bool)() - line 0
d3d9on12.dll!D3D9on12::Resource::Init(struct _D3DDDIARG_CREATERESOURCE2 &)() - line 0
d3d9on12.dll!D3D9on12::DeviceInternal::CreateResource2(void *,struct _D3DDDIARG_CREATERESOURCE2 *)() - line 0
d3d9.dll!CreateSurfaceLH() - line 0
d3d9.dll!DdCreateSurfaceLH() - line 0
d3d9.dll!DdCreateSurfaceFilter() - line 0
d3d9.dll!CDriverSurface::CDriverSurface() - line 0
d3d9.dll!CSwapChain::CreateWindowed() - line 0
d3d9.dll!CSwapChain::Reset() - line 0
d3d9.dll!CSwapChain::Init(struct _D3DPRESENT_PARAMETERS_ *,struct D3DDISPLAYMODEEX const *,long *,int,int)() - line 0
d3d9.dll!CBaseDevice::Init() - line 0
d3d9.dll!CEnum::CreateDeviceImpl() - line 0
d3d9.dll!CEnum::CreateDeviceEx() - line 0
wpfgfx_cor3.dll!CD3DDeviceManager::CreateNewDevice() - line 1606
wpfgfx_cor3.dll!CD3DDeviceManager::GetD3DDeviceAndPresentParams() - line 1050
wpfgfx_cor3.dll!CHwDisplayRenderTarget::Create() - line 69
wpfgfx_cor3.dll!CDesktopRenderTarget::Init() - line 338
wpfgfx_cor3.dll!CDesktopRenderTarget::Create() - line 124
wpfgfx_cor3.dll!CMILFactory::CreateDesktopRenderTarget() - line 684
wpfgfx_cor3.dll!CSlaveHWndRenderTarget::EnsureRenderTargetInternal() - line 884
wpfgfx_cor3.dll!CSlaveHWndRenderTarget::Render() - line 88
wpfgfx_cor3.dll!CRenderTargetManager::Render() - line 339
wpfgfx_cor3.dll!CComposition::Render() - line 859
wpfgfx_cor3.dll!CComposition::ProcessComposition() - line 712
wpfgfx_cor3.dll!CComposition::Compose() - line 805
wpfgfx_cor3.dll!CPartitionThread::RenderPartition() - line 134
wpfgfx_cor3.dll!CPartitionThread::Run() - line 246
wpfgfx_cor3.dll!CPartitionThread::ThreadMain() - line 51
kernel32.dll!BaseThreadInitThunk() - line 0

Most2

igdgmm64.dll!0x7fff6654f491()
ntdll.dll!QueryRegistryValue() - line 0
igdgmm64.dll!0x7fff665511e0()
igdgmm64.dll!0x7fff66535610()
igdgmm64.dll!0x7fff6653b768()
igdgmm64.dll!0x7fff6653a554()
igdgmm64.dll!0x7fff66539fce()
igdgmm64.dll!0x7fff6653d600()
igdgmm64.dll!0x7fff66536d99()
igdgmm64.dll!0x7fff665399e6()
igd12um64xel.dll!0x7fff15ac3ddb()
igd12um64xel.dll!0x7fff15ac3c94()
igd12um64xel.dll!0x7fff15d0577d()
igd12um64xel.dll!0x7fff15d0b394()
igd12um64xel.dll!0x7fff15d610fe()
igd12um64xel.dll!0x7fff15b1c896()
D3D12Core.dll!CDevice::VersionedCreateHeapAndResource(struct D3D12DDIARG_CREATEHEAP_0001 const *,struct D3D12DDI_HHEAP,struct D3D10DDI_HRTRESOURCE,struct D3D12DDIARG_CREATERESOURCE_0088 const *,struct D3D12DDI_CLEAR_VALUES const *,struct D3D12DDI_HPROTECTEDRESOURCESESSION_0030,struct D3D10DDI_HRESOURCE)() - line 0
D3D12Core.dll!CResource::FinalConstruct(struct SD3D12LayeredResourceCreationArgs const &)() - line 0
D3D12Core.dll!CLayeredObject<class CResource>::CreateInstance(struct SD3D12LayeredResourceCreationArgs const &,void *,void *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CDevice::CreateLayeredChild(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredUseCounted *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CBridgeImpl<struct ID3D12LayeredDevice,struct ID3D12LayeredDevice,class CLayeredObject<class NDXGI::CDevice> >::CreateLayeredChild(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredUseCounted *,struct _GUID const &,void * *)() - line 0
D3D12.dll!NOutermost::CDevice::CreateLayeredChild() - line 0
D3D12Core.dll!CHeap::FinalConstruct(struct SD3D12LayeredHeapCreationArgs const &)() - line 0
D3D12Core.dll!CLayeredObject<class CHeap>::CreateInstance(struct SD3D12LayeredHeapCreationArgs const &,void *,void *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CDevice::CreateLayeredChild(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredUseCounted *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CBridgeImpl<struct ID3D12LayeredDevice,struct ID3D12LayeredDevice,class CLayeredObject<class NDXGI::CDevice> >::CreateLayeredChild(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredUseCounted *,struct _GUID const &,void * *)() - line 0
D3D12.dll!NOutermost::CDevice::CreateLayeredChild() - line 0
D3D12Core.dll!public: long __cdecl CDevice::CreateTestResourceAndHeap_Worker<enum D3D12_RESOURCE_STATES>(struct D3D12_HEAP_DESC const *,enum D3D12TEST_HEAP_FLAGS,struct ID3D12Heap *,struct ID3D12Resource *,unsigned __int64,void *,struct D3D12_RESOURCE_DESC1 const *,struct D3D11_RESOURCE_FLAGS const *,enum D3D12TEST_RESOURCE_FLAGS,enum D3D12_RESOURCE_STATES,struct D3D12_CLEAR_VALUE const *,struct ID3D12ProtectedResourceSession *,struct ID3D12LifetimeTracker *,struct ID3D12SwapChainAssistant *,unsigned int,enum DXGI_FORMAT *,struct _GUID const &,void * *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CDevice::CreateCommittedResource_Worker<enum D3D12_RESOURCE_STATES>(struct D3D12_HEAP_PROPERTIES const *,enum D3D12_HEAP_FLAGS,struct D3D12_RESOURCE_DESC1 const *,enum D3D12_RESOURCE_STATES,struct D3D12_CLEAR_VALUE const *,struct ID3D12ProtectedResourceSession *,unsigned int,enum DXGI_FORMAT *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!CDevice::CreateCommittedResource(struct D3D12_HEAP_PROPERTIES const *,enum D3D12_HEAP_FLAGS,struct D3D12_RESOURCE_DESC const *,enum D3D12_RESOURCE_STATES,struct D3D12_CLEAR_VALUE const *,struct _GUID const &,void * *)() - line 0
d3d9on12.dll!<lambda_dd79be98c10bc93fda9e998d88fd59bc>::operator()() - line 0
d3d9on12.dll!D3D12TranslationLayer::ImmediateContext::TryAllocateResourceWithFallback<<lambda_dd79be98c10bc93fda9e998d88fd59bc> >() - line 0
d3d9on12.dll!D3D12TranslationLayer::Resource::CreateUnderlying(enum D3D12TranslationLayer::ResourceAllocationContext)() - line 0
d3d9on12.dll!D3D12TranslationLayer::Resource::Create(enum D3D12TranslationLayer::ResourceAllocationContext)() - line 0
d3d9on12.dll!D3D12TranslationLayer::Resource::CreateResource(class D3D12TranslationLayer::ImmediateContext *,struct D3D12TranslationLayer::ResourceCreationArgs &,enum D3D12TranslationLayer::ResourceAllocationContext)() - line 0
d3d9on12.dll!D3D9on12::Resource::CreateUnderlyingResource(struct D3D12TranslationLayer::ResourceCreationArgs &)() - line 0
d3d9on12.dll!D3D9on12::ResourceInternal::CreateUnderlyingResource(struct D3D12TranslationLayer::ResourceCreationArgs &,struct _D3DDDIARG_CREATERESOURCE2 &)() - line 0
d3d9on12.dll!D3D9on12::Resource::InitInternal(struct _D3DDDIARG_CREATERESOURCE2 &,bool,struct D3D12TranslationLayer::unique_comptr<class D3D12TranslationLayer::Resource,struct D3D12TranslationLayer::unique_comptr_deleter>,bool)() - line 0
d3d9on12.dll!D3D9on12::Resource::Init(struct _D3DDDIARG_CREATERESOURCE2 &)() - line 0
d3d9on12.dll!D3D9on12::DeviceInternal::CreateResource2(void *,struct _D3DDDIARG_CREATERESOURCE2 *)() - line 0
d3d9.dll!CreateSurfaceLH() - line 0
d3d9.dll!DdCreateSurfaceLH() - line 0
d3d9.dll!DdCreateSurfaceFilter() - line 0
d3d9.dll!CDriverSurface::CDriverSurface() - line 0
d3d9.dll!CSwapChain::CreateWindowed() - line 0
d3d9.dll!CSwapChain::Reset() - line 0
d3d9.dll!CSwapChain::Init(struct _D3DPRESENT_PARAMETERS_ *,struct D3DDISPLAYMODEEX const *,long *,int,int)() - line 0
d3d9.dll!CBaseDevice::Init() - line 0
d3d9.dll!CEnum::CreateDeviceImpl() - line 0
d3d9.dll!CEnum::CreateDeviceEx() - line 0
wpfgfx_cor3.dll!CD3DDeviceManager::CreateNewDevice() - line 1606
wpfgfx_cor3.dll!CD3DDeviceManager::GetD3DDeviceAndPresentParams() - line 1050
wpfgfx_cor3.dll!CHwDisplayRenderTarget::Create() - line 69
wpfgfx_cor3.dll!CDesktopRenderTarget::Init() - line 338
wpfgfx_cor3.dll!CDesktopRenderTarget::Create() - line 124
wpfgfx_cor3.dll!CMILFactory::CreateDesktopRenderTarget() - line 684
wpfgfx_cor3.dll!CSlaveHWndRenderTarget::EnsureRenderTargetInternal() - line 884
wpfgfx_cor3.dll!CSlaveHWndRenderTarget::Render() - line 88
wpfgfx_cor3.dll!CRenderTargetManager::Render() - line 339
wpfgfx_cor3.dll!CComposition::Render() - line 859
wpfgfx_cor3.dll!CComposition::ProcessComposition() - line 712
wpfgfx_cor3.dll!CComposition::Compose() - line 805
wpfgfx_cor3.dll!CPartitionThread::RenderPartition() - line 134
wpfgfx_cor3.dll!CPartitionThread::Run() - line 246
wpfgfx_cor3.dll!CPartitionThread::ThreadMain() - line 51
kernel32.dll!BaseThreadInitThunk() - line 0

The difference between Most1 and Most2 is: igdgmm64.dll!0x7fff6653d502() and igdgmm64.dll!0x7fff6653d600()

Most3:

igdgmm64.dll!0x7fff66538841()
ntdll.dll!QueryRegistryValue() - line 0
igdgmm64.dll!0x7fff665511e0()
igdgmm64.dll!0x7fff66548a2f()
igdgmm64.dll!0x7fff6653c810()
igdgmm64.dll!0x7fff66538c3a()
igdgmm64.dll!0x7fff6654014f()
igdgmm64.dll!0x7fff665401c1()
igd12um64xel.dll!0x7fff15aefb94()
igd12um64xel.dll!0x7fff15ac00bc()
igd12um64xel.dll!0x7fff15aefd53()
igd12um64xel.dll!0x7fff15acfa35()
D3D12Core.dll!NDXGI::CDevice::CreateDriverInstance(void *,void *,void *,enum D3D12DDI_CREATE_DEVICE_FLAGS)() - line 0
D3D12Core.dll!CDevice::LLOCompleteLayerConstruction(void)() - line 0
D3D12Core.dll!NDXGI::CDevice::LLOCompleteLayerConstruction(void)() - line 0
D3D12.dll!D3D12CreateLayeredDevice(unsigned int,void const *,unsigned __int64,struct ID3D12LayeredDevice *,struct _GUID const &,void * *)() - line 0
D3D12Core.dll!D3D12CoreCreateLayeredDevice() - line 0
D3D12Core.dll!D3D12CoreCreateDevice() - line 0
D3D12Core.dll!D3D12ValidateAndCreateDevice() - line 0
D3D12.dll!D3D12CreateDeviceImpl(struct IUnknown *,enum D3D_FEATURE_LEVEL,struct _GUID const &,void * *)() - line 0
D3D12.dll!D3D12CreateDevice() - line 0
d3d9on12.dll!D3D9on12::Adapter::Adapter(struct _D3DDDIARG_OPENADAPTER &,struct _LUID *,struct _D3D9ON12_CREATE_DEVICE_ARGS *)() - line 0
d3d9on12.dll!D3D9on12::AdapterInternal::OpenAdapter_Internal(struct _D3DDDIARG_OPENADAPTER *,struct _LUID *,struct _D3D9ON12_CREATE_DEVICE_ARGS *)() - line 0
d3d9.dll!D3DFE_PVFUNCSI::LoadShaderConstants(unsigned int,unsigned int,void *)() - line 0
d3d9.dll!D3D9CreateDirectDrawObject() - line 0
d3d9.dll!FetchDirectDrawData() - line 0
d3d9.dll!InternalDirectDrawCreate() - line 0
d3d9.dll!CEnum::CEnum() - line 0
d3d9.dll!Direct3DCreate9Impl() - line 0
d3d9.dll!Direct3DCreate9Ex() - line 0
wpfgfx_cor3.dll!CD3DModuleLoaderInternal::CreateD3DObjects() - line 434
wpfgfx_cor3.dll!CDisplaySet::Init() - line 996
wpfgfx_cor3.dll!CDisplayManager::CreateNewDisplaySet() - line 666
wpfgfx_cor3.dll!CDisplayManager::DangerousGetLatestDisplaySet() - line 449
wpfgfx_cor3.dll!CMILFactory::GetCurrentDisplaySet() - line 733
wpfgfx_cor3.dll!CMILFactory::UpdateDisplayState() - line 414
wpfgfx_cor3.dll!CComposition::ProcessComposition() - line 616
wpfgfx_cor3.dll!CComposition::Compose() - line 805
wpfgfx_cor3.dll!CPartitionThread::RenderPartition() - line 134
wpfgfx_cor3.dll!CPartitionThread::Run() - line 246
wpfgfx_cor3.dll!CPartitionThread::ThreadMain() - line 51
kernel32.dll!BaseThreadInitThunk() - line 0

Thanks to my friends for providing DUMP file.

lindexi avatar Jul 25 '24 08:07 lindexi

Also on Ultra5 laptop with Intel(R) Arc(TM) Graphics(version:31.0.101.5449)

xsswon avatar Jul 31 '24 08:07 xsswon

Same issue on desktop with Intel Arc A770 Limited Edition. Driver version 31.0.101.5590 and 32.0.101.5768

CainSakura avatar Aug 05 '24 02:08 CainSakura

The same issue with Intel HD 630 @ Windows 10 Ennterprise LTSC 2018. The wpf app was based on dotnet 6 and 8 .

ShannonZ avatar Aug 27 '24 04:08 ShannonZ