2014-02-24 12 views
1

ShaderModel vs_1_1 및 ps_2_0 (DirectX9 사용)을 사용하여 많은 셰이더를 컴파일하고 있습니다. 하드웨어가 더 높은 쉐이더 모델을 지원한다는 것을 안다면 (아마도 대부분 3.0을 지원할 것입니다.) 더 높은 쉐이더 모델 버전으로 컴파일해야합니까? 그게 더 성능이 좋은가요? 아니면 모델 버전이 더 효과적입니까?셰이더를 더 낮은 버전으로 컴파일 할 수 있더라도 상위 ShaderModel을 선호합니까?

답변

0

가장 쉬운 방법은 fxc를 다른 프로필과 함께 사용하고 명령 수를 확인하는 것입니다. 상위 버전에서는 총 명령 수를 줄일 수있는 새로운 내장 함수를 사용할 수 있습니다.

ps_3_0에서 컴파일하는 동안 나에게 63 개의 지침을 준 반면, ps_2_0에서는 64 제한 내에 맞지 않는 것을 기억합니다.

저는 셰이더 모델 3을 사용합니다.

산술/텍스처 가져 오기/채우기 비율 간의 균형을 유지해야하기 때문에 성능 지표에 따라 당연히 다른 점을 고려해야합니다.

당연히 더 낮은 것이 일반적이지만 더 적은 산술은 당신이 전화 연결을 끌 때 시스템을 훨씬 빠르게 만들지 않을 것입니다.

프로파일 링의 경우 아직이 기능을 아직 사용하지 않은 경우라면 Queries을 구현하는 것이 좋습니다. TimeStamp가 가장 유용합니다. 셰이더 실행 시간을 측정 할 수 있습니다. 교합은 또한 순방향 패스 (채우기 속도)에서 측정 값을 초과하는 데 매우 유용합니다.

+0

지침 집계는 궁극적 인 성과 지표입니까? 명령 수를 줄이면 실행 속도가 빨라 집니까? "fxc"는 "NVidia FX Composer"입니까? (불행히도이 유용한 소프트웨어는 Windows 8.1부터 작동하지 않습니다.) –

+0

답변이 업데이트되었습니다. 셰이더 작성을 위해 동적 컴파일 (dx9 및 dx11)이 포함 된 라이브 쉐이더 편집기가있는 http://vvvv.org/에서 엿볼 수 있습니다. fxc에 대한 정보는이 링크를 참조하십시오. http://blogs.msdn.com/b/chuckw/archive/2012/05/07/hlsl-fxc-and-d3dcompile.aspx – catflier