Discussion:
Review Request 125659: fix triple buffer re-detection and doublebuffer behavior (on nvidia at least)
Thomas Lübking
2015-10-16 14:10:40 UTC
Permalink
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125659/
-----------------------------------------------------------

Review request for kwin, Fredrik Höglund and Martin GrÀßlin.


Bugs: 346275 and 351700
https://bugs.kde.org/show_bug.cgi?id=346275
https://bugs.kde.org/show_bug.cgi?id=351700


Repository: kwin


Description
-------

commit #1
re-detect triple-buffering after compositor resume

and also hint the proper blocking condition (if turning
off swap control)

The detection vars are global, but the swap control requirement
is not preserved, so the detection must re-occur.

Alternatively (and better) the swap control should be saved
and re-applied, but there's trouble on initial detection

commit #2
wait for GL after swapping

otherwise at least on the nvidia blob the swapping
doesn't block even for double buffering


Diffs
-----

eglonxbackend.cpp 314bfb2
glxbackend.cpp 0abb1e3

Diff: https://git.reviewboard.kde.org/r/125659/diff/


Testing
-------


Thanks,

Thomas LÃŒbking
Martin Gräßlin
2015-10-29 09:47:40 UTC
Permalink
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125659/#review87654
-----------------------------------------------------------


the changes seem valid to me. Did anyone from the bug reports already test them?

- Martin GrÀßlin
Post by Thomas Lübking
-----------------------------------------------------------
https://git.reviewboard.kde.org/r/125659/
-----------------------------------------------------------
(Updated Oct. 16, 2015, 4:10 p.m.)
Review request for kwin, Fredrik Höglund and Martin GrÀßlin.
Bugs: 346275 and 351700
https://bugs.kde.org/show_bug.cgi?id=346275
https://bugs.kde.org/show_bug.cgi?id=351700
Repository: kwin
Description
-------
commit #1
re-detect triple-buffering after compositor resume
and also hint the proper blocking condition (if turning
off swap control)
The detection vars are global, but the swap control requirement
is not preserved, so the detection must re-occur.
Alternatively (and better) the swap control should be saved
and re-applied, but there's trouble on initial detection
commit #2
wait for GL after swapping
otherwise at least on the nvidia blob the swapping
doesn't block even for double buffering
Diffs
-----
eglonxbackend.cpp 314bfb2
glxbackend.cpp 0abb1e3
Diff: https://git.reviewboard.kde.org/r/125659/diff/
Testing
-------
Thanks,
Thomas LÃŒbking
Thomas Lübking
2015-10-29 12:50:08 UTC
Permalink
Post by Thomas Lübking
Post by Martin Gräßlin
the changes seem valid to me. Did anyone from the bug reports already test them?
Jupp, general success is confirmed (also by me - it really lags stunningly on "false" blocking assumption)

I've added a slight modification to only wait in case we're blocking (and that's been detected) to
a) not cause overhead in triple buffering
b) "allow" the user to enforce KWIN_TRIPLE_BUFFERING on double buffering nvidia systems since as long as the driver behaves like this, this comes w/o any major drawbacks (swapping doesn't block, so we don't have a busy wait and timing is "correct" as well) - in case anyone wants to run double buffering bc. of gaming

I still need to comment on the two bugs to clarify some things on their test cases ;-)


- Thomas


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125659/#review87654
-----------------------------------------------------------
Post by Thomas Lübking
-----------------------------------------------------------
https://git.reviewboard.kde.org/r/125659/
-----------------------------------------------------------
(Updated Okt. 16, 2015, 2:10 nachm.)
Review request for kwin, Fredrik Höglund and Martin GrÀßlin.
Bugs: 346275 and 351700
https://bugs.kde.org/show_bug.cgi?id=346275
https://bugs.kde.org/show_bug.cgi?id=351700
Repository: kwin
Description
-------
commit #1
re-detect triple-buffering after compositor resume
and also hint the proper blocking condition (if turning
off swap control)
The detection vars are global, but the swap control requirement
is not preserved, so the detection must re-occur.
Alternatively (and better) the swap control should be saved
and re-applied, but there's trouble on initial detection
commit #2
wait for GL after swapping
otherwise at least on the nvidia blob the swapping
doesn't block even for double buffering
Diffs
-----
eglonxbackend.cpp 314bfb2
glxbackend.cpp 0abb1e3
Diff: https://git.reviewboard.kde.org/r/125659/diff/
Testing
-------
Thanks,
Thomas LÃŒbking
Thomas Lübking
2015-10-30 20:59:48 UTC
Permalink
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125659/
-----------------------------------------------------------

(Updated Okt. 30, 2015, 8:59 nachm.)


Review request for kwin, Fredrik Höglund and Martin GrÀßlin.


Changes
-------

Do not wait once triple buffering is detected


Bugs: 346275 and 351700
https://bugs.kde.org/show_bug.cgi?id=346275
https://bugs.kde.org/show_bug.cgi?id=351700


Repository: kwin


Description
-------

commit #1
re-detect triple-buffering after compositor resume

and also hint the proper blocking condition (if turning
off swap control)

The detection vars are global, but the swap control requirement
is not preserved, so the detection must re-occur.

Alternatively (and better) the swap control should be saved
and re-applied, but there's trouble on initial detection

commit #2
wait for GL after swapping

otherwise at least on the nvidia blob the swapping
doesn't block even for double buffering


Diffs (updated)
-----

eglonxbackend.cpp 314bfb2
glxbackend.cpp 0abb1e3

Diff: https://git.reviewboard.kde.org/r/125659/diff/


Testing
-------


Thanks,

Thomas LÃŒbking
Martin Gräßlin
2015-11-02 07:10:42 UTC
Permalink
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125659/#review87836
-----------------------------------------------------------

Ship it!


I'm fine with it going in and giving it more exposing to testing.

- Martin GrÀßlin
Post by Thomas Lübking
-----------------------------------------------------------
https://git.reviewboard.kde.org/r/125659/
-----------------------------------------------------------
(Updated Oct. 30, 2015, 9:59 p.m.)
Review request for kwin, Fredrik Höglund and Martin GrÀßlin.
Bugs: 346275 and 351700
https://bugs.kde.org/show_bug.cgi?id=346275
https://bugs.kde.org/show_bug.cgi?id=351700
Repository: kwin
Description
-------
commit #1
re-detect triple-buffering after compositor resume
and also hint the proper blocking condition (if turning
off swap control)
The detection vars are global, but the swap control requirement
is not preserved, so the detection must re-occur.
Alternatively (and better) the swap control should be saved
and re-applied, but there's trouble on initial detection
commit #2
wait for GL after swapping
otherwise at least on the nvidia blob the swapping
doesn't block even for double buffering
Diffs
-----
eglonxbackend.cpp 314bfb2
glxbackend.cpp 0abb1e3
Diff: https://git.reviewboard.kde.org/r/125659/diff/
Testing
-------
Thanks,
Thomas LÃŒbking
Thomas Lübking
2015-11-11 21:36:09 UTC
Permalink
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125659/
-----------------------------------------------------------

(Updated Nov. 11, 2015, 9:36 p.m.)


Status
------

This change has been marked as submitted.


Review request for kwin, Fredrik Höglund and Martin GrÀßlin.


Changes
-------

Submitted with commit 0788890233850ca598af55abe52641d7b4254f14 by Thomas LÃŒbking to branch master.


Bugs: 346275 and 351700
https://bugs.kde.org/show_bug.cgi?id=346275
https://bugs.kde.org/show_bug.cgi?id=351700


Repository: kwin


Description
-------

commit #1
re-detect triple-buffering after compositor resume

and also hint the proper blocking condition (if turning
off swap control)

The detection vars are global, but the swap control requirement
is not preserved, so the detection must re-occur.

Alternatively (and better) the swap control should be saved
and re-applied, but there's trouble on initial detection

commit #2
wait for GL after swapping

otherwise at least on the nvidia blob the swapping
doesn't block even for double buffering


Diffs
-----

eglonxbackend.cpp 314bfb2
glxbackend.cpp 0abb1e3

Diff: https://git.reviewboard.kde.org/r/125659/diff/


Testing
-------


Thanks,

Thomas LÃŒbking

Loading...