이번에는 픽셀쉐이더에 관한 성능 차이에 대한 이야기

어떤 이의 질문

Hi all,
안녕하세요?

A quick question if I may...
간단한 질문 하나만 해도 괜찮을련지요?

If I have a simple pixel shader which would look no different if I just used
TextureStageStates, would the code generally be quicker, slower, or no
difference if I used TexureStates as opposed to the shader?
만약에 그냥 TextureStateState 를 사용한 것과 똑같은 일을 하는 간단한 픽셀쉐이더를 만들게 되면, 일반적으로 속도가 더 빠를까요? 아니면 느려질까요? 아니면 차이가 없을까요?

Thankingyou all very muchly in advance.
답변에 미리 감사드립니다.

----------------------------------------
Naoki 라는 사람의 대답

Depends on the video card...
카드에 따라 다릅니다...
On a Radeon 9700 it will obviously be faster in most or all cases, because
all fixed pipeline calls are converted on the fly to shaders.
9700 같은 카드에서는 명백하게 거의 모든 경우에서 픽셀쉐이더가 빠를겁니다. 왜냐하면 모든 고정파이프라인 명령은 쉐이더 명령으로 다시 변환되기 때문이죠
On a GeForce 3 I believe it will still be faster to use the fixed pipeline.
So, in the end, it doesn't matter, I guess. But the "future" is probably
set for common use of shaders.
지포스3 같은 류에서는 제가 생각하기엔 그래도 고정 파이프라인이 빠를것 같습니다. 그러니까 결국엔 별로 상관없지 않을까요? 하지만 앞으로는 확실히 쉐이더를 쓰는 것이 일반화될 것 같습니다.

----------------------------------------
MS 직원의 대답

This is not accurate. I am aware of no hardware on which there would be
any performance difference at all.
그건 정확하지 않습니다. 저는 약간이라도 성능차이가 나는 하드웨어를 본 적이 없습니다.

Tony Cox - Development Lead, Hockey
Microsoft Games Studios - Sports

----------------------------------------
그에 대한 nVidia 직원의 첨언

Tony's correct, for NVIDIA hw at least.  Naoki's reference to fixed pipe hw
vs. converting to shaders actually applies to *vertex* shaders, not pixel
shaders as this question is referring to.  With pixel shaders, equivalent
operations should run at exactly the same speed.
토니씨의 말이 맞습니다, 적어도 nVidia 하드웨어에선 말이죠. 나오키씨의 고정파이프라인 하드웨어와 쉐이더의 변환에 대한 지적은 버텍스 쉐이더에 대해서만 해당되는 이야기입니다. 지금 얘기는 픽셀쉐이더 얘기가 아니죠. 픽셀쉐이더에 대해서라면 동일한 명령은 최소한 동일한 속도에 실행되도록 되어있습니다.

-Cem

--
Cem (pronounced "Jem") Cebenoyan
Software Engineer, Developer Relations
NVIDIA Corporation

imcgames 의 김학규입니다