Open olivieryuyu opened 4 years ago
Are you talking about the intro video? In mupen64plus it doesn't shake, but it looks like this:
However, it seems to work fine when running in 1x native res
@loganmc10 I think that video needs "stripped" background render mode.
It's weird, sometimes it seems to do it, sometimes it doesn't even with stripped mode, but in either case I don't see any shaking
I don't see any shaking
I also can't reproduce the issue. I fixed an issue with the intro in "OnePiece" mode. @olivieryuyu please test again. If the issue can be reproduced, please give me your GLideN64.ini, or try to reset the settings.
I think the lack of details in the main post here is being a problem, and then the issue got further derailed by a report of unrelated FMV graphic corruption. Let's try again...
The intro - expansion pak detected, N64 logo, Blizz entertainment and Mass Media logos - are shaking very rapidly - I'd gather once per frame - from left to right. Happening 100% on my end.
EDIT: This seems to go away if Threaded Video is unchecked. EDIT 2: Confirmed. It went away on all future attempts, then came back as soon as I re-enabled Threaded Video.
Hmmm, ok... Probably have to fix this.
Can I get a video of it since I don't see it on my end?
https://drive.google.com/file/d/12lKR2lEWmdqQ-Rh-8NO_l4xbrjA79POf/view
Note that since the video isn't 60 FPS the effect sometimes doesn't sync up with the frames in the video, and it appears to go away for a while. It persisted right up to the title screen. It is in fact doing that every other frame, so 30 times a second.
This seems to only happen with NVidia. I tried a few Android devices and AMD Radeon and it doesn't happen there. It did happen in my Nvidia graphics card though.
It doesn't happen with NVidia if I change "frame buffer swap" to color buffer change.
@gonetz Can you re-open this?
For reference, these are the commands executed on each shake:
2021/05/22,21:43:17.134,opengl_Command.cpp:31,ERROR, "Command: glActiveTexture"
2021/05/22,21:43:17.135,opengl_Command.cpp:31,ERROR, "Command: glBindTexture"
2021/05/22,21:43:17.135,opengl_Command.cpp:31,ERROR, "Command: glTexSubImage2D"
2021/05/22,21:43:17.135,opengl_Command.cpp:31,ERROR, "Command: glUseProgram"
2021/05/22,21:43:17.136,opengl_Command.cpp:31,ERROR, "Command: glBindFramebuffer"
2021/05/22,21:43:17.136,opengl_Command.cpp:31,ERROR, "Command: glDisable"
2021/05/22,21:43:17.136,opengl_Command.cpp:31,ERROR, "Command: glViewport"
2021/05/22,21:43:17.136,opengl_Command.cpp:31,ERROR, "Command: glDrawArrays"
2021/05/22,21:43:17.136,opengl_Command.cpp:31,ERROR, "Command: glEnable"
2021/05/22,21:43:17.137,opengl_Command.cpp:31,ERROR, "Command: glBindFramebuffer"
2021/05/22,21:43:17.137,opengl_Command.cpp:31,ERROR, "Command: glBindFramebuffer"
2021/05/22,21:43:17.137,opengl_Command.cpp:31,ERROR, "Command: glDisable"
2021/05/22,21:43:17.137,opengl_Command.cpp:31,ERROR, "Command: glClearBufferfv"
2021/05/22,21:43:17.138,opengl_Command.cpp:31,ERROR, "Command: glEnable"
2021/05/22,21:43:17.138,opengl_Command.cpp:31,ERROR, "Command: glDisable"
2021/05/22,21:43:17.138,opengl_Command.cpp:31,ERROR, "Command: glDepthMask"
2021/05/22,21:43:17.138,opengl_Command.cpp:31,ERROR, "Command: glClear"
2021/05/22,21:43:17.138,opengl_Command.cpp:31,ERROR, "Command: glEnable"
2021/05/22,21:43:17.139,opengl_Command.cpp:31,ERROR, "Command: glActiveTexture"
2021/05/22,21:43:17.139,opengl_Command.cpp:31,ERROR, "Command: glBindTexture"
2021/05/22,21:43:17.139,opengl_Command.cpp:31,ERROR, "Command: glViewport"
2021/05/22,21:43:17.139,opengl_Command.cpp:31,ERROR, "Command: glDisablei"
2021/05/22,21:43:17.139,opengl_Command.cpp:31,ERROR, "Command: glDepthMask"
2021/05/22,21:43:17.139,opengl_Command.cpp:31,ERROR, "Command: glUseProgram"
2021/05/22,21:43:17.140,opengl_Command.cpp:31,ERROR, "Command: glDisable"
2021/05/22,21:43:17.140,opengl_Command.cpp:31,ERROR, "Command: glDrawArrays"
2021/05/22,21:43:17.140,opengl_Command.cpp:31,ERROR, "Command: glEnable"
2021/05/22,21:43:17.140,opengl_Command.cpp:31,ERROR, "Command: glBindFramebuffer"
2021/05/22,21:43:17.140,opengl_Command.cpp:31,ERROR, "Command: glBindFramebuffer"
2021/05/22,21:43:17.140,opengl_Command.cpp:31,ERROR, "Command: glViewport"
2021/05/22,21:43:17.141,opengl_Command.cpp:31,ERROR, "Command: glEnablei"
2021/05/22,21:43:17.141,opengl_Command.cpp:31,ERROR, "Command: glUseProgram"
2021/05/22,21:43:17.141,opengl_Command.cpp:31,ERROR, "Command: glActiveTexture"
2021/05/22,21:43:17.141,opengl_Command.cpp:31,ERROR, "Command: glBindTexture"
2021/05/22,21:43:17.141,opengl_Command.cpp:31,ERROR, "Command: glDrawArrays"
2021/05/22,21:43:17.142,opengl_Command.cpp:31,ERROR, "Command: WindowsSwapBuffersCommand"
2021/05/22,21:43:17.142,opengl_Command.cpp:31,ERROR, "Command: glBindFramebuffer"
If I make any of them synchronous on the NVidia GPU, the issue goes away. I suspect it may have something to do with the glViewPort command.
I think this must be a driver bug. There is no difference on what is going to the driver in threaded or non-threaded mode. The only difference that I can see is the timing of the calls.
This only happens with NVidia as well. I should probably check if it happens in Android.
Ok, I finally have the problem. It's a problem with the RingBufferPool in the threaded renderer, when setting the initial size to 10MB, it doesn't happen. There seems to be a problem when the buffer is grown to accommodate the large 640x480x4 byte textures that the game uses.
@olivieryuyu Can you verify that it's fixed for now?
run in the intro, the screen shakes