작성
·
42
0
코드를 따라가다 보니 기존엔 ID3D12CommandList를 사용하던걸 ID3D12GraphicsCommandList로 바꾸신 부분들이 있으신데 혹시 특별한 이유가 있을까요?
답변 2
0
ID3D12CommandList는 그래픽스 커맨드 레코딩이 불가능합니다. 작동이 아예 불가하기 ID3D12CommandList로 사용했던 적이 없을텐데 이상하네요. 코드 라인을 긁어서 질문해주시면 좀더 자세하게 답변해드릴 수 있을것 같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 반달시어머니님.
질문해주신 내용에 대해서 답변 드리겠습니다.
ID3D12CommandList: 이 인터페이스는 가장 기본적인 커맨드 리스트 인터페이스로, 실제로 커맨드 리스트에서 사용할 수 있는 모든 기능을 담고 있지 않습니다. 일반적으로 그래픽 및 컴퓨팅 작업을 포함한 모든 범용적인 작업을 처리하려면 이보다 더 구체적인 인터페이스가 필요합니다.
ID3D12GraphicsCommandList: 이 인터페이스는 그래픽 작업을 수행할 때 사용되는 커맨드 리스트입니다. 이는 다양한 그래픽 파이프라인 명령을 수행할 수 있도록 지원하며, ID3D12CommandList 인터페이스의 기능을 확장합니다. 그래픽 명령어와 더불어, 셰이더 자원 설정, 파이프라인 상태 설정, 드로우 콜 등을 처리할 수 있습니다.
구체적인 기능 제공: 그래픽 관련 작업을 수행하기 위해선, ID3D12GraphicsCommandList
가 제공하는 다양한 그래픽 관련 메서드가 필요합니다. 예를 들어, 드로우 콜, 그래픽 파이프라인 설정 등의 명령은 ID3D12CommandList
로는 할 수 없습니다.
확장성과 유연성: ID3D12GraphicsCommandList
는 그래픽 작업 전용으로 보다 구체적이고 최적화된 기능을 제공하므로, 보다 효율적으로 코드를 작성할 수 있습니다. 이는 특히 그래픽 파이프라인 상태 변경, 리소스 바인딩 등에서 유용합니다.
이 때문에 기존의 ID3D12CommandList
에서 ID3D12GraphicsCommandList
로 변경된 것입니다. 이를 통해 보다 직관적이고 직접적으로 그래픽 명령을 설정할 수 있게 됩니다.
보다 효율적으로 프로그램을 개발하기 위해 다른 개발 관례나 전략에 대해 궁금하다면 다음 답변을 참조할 수 있습니다:
이 링크는 DirectX와 관련된 기초 정보에 대해 살펴보는 데 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.