Tôi đang cố gắng tìm các tình huống trong đó đối tượng đồng bộ hóa có thể được sử dụng trong OpenGL. Sự hiểu biết của tôi là một đối tượng đồng bộ một lần đặt trong dòng lệnh GL (bằng cách sử dụng glFenceSync()) sẽ được báo hiệu sau khi tất cả các lệnh GL được thực hiện và nhận ra. Nếu các đối tượng đồng bộ hóa là nguyên gốc đồng bộ hóa thì tại sao chúng ta không thể báo hiệu chúng? Trường hợp chính xác chức năng này có thể giúp lập trình GL?Sử dụng đối tượng đồng bộ hàng rào trong OpenGL
Kịch bản sau có đúng không?
Thread 1 :
Load model
Draw()
glFenceSync()
Thread 2 :
glWaitSync();
ReadPixels
Use data for subsequent operation.
Điều này có nghĩa là tôi không thể khởi chạy chuỗi 2 trừ khi glFenceSync() được gọi trong Chủ đề 1 không?
"* Điều này có nghĩa là tôi không thể khởi chạy chuỗi 2 trừ khi glFenceSync() được gọi trong Thread 1? *" Vâng, cho đến khi bạn gọi 'glFenceSync', đối tượng đồng bộ chưa tồn tại. Bạn không thể chờ đợi điều gì đó không tồn tại. –