728x90

가상 그래픽 드라이버 외주 개발자가 만들어준 드라이버가 SwDeviceCreate()와 SwDeviceClose()를 호출하다가 일정 횟수를 반복하다보면 그래픽 드라이버가 제대로 만들어지지 않는 현상을 발견하였다.

Debuging을 해보니 DirectX 자원을 생성하려고 할때 E_OUTOFMEMORY 가 발생하는거였다.

하지만 이것도 IGPU, AMD는 괜찮지만 NVIDIA에서만 발생한다.

그래서 NVIDIA Memory leak을 검색하다보니 flush()를 하면 괜찮다는 글을 발견하였다.

그렇다면 DX Resource를 Release할 때 AMD와 IGPU는 바로 해제를 하지만 NVIDIA는 Flush가 발생할때까지 command list에 쌓아두기만하다가 한번에 처리하는건 아닐까? 생각이 든다.

 

참조 : https://forums.developer.nvidia.com/t/create-texture-cause-memory-leak/50121

 

create texture cause memory leak

Repeat to create texture and release, it will lead to a memory leak. https://devtalk.nvidia.com/default/topic/911464/graphic-driver-memory-leak/#4784574 #include "stdafx.h" #include <direct.h> #include <dxgi.h> #include <d3d11.h> #include <stdio.h> #includ

forums.developer.nvidia.com

 

참조 : https://stackoverflow.com/questions/58726052/directx-11-createvertexshader-memory-leak

 

728x90

+ Recent posts