2015-05-08 30 views
6

Tôi đang lập trình trong C#, Visual Studio 2013 Update 5 RC và sử dụng Direct3D 11 (qua SlimDX) để hiển thị một cảnh động. Tôi đã thử nghiệm với các kết cấu truy cập không có thứ tự trong trình đổ bóng pixel và nó hoạt động độc đáo. Tức là, trình tạo pixel của tôi có một số RWTexture2D<float> được gắn với register(u1) mà tôi đã đặt cùng với chế độ xem mục tiêu hiển thị. Khi tôi chạy ứng dụng của mình, kết xuất hoạt động tốt và tôi không nhận được cảnh báo hoặc lỗi nào từ lớp gỡ lỗi D3D.Trình gỡ lỗi đồ họa Visual Studio bỏ qua trình đổ bóng pixel làm việc

Mặc dù điều này là tất cả làm việc, tôi dường như không thể phân tích các khung hình duy nhất với trình gỡ lỗi đồ họa Visual Studio. Các (đúng) hình ảnh đầu ra hiện nay là một số màu xám, như có thể thấy trong hình dưới đây:

Screenshot from the rendered output

Mặc dù các số đo FPS hoạt động tốt, khi tôi chụp một khung hình, nó luôn luôn hiển thị như hoàn toàn trắng (hoặc bất kỳ màu sắc tôi đã sử dụng để xóa các mục tiêu render) trong nhật ký VSG:

Captured frames

Khi tôi mở Visual Studio Graphics Analyzer cho một trong những khung hình, tôi thấy một vấn đề trong các đường ống dẫn đồ họa. Lắp ráp đầu vào và vertex đang làm việc như dự định, nhưng các pixel shader là mất tích và không có "lưới có sẵn" trong giai đoạn đầu ra sáp nhập:

enter image description here

Bảng đối tượng nêu rõ rằng các pixel shader (obj:7) được đặt. Bạn có bất kỳ ý tưởng hoặc gợi ý nào về lý do tại sao nó không xuất hiện trong đường ống đồ họa hay tại sao các khung hình bị bắt trống, mặc dù chúng hoạt động trong chương trình của tôi? Tôi có thể loại trừ rằng nó đóng vai trò từ nơi mã trình đổ bóng được tải, tức là, tôi có sử dụng Compile hoặc CompileFromFile hay không. Một điều tôi vẫn nghi ngờ nhưng không thể xác minh cho đến nay là tài nguyên truy cập không có thứ tự trong trình đổ bóng pixel gây nhầm lẫn cho Visual Studio Graphics Debugger. Bất kỳ gợi ý nào? Cảm ơn bạn trước.

Chỉnh sửa: Điều này không liên quan đến the MSDN walkthrough on misconfigured pipelines, vì Trình phân tích đồ họa hiển thị trình đổ bóng pixel được đặt trong ngữ cảnh thiết bị. Ngoài ra, bộ đệm liên tục được đặt chính xác trong trình đổ bóng pixel.

Trả lời

0

Bạn có sử dụng Cộng đồng Visual Studio không?

Vì tôi đang sử dụng Cộng đồng ở nhà và Chuyên nghiệp ở trường và tôi gặp vấn đề tương tự với phiên bản Cộng đồng, nhưng với Chuyên gia ở trường thì mọi việc đều ổn.

+0

Tôi sử dụng Visual Studio 2013 Ultimate. Tôi nghĩ rằng tôi đã tìm ra lý do cho hành vi, và nó thực sự có vẻ là RWTexture (tức là, tài nguyên có quyền truy cập không theo thứ tự). Khi tôi xóa nó khỏi mã đổ bóng, đầu ra được hiển thị như mong đợi. – hschmauder

1

Bạn cần buộc nó sử dụng gỡ lỗi dọc. Hãy làm theo các bước dưới đây. 1. Mở thuộc tính DirectX bằng Debug -> Graphics-> Bảng điều khiển DirectX. enter image description here

  1. Nhấp vào Chỉnh sửa danh sách, tìm kiếm vsgraphicsdesktopengine.exe và thêm nó vào danh sách.
  2. Chọn lớp Force On for Debug Layer và kiểm tra tùy chọn Force WARP trong thuộc tính DirectX, sau đó áp dụng nó. enter image description here
  3. Chạy gỡ lỗi đồ họa và chụp khung và xem lại đường ống.

Hy vọng điều này có thể giúp bạn!

Trân trọng, Nhóm đồ họa Visual Studio

+0

Điều này không làm việc cho Visual Studio 2015 Update 3 (v14.0.25431.01). Bất kỳ ý tưởng? – Varaquilex

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