Request to Re-Openvery-poor-framepacing-and-performance-when-using-xorg-rotation/178451 due to NOT being fixed in 32.7.1

32.7.1 images and debs have been released. @WayneWWW stated this issue was fixed in this release and it is not.

I am requesting this issue to be re-opened so that it can continue to be tracked there: Very Poor Framepacing and Performance When using Xorg Rotation

for reference, the issue can easily be observed by compiling this test code from there and rotating the display or enabling the compositor GitHub - theofficialgman/gl-gsync-demo: Unofficial OpenGL VSync Demo for Linux

May I know where do you get it? We havn’t published it yet officially. Thanks

someone opened up the release pages today. Jetson Linux R32.7.1 Release Page | NVIDIA Developer
JetPack SDK 4.6.1 | NVIDIA Developer

images can be downloaded and the BSP also contains the debs

Hi,

I just double confirmed the patch is already merged in last Sep 2021 and rel-32.7 codebase has it too.

The last time we used below method to validate your issue and they are not able to reproduce issue after we merged the patch.

case 1 .Enable forcecomposition + set vsync/flipping
case 2. Enable forcecomposition" + triplebuffering + set vsync/flipping

Could you confirm if the test is still same here? I remember that after enabling ForceCompositionPipeline, this issue would be much easier to reproduce even on your side.

yes the test (compiled and run by doing):

sudo apt install freeglut3-dev libglew-dev libxnvctrl-dev
git clone https://github.com/theofficialgman/gl-gsync-demo
cd gl-gsync-demo
make
./gl-gsync-demo

still has the issue on all combinations of those settings.
the results are different depending on if I use ubuntu unity, or LXDE with compton so I will list both:

Unity:

no rotation, composition pipeline OFF, vsync on, no triple buffering: no stutter and no tearing
no rotation, composition pipeline ON, vsync on, no triple buffering: stutter and no tearing
no rotation, composition pipeline OFF, vsync on, triple buffering: no stutter and no tearing
no rotation, composition pipeline ON, vsync on, triple buffering: stutter and no tearing

rotation, composition pipeline OFF, vsync on, no triple buffering: stutter and no tearing
rotation, composition pipeline ON, vsync on, no triple buffering: stutter and no tearing
rotation, composition pipeline OFF, vsync on, triple buffering: stutter and no tearing
rotation, composition pipeline ON, vsync on, triple buffering: stutter and no tearing

LXDE with compton:

no rotation, composition pipeline OFF, vsync on, no triple buttering: STUTTER and no tearing
no rotation, composition pipeline ON, vsync on, no triple buffering: stutter AND tearing
no rotation, composition pipeline OFF, vsync on, triple buffering: stutter and no tearing
no rotation, composition pipeline ON, vsync on, triple buffering: stutter and tearing

rotation, composition pipeline OFF, vsync on, no triple buffering: stutter and tearing
rotation, composition pipeline ON, vsync on, no triple buffering: stutter and tearing
rotation, composition pipeline OFF, vsync on, triple buffering: stutter and no tearing
rotation, composition pipeline ON, vsync on, triple buffering: stutter and tearing

so pretty much LXDE/compton is useless in all scenarios now, even in the default no rotation scenario where there is stutter where there was not before. and the stutter has not been removed in any scenario when the composition pipeline is ON or the there is screen rotation.

you may also whish to use the flappy bird test game which is easier to tell if there will be tearing with greater gpu load:

sudo apt install --assume-yes libsdl1.2-dev libsdl2-mixer-dev libsdl2-dev libsdl-mixer1.2-dev libsdl2-image-dev
sudo apt install --assume-yes libsndio*
git clone https://github.com/theofficialgman/flappy.git --depth=1
cd flappy
make 5c_1
cd Builds/Linux
./5c_1

Is jetson_clocks pulling up when you ran the test?

jetson_clocks (the script/command) is not used when running these tests. As before, it may improve the stutter and tearing but is not a fix.

Again, that is just to align the test environment.

I guess this issue only has 2 possibilities

  1. The issue was fixed. But some patch merged later ruined it.

  2. The issue was not fixed, but somehow it does not happen or maybe we didn’t observe it in the last few tests after we merged the patch last year.

Anyway, we will check it again.

I was requested to test this on t194. And I have replicated the issue on 32.7.1 on Xavier NX using unity.

No rotation and no settings changes: no stutter
Rotated clockwise: stuttering
No rotation plus full composition pipeline: stuttering

@kayccc I would also appreciate if you remove the unlisting from this post (re-list this post, whatever you want to call it).

No worry about this. This issue has been back to our list again. We are still checking it.

I am asking for it to be re-listed, because this topic is hard to find on the forum due to it being unlisted (embedded links to it do not work and just print a cryptic “could not be opened in your region” error).
image

@WayneWWW any update on this issue from the devs? its been over a month now since the release of 32.7.1

Our internal team is working on this issue, thanks

any more updates on this? I have also been informed by a developer to tell you about more issues with your framebuffer implementation.

he says that blit is significantly worse that flip in the same scenario (when set in the driver). He believes you must be doing this via memcpy or line stride copying instead of a texture copy.

another month has gone by. @kayccc any updates?

@WayneWWW its now been over three months since I notified this bug is still not fixed. Are there any updates?

If there have been changes to attempt to fix this, I would appreciate a patched deb for the current release with the changes so that I can verify it is fixed before another year passes again.

Hi,
This is considered to be a known issue on Jetpack 4. We are working on Jetpack 5 production release and will check this on Xavier/Orin. For using Jetpack 4+ Jetson Nano, please not to use this mode.