그래픽 카드를 쇼핑하거나 사양을 보면 해당 카드가 지원하는 DirectX 버전을 볼 수 있습니다(제 경우에는 카드가 10을 지원합니다). 내가 알고 싶은 것은 Microsoft가 새 버전 11을 출시했을 때 이 카드가 DX11 표준에서 성능을 발휘하지 못하게 하는 요인은 무엇입니까?
실제 그래픽 카드 자체의 펌웨어 문제라고 이론화하겠습니다. 최신 버전을 지원하기 위해 플래시할 수는 없나요? 아니면 이 DX10 카드가 DX11을 제대로 지원하고 실행할 수 있을까요? DX11이 아직 출시되지 않았기 때문에 Nvidia가 이와 같은 라벨을 붙일 수 없다는 사실일까요?
이에 대해 좋은 통찰력을 갖고 있는 사람이 있으면 알려주세요!
편집: 좋습니다. 이 스레드를 반대 투표하거나 폐쇄하도록 투표한다면... 이것이 '어리석은 질문'이라고 생각하는 이유를 설명해 주시겠습니까? 완전한 하드웨어 변경이 필요한 DX 버전 간의 차이점이 어떻게 또는 무엇인지 진지하게 궁금합니다. GPU 명령어 세트는 동일하며 하드웨어의 유일한 차이점은 최신 버전이 더 빠른 VRAM, 더 많은 스트림 프로세서 등을 갖는다는 것입니다. 그러면 DX11을 지원하도록 DX10 카드를 업그레이드할 수 없는 이유는 무엇입니까? 이유를 말 해주세요.
답변1
DirectX 10 카드를 DirectX 11로 업그레이드할 수 없는 이유는 아마도 DirectX 11이 수학 연산의 특정 수준의 정밀도와 같은 특정 기능을 요구하기 때문일 것입니다. 그런 종류의 작업은 어렵고 백포트하기가 약간 짜증스럽습니다. 함께 작동하도록 설계되지 않은 하드웨어.
이는 최신 CPU에서 도입된 새로운 기능을 지원하지 않는 특정 CPU와 동일합니다. 물론 새로운 기능을 에뮬레이트할 수는 있지만(기본 구현보다 너무 느리게 실행될 수는 없지만) CPU 자체는 여전히 필요한 기능을 실제로 지원하지 않습니다. 특징. 비슷한 아이디어로 SSE가 아닌 프로세서에서 SSE 명령을 에뮬레이션할 가능성이 있을 수 있습니다. 물론 그렇게 할 수도 있지만, 이는 조작이 많이 필요하고 전체 하드웨어 구현보다 속도가 훨씬 느립니다.
사용자 정의 소프트웨어를 사용하면 DirectX 11 카드만큼 보기 좋고 비슷한 방식으로 거의 모든 작업을 수행할 수 있는 DirectX 10 카드를 얻을 수 있지만 DirectX 11에서 요구하는 모든 기본 기능이나 추가 정밀도는 일반적으로 누락될 수 있습니다. 나는 소프트웨어/에뮬레이션 계층이 전체 하드웨어 접근 방식보다 상당히 느릴 것이라고 생각합니다.
답변2
DirectX 10 이후(포함) Microsoft는 "호환성 비트" 전체를 폐기하고 카드에 최소 DirectX 수준만 설정하기로 결정했습니다. 카드가 DX11과 호환되는 경우 다음을 지원합니다.모든 DX11 기능. 이를 통해 개발자는 더 쉽게 기능을 사용할 수 있고(기능을 사용하기 전에 해당 기능의 가용성을 확인할 필요가 없음) 보다 일관된 경험을 보장할 수 있습니다.
개념적 관점에서 이 스레드를 보는 사람은 DX10에서 DX11로 전환하기 위해 하드웨어 수정이 필요하다고 제안하는 사람이 있습니까? GPU와 스트림 프로세서는 모두 동일하거나 매우 유사한 명령어 세트를 가지고 있습니다.
실제로는 그렇지 않습니다. 다시 한번 말씀드리지만, 제가 위에서 말한 내용에 주목하세요.하드웨어DX11 호환 가능모든 DX11 기능을 지원해야 합니다.. 과거에는 DirectX 버전 간 변경이 있었습니다.가지다파이프라인 아키텍처, 셰이더 모델(및 지원되는 언어/셰이더), 부동 소수점 정밀도 및 명령어 세트 확장을 포함하여 GPU 하드웨어 자체의 측면이 변경되었습니다.
하는 동안이것들이 전부는 아니야DX10에서 DX11로 전환되면서 하드웨어와 소프트웨어 측면 모두에 구현된 추가 기능이 있습니다(이러한 변경 사항의 대부분은 비공개 소스이므로 구체적인 변경 사항에 대해 언급할 수 없습니다).
그러고보니 당신은~할 수 있다DirectX 11에 추가(즉, 테셀레이션, 멀티스레드 렌더링 및 계산 셰이더)가 없더라도 DirectX 9/10 하드웨어를 사용하여 DirectX 11 소프트웨어를 실행하고 개발자가 응용 프로그램을 올바르게 구현했다고 가정합니다. 나는 이것을 보지 못한다항상말 그대로 구현하는 데 비용이 전혀 들지 않기 때문에 문제가 됩니다. 이것이 바로 제가 이전에 "호환성 비트"에 대해 언급한 이유입니다.
최신 및 최고의 DX 레벨에 새로운 기능을 추가하려면 하드웨어에 쿼리하여 최신 DX 레벨을 지원하는지 확인합니다. 그렇다면 활성화하고 그렇지 않으면 다음 DX 레벨로 대체합니다(특정 하드웨어 기능의 가용성을 확인하는 것과 반대). 이것이 Direct3D 11 라이브러리를 사용하여 컴파일된 응용 프로그램이 Direct3D 9/10 호환 하드웨어에서 실행될 수 있는 이유입니다.
답변3
"펌웨어 업데이트"가 모든 문제에 대한 해결책은 아닙니다. 각 버전의 DirectX 요구 사항에는 하드웨어 및 펌웨어 솔루션이 포함됩니다.
답변4
그래픽 카드를 만들 때 GPU는 인증된 DirectX 표준 내에서만 작동하도록 설계되기 때문입니다. 일반적으로 DirectX는 이전 버전과 호환되므로 수행해야 할 작업은 일부 수학적 계산을 위해 여기저기서 정밀도를 높이는 것뿐입니다. 그러나 새로운 DX 버전에는 새로운 하드웨어 지원이 필요한 새로운 기능(예: DX11에 테셀레이션 추가)이 도입되는 경우도 있습니다. 그래픽 카드의 실제 내부는 프로그래밍이 불가능합니다(DX 사양에 지정된 셰이더는 제외). 펌웨어는 범용 로직 칩이 실행되는 일부 내부 메모리에 상주하는 소프트웨어 유형입니다. GPU의 힘은 실제로 범용이 아닌 특정 작업을 매우 효율적으로 수행하도록 특별히 설계되었다는 것입니다. 이러한 특정 작업은 바로 DX 사양에서 설명하는 작업입니다. 따라서 새로운 DX 버전이 나오면 새로운 GPU가 필요한 새로운 하드웨어 업데이트가 필요합니다. 예, 보드 제조업체는 더 빠른 메모리 등을 추가할 수 있지만 GPU가 제작되면 내부 논리를 변경할 수 없습니다.