프로그램간에 셰이더를 공유하면 성능상의 이점이 있습니까?


14

OpenGL을 사용하면 여러 프로그램간에 동일한 셰이더를 공유 할 수 있습니다. 적은 양의 메모리와 셰이더 핸들을 저장하는 것 외에도 GPU 측 성능 이점이 있습니까?

답변:


3

GPU 측 성능 이점이 의심됩니다.

예를 들어 일반 셰이더를 프로그램에 바인딩하면 효율적인 구현으로 해당 셰이더와 해당 프로그램의 다른 셰이더 사이에 사용되지 않는 속성을 제거하고 결과적으로 셰이더 논리를 단순화 할 수 있어야합니다. 물론 이것은 수동 튜닝 셰이더 조합에 비해 실질적인 이점은 아니지만 복잡성 / 조합을 관리하고 드라이버가 수행해야하는 컴파일 수를 줄이는 데 도움이됩니다.

그러나 비효율적 인 드라이버-컴파일러 구현에 대한 관점에서이를 수행하는 데에는 단점이있을 수 있습니다. 그리고 일부 구현이 있습니다 : http://aras-p.info/blog/2010/09/29/glsl-optimizer/ : 일부 구현이 잘못 될 수있는 간단한 것들을 확인하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.