현재 언리얼 엔진 DirectX 11에서 원격 데스크탑 연결로 인한 장치 변경에 대한 예외 처리는 없는 것으로 확인되며, DirectX 12에서도 전체 화면 전환 실패 시 다시 창 모드로 전환되는 처리만 추가되어 있는 것으로 확인됩니다.
해당 프로그램 사용 시 원격에서 로컬로 전환할 때 출력 장치가 제거되면서 어댑터에 해당하는 출력 장치가 유효하지 않아 GetDisplayModeList 함수 및 전체 화면 전환 등에서 문제가 생기는 것으로 확인되며, 이슈 해결이 필요한 경우 장치 변경 시 윈도우 디바이스 변경 메시지를 받는 방법 등을 통해 로컬로 전환된 컴퓨터가 사용하고 있는 어댑터와 출력 장치에 맞게 RHI를 초기화하도록 엔진 코드를 수정할 필요가 있어 보입니다.
원격 데스크탑 연결 프로그램의 경우 Microsoft Remote Display Adapter 출력 장치가 생성되어 질문과 같은 상황에서 예기치 않은 문제가 발생할 수 있으므로 다른 원격 제어 프로그램을 사용해보시는 것을 권유드립니다.
우선 !::GetSystemMetrics(SM_REMOTESESSION)을 통해 현재 리모트 세션인지 확인할 수 있으며, 리모트 세션이 종료된 경우 렌더링 스레드를 종료하고 사용 중인 자원(RenderResource, RHICommandList 등)을 정리 및 RHI 해제 후 다시 RHI를 초기화하는 과정이 필요합니다.
RHI.h 파일 및 FEngineLoop::Exit 함수와 FEngineLoop::PreInit 함수 등을 참고하시면 수정에 도움이 될 것으로 생각하며, -d3ddebug 옵션을 설정하여 실행하면 DXGI_ERROR_INVALID_CALL 오류에 대한 더 자세한 정보를 얻을 수 있습니다.
현재 언리얼 엔진에서는 리모트 세션 변경에 따라 별도 작업을 수행하지 않기 때문에 해당 작업을 추가하는데 많은 과정이 필요할 수 있으며, VNC 등 다른 원격 제어 프로그램을 사용하여 문제를 우회할 수 있을 것으로 기대합니다.