2014-10-15 1 views
1

나는 한 시간에 여러 번이 오류 (D2DERR_RECREATE_TARGET)를 무작위로 얻고 그 오류를 읽은 후에는 피할 수없는 것처럼 보입니다. "SharpDX"는 ".NET 플랫폼에서 DirectX API를 완벽하게 제공하는 오픈 소스 프로젝트"입니다.D2DERR_RECREATE_TARGET 오류는 내 렌더링 대상에서 만드는 모든 것을 추적해야한다는 것을 의미합니까?

Microsoft의 설명서에 따르면 : "Direct2D는 EndDraw 메서드에서 D2DERR_RECREATE_TARGET 오류 코드를 반환하여 손실 된 장치에 신호를 보냅니다.이 오류 코드가 표시되면 렌더링 대상과 모든 장치 종속 리소스를 다시 만들어야합니다."

내 렌더링 타겟이 생성하는 모든 장치 종속 리소스를 추적해야한다는 것을 의미합니까? 사용이 중단되었거나 잘못 되었습니까? 아니면 여기 누군가가이 오류를 해결할 방법을 알고 있습니까?

+2

예, 응용 프로그램이 제대로 처리하도록하려면 예. 이 오류는 너무 자주 발생하지 않아야합니다. 일반적으로 드라이버가 업데이트되거나 원격 데스크톱 세션이 시작될 때 또는 충돌을 일으키는 드라이버에 문제가있는 경우에만 발생합니다. 비교적 쉽게 처리 할 수있는 방법 중 하나는 기본적으로 응용 프로그램을 다시 시작하는 것입니다. 디스크에서 재생성 할 수없는 내용이 없다고 가정하면됩니다. – MooseBoys

답변

4

렌더 타겟에 의해 생성되고 D2DERR_RECREATE_TARGET과 함께 실패한 객체는 더 이상 그리기에 사용할 수 없습니다.

이렇게 : 예, 필요한 개체를 추적하고 다시 만들거나 사용하지 않아도됩니다.

매우 자주 오류가 발생하는 것은 이상한 일입니다. 복잡한 렌더링이 비디오 드라이버의 버그를 유발하거나 너무 많은 메모리를 사용하는 것일 수 있습니다.

때때로 버그는 특정 비디오 카드의 비트 맵 바깥 쪽을 그리는 것처럼 간단 할 수 있습니다.

D2DD3D 디버그 레이어를 사용하면 오류의 원인을 찾는 데 도움이 될 수 있습니다.

관련 문제