2009-12-19 10 views
2

GP-GPU 프로그래밍을 위해 DirectX 11 Compute Shader 기술을 사용하기 시작했습니다. 나는 HLSL에 대한 복잡한 프로그램을 작성했고 디버깅을 원했을 때 DX SDK의 2009 년 8 월 PIX 유틸리티가 Compute Shaders를 지원하지 않는다는 것을 깨달았습니다 ... NVDi가 출시 예정인 것을 알고 있습니다 Visual Nexus Studio는 Direct Compute 디버깅을 지원하지만 아직 출시되지 않은 차세대 NVidia GPU에서만 가능합니다. (Compute Shader 기술은 장치 독립성으로 인해 매우 기대되는 것처럼 보이지만 디버깅 지원 없이는 사용하기가 매우 어려울 수 있습니다.DirectX 11 Compute Shaders를 디버깅하는 방법?

는 사용 가능한 현재 또는 가까운 미래에 출시 예정, 계산 쉐이더 디버깅에 사용할 수있는 도구 나 방법을 알고 계십니까?

답변

2

I NVIDIA Nexus이 널리 보급되기를 기다리고 있습니다. 어쩌면 마이크로 소프트는 레퍼런스 래스터 라이저와 함께 작동하는 무언가를 생각해 낼 수도 있지만, 중요한 것은 하드웨어와의 긴밀한 통합이 필요하다는 것입니다. 그러한 경우 공급 업체 만 필요한 도구를 제공 할 수 있습니다.

누군가 AMD는 컴퓨팅 쉐이더에 대한 지원을 GPU PerfStudio에 추가할지 여부를 알고있을 것입니다.

0

죄송하지만 잠시 그 ​​질문에 대한 간단한 대답은 없습니다.

아마 NVIDIA 넥서스 베타 프로그램에 등록하려고 : http://supportcenteronline.com/ics/support/default.asp?deptID=4639

당신이 넥서스 페르미 기반 GPU를 필요로 읽었다

? 나는 2 개의 NVIDIA GPU 또는 2 개의 NVIDIA 기반 워크 스테이션을 가진 SLI 가능 워크 스테이션 (그리고 나서 목표물을 원격으로 디버깅하는 것)이 필요하다고 생각했습니다.

0

불행히도 디버깅 컴퓨팅 쉐이더는 버텍스 및 픽셀 쉐이더 디버깅과 매우 흡사합니다 ... 내가 발견 한 가장 좋은 방법은 작은 변화를 수행하고 테스트 값을 임시 텍스처 리소스에 출력하는 것입니다. 그런 다음 텍스처 리소스를 응용 프로그램의 화면에 렌더링하거나 심지어 파일에 저장하여 셰이더에서 수행중인 작업에 대한 정보를 추출 할 수 있습니다.

정말 끔찍한 상황이지만, 그 툴링 상황이 지금 얼마나입니다 ...

1

효율적인 방법 개발 및 디버그 복잡한 HLSL 계산 쉐이더는 C++로 컴파일하는 것입니다. 이 기능을 수행하면 일반적으로 C++에서 메모리 및 변수 조회와 같이 사용하는 IDE 디버깅 기능을 활용할 수 있습니다. 다음은 샘플 DirectX HLSL Compute 쉐이더를 디버깅하는 방법을 보여주는 개념 증명 프로젝트입니다.

https://github.com/cezbloch/shaderator

일단 코드가 올바르게 작동하면 GPU에서 실행하십시오. C++ verion은 개발을 돕기위한 것입니다.