2012-05-30 14 views
6

Điều này dường như là một vấn đề GPU Fire-cụ thể, và tôi đánh giá cao bất kỳ sự giúp đỡ hoặc gợi ý.Kindle cháy hitches và tham nhũng kết cấu tại 60 khung hình/giây

Đối với hầu hết các phần, trò chơi phòng thủ tháp của tôi có thể chạy 60 khung hình/giây ngay cả với hàng chục kẻ thù và tháp đều đang chụp theo mọi cách. Tuy nhiên, tại thời điểm dường như ngẫu nhiên (ngay cả với không có gì xảy ra - như ngồi trên menu chính) rất đồng đều khoảng cách 400ms cản trở tạm dừng trò chơi tại một khoảng thời gian khoảng 2-3 giây. Sau đó đột nhiên các hitches sẽ biến mất và 16x16 pixel khối kết cấu sẽ ngẫu nhiên không hiển thị.

Hai trục trặc này dường như độc quyền lẫn nhau, như tôi đã nói có thể được kích hoạt đơn giản bằng cách khởi động trò chơi và điều hướng từ menu chính đến màn hình chọn mức, nơi tài nguyên tối thiểu được tải và ít logic trò chơi đang diễn ra. Tôi sử dụng OpenSL cho các hiệu ứng âm thanh, và tôi lưu ý rằng việc vô hiệu hóa sfx đã thay đổi thời gian kéo dài thành 280ms.

Sau đó, tôi đã buộc tốc độ khung hình từ 60 khung hình/giây đến 30 khung hình/giây (bằng cách chèn một giấc ngủ vào vòng kiểm tra khung), và cả hai trục trặc biến mất hoàn toàn.

Đây là nắp màn hình thể hiện kết cấu không hiển thị. Lỗi này xảy ra trong tất cả các bề mặt hiển thị 32 bit bất kể giá trị độ sâu/stencil và cho dù có bật hay tắt màu.

Cảm ơn bạn!

EDIT: Trên thực tế, rõ ràng kết cấu nhấp nháy xảy ra ở bất kỳ tốc độ khung hình nào, tuy nhiên, ở đâu đó trong khoảng từ 40 đến 45 khung hình/giây thì trục trặc 400ms biến mất.

level select screen

main menu

+0

Còn giới hạn FPS khác thì sao? ví dụ. 45/75 –

+0

Trên thực tế, rõ ràng kết cấu nhấp nháy xảy ra ở tốc độ khung hình bất kỳ, tuy nhiên, ở đâu đó trong khoảng từ 40 đến 45 khung hình/giây thì trục trặc 400ms biến mất ... Rất chắc chắn có liên quan, tuy nhiên không hoàn toàn loại trừ ở 60 khung hình/giây. Tỷ lệ xảy ra và đi của họ có tương quan cao. – Ajas

Trả lời

2

Ok, đây là một trình điều khiển lỗi rất tinh tế không nhất thiết phải cụ thể để Kindle Fire. Tôi hy vọng sẽ giúp ai đó tránh được nỗi đau tương tự trong tương lai. Tôi đã vạch ra các triệu chứng rõ ràng, nhưng nguồn gốc của lỗi xuất phát từ việc thiết lập hình cắt.

Về cơ bản, chúng tôi có nhiều yếu tố giao diện người dùng hoạt ảnh thu phóng và tắt màn hình, vì vậy chúng tôi khá thú vị với hình cắt ngang. Trình kích hoạt dường như đang thiết lập hình cắt ngang trực quan, sau đó hiển thị bên ngoài theo chiều ngang. Làm như vậy đặt GPU ở một số trạng thái hơi say, có vẻ không rõ ràng, nhưng dần dần trở nên tồi tệ hơn.

Ngoài ra, điều này dường như đã khắc phục lỗi mà chúng tôi đã có trên Droid RAZR, có GPU chung với Fire. Lỗi là một đóng băng 5 giây trong trò chơi mà chúng tôi nhìn thấy trong logcat:

W/SharedBufferStack(14208): waitForCondition(LockCondition) timed out (identity=173, status=0). CPU may be pegged. trying again. 

Rõ ràng các loại lỗi rất khó để theo dõi và xác định điều kiện chính xác, nhưng nó chắc chắn có liên quan đến render bên ngoài của các hình cắt kéo ngoài màn hình.

+0

Chỉ cần rõ ràng: giải pháp cho sự bất ổn, đóng băng và hiển thị là cắt clip hình cắt dọc sang màn hình trước khi gọi glScissor(). – Ajas