2

VS2012에서 내 응용 프로그램을 디버깅 할 때 입력 (마우스 및 키보드)이 너무 늦기 시작하면 fps가 약 0.3 이하로 떨어지고 마우스를 움직일 수도 없습니다 3 초 기다리지 않고 ... 유일한 해결책은 디버깅을 끝낼 Shift-F5를 수행하는 것입니다. 그리고 모든 것이 잘됩니다.디버깅하는 동안 Visual Studio 극단적 지연이 급증합니다

더 재미있는 점은 입력이 지연되고 전체 배경이 완벽하게 작동하며 텍스트 캐럿이 정상 속도로 깜박이고 마우스가 버튼 위로 이동하면 툴팁이 잘 움직이는 것입니다.

알레그로 4.2로 프로젝트를 컴파일 한 Im (필자는 그것을 사용해야한다. 이유를 설명하는데 너무 오래 걸린다).

는 나는 물론 경우에 대한 정보를 제공 할 수 있습니다 ... 더 확장 디버깅을 처리 할 수 ​​있어야 꽤 빠른 PC ...

임 모든 솔루션에 관심이 hackish/오염 될 수 없다 필요합니다.

도움 주셔서 감사합니다.

EDIT : 포럼을 통해 읽음 "자동"창 또는 이와 유사한 내용 (정확하게 기억하지 못하고 더 이상 찾을 수 없음)에 대한 정보를 발견했습니다. 이는 "백그라운드 작업"을 수행하고 지연을 유발합니다 ... 별도 코어에서 실행하면 문제가 해결 될 것이라고 생각합니까?

답변

6

멀티 초 노점의 이야기 원시 입력 API에 관련된 중단 점, 타격 : http://the-witness.net/news/2012/12/finding-and-fixing-a-five-second-stall/

그것은 내가 지난 일 자신의 이런 종류를 본 이후 아주 긴 시간이다,하지만 내가 기억하는 것처럼 보이는 제 경우의 범인은 DirectInput입니다. (DirectInput은 오랫동안 원시 입력 API에 대한 래퍼 였기 때문에 위의 이야기를 감안하면이 점이 의미가 있습니다.) 솔루션은 기본 키보드가 아닌 에뮬레이트 된 키보드 및 마우스 장치를 사용하는 것이 해결책이라고 생각합니다. 에뮬레이트 된 장치 GUID 중 하나를 IDirectInput8_CreateDevice으로 전달합니다. 간단히 여기에 설명 :

http://msdn.microsoft.com/en-us/library/windows/desktop/ee416845%28v=vs.85%29.aspx는 (I 협동 조합과 독점 수준이 차이를 만들어 여부를 기억하지 않는다 - 그것은이 너무 변경 시도 가치가있을 수도 있습니다.) 도움

+0

많은합니다. 이 일이 잘되기를 바랍니다. 지금은 집에 없기 때문에 내가 집에 갈 때 제일 먼저 할 일은 문제가 해결되는지 확인하는 것입니다. 그럴 것 같네요. 감사! –

+0

여기 있습니다. 도움이되는 답변. DirectInput은 아마도 지연 (소스를 확인한)을 일으키고 있습니다. 어쨌든 SFML로 모든 것을 다시 쓰는 것이 오래된 Allegro 자체를 수정하는 것보다 빠르고 쉽다고 생각합니다 ... –

+0

DirectInput에 대한 팁을 주셔서 감사합니다. 내 문제로 밝혀졌습니다. 에뮬레이트 된 마우스를 사용하도록 설정 한 것은 전혀 도움이되지 않았지만 대신 협력 수준을 'DISCL_FOREGROUND | DISCL_NONEXCLUSIVE'에서'DISCL_FOREGROUND | DISCL_EXCLUSIVE'으로 변경했습니다. –

관련 문제