hwc: Fix tearing with RGB layer rotation
Pass the acquire fence count to driver on a buffer sync ioctl call for the rotator. The count is always 1 since the ioctl is called once per rotator session. This also means that the rotator has to wait for only 1 layer always. The earlier assumption that in the presence of a session id, the acquire count would be NOP, does not seem to hold with the driver. Change-Id: I986a436194c66e8ce2a2afb363627f72dc6e20cd
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
1b481cb042
commit
25c04d3869
@@ -1275,6 +1275,9 @@ int hwc_sync(hwc_context_t *ctx, hwc_display_contents_1_t* list, int dpy,
|
||||
&currLayer->acquireFenceFd;
|
||||
rotData.rel_fen_fd = &rotReleaseFd; //driver to populate this
|
||||
rotData.session_id = currRot->getSessId();
|
||||
if(currLayer->acquireFenceFd >= 0) {
|
||||
rotData.acq_fen_fd_cnt = 1; //1 ioctl call per rot session
|
||||
}
|
||||
int ret = 0;
|
||||
ret = ioctl(rotFd, MSMFB_BUFFER_SYNC, &rotData);
|
||||
if(ret < 0) {
|
||||
|
||||
Reference in New Issue
Block a user