2010-05-30 63 views
5

Tôi phải chạy một ứng dụng wpf trong môi trường có tất cả cùng một máy tính với chip đồ họa intel gma 3000 (onbard, Q963/Q965). Ứng dụng chỉ hiển thị bằng cách hiển thị phần mềm (được nêu rõ bởi số RenderCapability.Tier -property và cũng là Perforator của Bộ công cụ hiệu suất Hiển thị điều đó. Tôi đã kiểm tra cũng đăng ký nếu thiết lập của các máy này vô hiệu hóa wpf-hw rendering nhưng đó cũng không phải là trường hợp.Trên một máy tôi cũng cập nhật trình điều khiển video và dxLàm thế nào để biết một card đồ họa có cung cấp phần cứng cho wpf

Nếu tôi giải thích tài nguyên đúng, thì trên máy tính đã cài đặt DirectX 9c (và tăng tốc D3D), cũng có thể hiển thị phần cứng wpf Nhưng trên các máy DX9c ở trên được cài đặt, h owever không có hw rendering. Theo đặc điểm kỹ thuật được cung cấp bởi bài viết của Daniel Bern, tôi cũng nghĩ rằng ít nhất dựng hình trên tầng 1 phải có khả năng và hoạt động.

Điều duy nhất tôi không phải lo lắng là bộ nhớ, bởi vì hệ thống đồ họa phân bổ bộ nhớ hệ thống động và không có bộ nhớ riêng. Làm cách nào để tìm hiểu xem một chip đồ họa cụ thể có hỗ trợ hiển thị phần cứng cho wpf hay không. Là nó như vậy với hoạt động DirectX 9c cũng harware rendering được hỗ trợ hoặc cũng có bất kỳ yêu cầu khác mà phải được fullfilled mà đi xa hơn mà dx9c yêu cầu? Câu hỏi thứ hai là, nếu wpf hiển thị thông qua dx, điều này được thực hiện thông qua trực tiếp 3d hoặc là trực tiếp vẽ được sử dụng. Có tài liệu hay về chủ đề này không?


Nó bật ra rằng trên máy tính của khách hàng trực tiếp 3d tăng tốc đã hoạt động (trong DXDiag), không hiệu quả. Các chương trình thử nghiệm để kiểm tra trực tiếp 3d luôn luôn kết thúc trong các lỗi. Điều này làm cho vấn đề trở thành vấn đề hỗ trợ và tôi sẽ mở một vé trong bộ phận hỗ trợ của các công ty liên quan.

Câu hỏi về thành phần nào của dx được sử dụng để hiển thị wpf trong phần cứng có thể được trả lời như sau: Hiển thị được thực hiện qua Lớp tích hợp phương tiện (MIL). Nếu DirectX (phiên bản thích hợp) có sẵn và có thể hoạt động được, MIL viết tất cả các lệnh hiển thị trực tiếp tới D3D. Additionaly, DirectShow (hoặc người kế nhiệm) được sử dụng để xử lý video. Lớp tích hợp phương tiện là mã không được quản lý và dường như có rất ít tài liệu về.

Các sự kiện trên đã dẫn tôi đến nhận thức, rằng DirectX9c đang hoạt động là một chỉ báo rõ ràng rằng hiển thị hw cho wpf có thể và sẽ diễn ra. Do đó, câu hỏi mà chip hỗ trợ hw-rendering có thể được trả lời bằng cách kiểm tra xem chip có hỗ trợ dx9c (đối với kết xuất tầng 2) không. Các đặc điểm kỹ thuật yêu cầu có thể được tìm thấy here (nhờ Daniel Bern).

CẬP NHẬT

Lý do tại sao D3D và cung cấp phần cứng đã không làm việc trong trường hợp trên là một ứng dụng có đăng ký một tài xế gương video để cung cấp dịch vụ thiết bị đầu cuối từ xa như họp ròng không (đó là phần mềm từ bộ phận hỗ trợ được sử dụng để quản trị từ xa máy khách). Vô hiệu hóa trình điều khiển gương này dẫn đến một 3d trực tiếp chức năng và do đó việc hiển thị phần cứng WPF diễn ra. Tuy nhiên mức render chỉ là tầng 1 (tôi nghĩ vì giới hạn bộ nhớ video).

Tôi hy vọng bài đăng này sẽ giúp những người khác có vấn đề tương tự.

Dưới đây một số liên kết để tham gia vào topic:

WPF Architecture Overview, Hardware Acceleration in WPF, Introducing Direct2D, Advanced WPF Application Performance Tuning and Analysis, RenderCapability.Tier returns not the render mode

Trả lời

Các vấn đề liên quan