Với tất cả các chương trình SDL/OpenGL của tôi, tốc độ khung hình bị kẹt ở tốc độ 60 khung hình/giây, vì vậy có vẻ như đã bật, nhưng không phải bởi tôi, cũng như trong mã hoặc cài đặt của tôi. vì vậy tôi muốn bây giờ nếu có một cách để vô hiệu hóa nó, có thể trong một số cài đặt macOS sâu?Cách tắt vsync trên macOS
Trả lời
Sau nhiều năm tìm kiếm một workaround (và với sự giúp đỡ của Brett Hale) đây là những gì làm việc cho tôi - Tôi đã nói thêm rằng đoạn mã vào lúc bắt đầu làm cho vòng lặp của tôi (và không chỉ ở các init, như Apple dường như để thiết lập lại các thiết lập SwapInterval mỗi lần ...) và là cuối cùng có thể có tốc độ khung hình unsynchronize:
#ifdef __APPLE__
GLint sync = 0;
CGLContextObj ctx = CGLGetCurrentContext();
CGLSetParameter(ctx, kCGLCPSwapInterval, &sync);
#endif
Đừng quên bao gồm <OpenGL/gl.h>
Nó không phải là đẹp nhất giải pháp nhưng nó thực sự là người duy nhất tôi thấy rằng công việc như một sự quyến rũ.
Chào mừng bạn đến với SO. Tôi đã vạch ra cách tiếp cận here cho một câu hỏi tương tự. Bạn nên xem xét rằng hầu hết các màn hình LCD của Mac bị khóa đến 60Hz và phần cứng gần đây hơn được giới hạn ở 120Hz. Vô hiệu hóa vsync chỉ đơn giản là có thể dẫn đến các chu kỳ CPU/GPU bị lãng phí và có thể giới thiệu các tạo phẩm rách.
Điều này cho phép tôi nhận khoảng ~ 700 khung hình/giây trên MacBook Pro của tôi.
- Download Graphics Tools for Xcode - Late August 2014
- Cài đặt hoặc chỉ gắn Công cụ đồ họa
- mở Quartz gỡ lỗi
- Tới Tools -> Hiển thị chùm Sync Công cụ
- Chọn Disable chùm Đồng bộ
Nó không phải là vĩnh viễn , hoàn hảo cho thử nghiệm/đo điểm chuẩn.
Oh tiện ích của tôi, sau tất cả thời gian đó !! Cảm ơn bạn rất nhiều! – Nox
tôi đã thử điều này và không có gì xảy ra. Tôi đang làm gì sai? –
1. Kiểm tra kỹ xem ứng dụng bạn đang thử nghiệm có thực sự vượt quá 60 khung hình/giây hay không; 2. Giải pháp này là dành cho Mavericks 10.9, chưa được kiểm tra cho Yosemite hoặc El Capitan – cevaris
Vâng, tôi đã ngừng tìm kiếm một giải pháp ... Cảm ơn! – Nox