SetStreamSource 에 대해서 질문 있습니다.

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

Moderator: 류광

Locked
비회원

SetStreamSource 에 대해서 질문 있습니다.

Post by 비회원 »

SetStreamSource 자체의 용도에 대해서 질문드리는 것이 아니오라

스트림 자체에 대한 궁금점입니다.

SetStreamSource( 0, ..... ); 1)
SetStreamSource( 1, ..... ); 2)
SetStreamSource( 2, ..... ); 3)
SetStreamSource( 3, ..... ); 4)

이렇게 호출시 이러한 것들이 병렬로 처리되는지 궁금합니다.

즉, 다시 말해서, 1) 명령어가 - 0번 스트림에 정보를 다 가지고 온뒤 완료된 상황 -

끝난뒤에야 2) 명령어를 실행하는지

아니면, 1) 명령어는 호출은 하되 내부적으론 GPU 에게 맡기고

곧바로 2) 명령어를 처리하는지 ( 내부적으론 GPU 에서 병렬처리하겠다는 의미가 되겠죠 )

궁금합니다......


두번째 질문은 위의 예처럼 1), 2), 3), 4) 을 나눠서 처리하는것이 빠른지

아니면 합쳐서 쓰는것이 빠른지 궁금합니다....

예를 들어서 , pos, nor, tex0, tex1 이런식으로 되어있을시

각각 따로 스트림에 넣어서 처리하는것이 빠른지

아니면 하나에 넣어서 한방에 처리하는것이 빠른지 궁금합니다

DX 도움말을 보면 대역폭을 작게 해준다고 했지만, 위의 SetStreamSource 가 여러번 호출되는

부하가 어느정도인지 몰라서 질문드리는 겁니다.
kulkal
Posts: 16
Joined: 2003-03-24 01:59
Location: 게임회사
Contact:

공식적인 도큐먼트에 따르면 static 렌더링일 경우에 나눠쓰지

Post by kulkal »

그러나 버퍼에 락을 걸어서 memcpy 따위를 해야 할 필요가 있을 경우엔 대부분의 경우에 버텍스의 모든 구성요소에 대해 그짓을 할 필요가 없으므로 나눠 쓰는 편이 유리할 경우가 꽤 있습니다.

예를 들어 스키닝 변형 같은 경우엔 포지션과 노말 이외는 건드릴 필요가 없지요..

그리고 모든 요소를 나눠서 그리는 경우에도 대부분의 카드에서 성능 저하는 보지 못했습니다...

오히려 대부분 더 빠른 속도를 나타내는 경우도 많았습니다...

아...심지어 TNT2 카드에서도 그랬습니다....

도큐먼트에서 추천하는 방식은 다이나믹해야 할 부분과 스테이틱해야 할 부분을 스트림으로 나눠서 쓰는 것이

성능면에서는 가장 좋을 것이다...였습니다...

2000~
아싸~
Locked