YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
26 stars 8 forks source link

In Game: [Windows] MP4 video playback freezes #8451

Open shichen85 opened 6 days ago

shichen85 commented 6 days ago

Description

Might be related to what's going on in https://github.com/YoYoGames/GameMaker-Bugs/issues/8450, but this is for the Windows export.

We are noticing that the MP4 video we have is freezing in the latest runtime 2024.1100.0.708.

Steps To Reproduce

  1. Run the project for Windows VM under the gamepipe_test config
  2. Start a new save, select any difficulty, and it will play the opening cutscene, which is the included file opening.mp4
  3. Export built with runtime 2024.800.0.642 plays fine, but with runtime 2024.1100.0.708, the video plays with choppy start and then freezes.

Which version of GameMaker are you reporting this issue for?

IDE v2024.1100.0.687 Runtime v2024.1100.0.708

Which operating system(s) are you seeing the problem on?

Windows 10.0.22000.0

238197fb-3246-4a62-9b44-5cec6f9d898f

shichen85 commented 6 days ago

https://github.com/user-attachments/assets/b42eba1e-b0ed-4a87-95f3-46f3ecf81079 This video shows that the playback starts freezing at the 00:12 mark

jackerley commented 6 days ago

Hi @shichen85 I can't reproduce this, it plays just fine in Windows VM and YYC for me. What are the machine specs that you are running it on?

shichen85 commented 6 days ago

@jackerley Hello, I have the issue on the following two Windows machines:

Processor:  Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz   3.60 GHz
Installed RAM:  32.0 GB
System type:    64-bit operating system, x64-based processor
Graphics Card: Nvidia GeForce GTX 1050 Ti
Driver Version: 561.09
Processor:    Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz   2.80 GHz
Installed RAM:    32.0 GB (31.9 GB usable)
System type:    64-bit operating system, x64-based processor
Graphics Card: Nvidia GeForce GTX 1070 with Max-Q Design
Driver Version: 566.14

On the 2.80GHz machine, I am also noticing that the first few seconds of the MP4 video is played with stuttering. In the following recording, you can see that 00:01 - 00:08 plays with stuttering, but 00:09 onwards plays with normal speed, until it freezes at 00:21 :

https://github.com/user-attachments/assets/e03e6700-d4df-4cec-8267-4d45fcf93f03

shichen85 commented 6 days ago

Running the YYC through Visual Studio, I can see that shortly before the freeze, the Output logs shows the following message: Exception thrown at 0x00007FF9E81D2BDC (KernelBase.dll) in Crashlands2.exe: WinRT originate error - 0xC00D4A3E : 'The sample allocator is currently empty, due to outstanding requests.'.

The full log is attached. video_debug.txt

Running the minimal project from https://github.com/YoYoGames/GameMaker-Bugs/issues/8450 in YYC, which was able to play the mp4 without freeze, does not display this error message, which suggests the error message is related to the freeze.

shichen85 commented 5 days ago

On coworkers' machines, the video plays with decreased speed but does not freeze. Their specs are:

Processor   AMD Ryzen 7 5800H with Radeon Graphics            3.20 GHz
Installed RAM   16.0 GB (13.9 GB usable)
System type 64-bit operating system, x64-based processor
CPU: AMD Ryzen 9 5900X 12-Core Processor 3.70 GHz
Ram available: 21.8 GB
Graphics type and speed: NVIDIA GeForce RTX 3080 1260 MHz
Graphics driver version: 32.0.15.6094 (driver date is 8/14/2024) with DirectX version 12 (FL 12.1)

https://github.com/user-attachments/assets/8af23ee5-1afa-43eb-af3b-5881059c35d2

shichen85 commented 4 days ago

This is from another coworker:

Windows 11 64-bit
GPU: Nvidia RTX 3080
Driver 565.9
CPU: 12 Gen Intel Core i7 12700KF
RAM: 64gb Installed, 45.9gb available

For them, running the project from the IDE for Windows VM run also plays video with decreased speed, but it does not freeze. For YYC run, the video plays at normal speed when the game window is focused, but if it is in the background, it plays with decreased speed.

BscotchSeth commented 3 days ago

@jackerley We've found the reason for different people getting different results! Video playback seems tied to the frame rate the game is running at. We got the following results on my 144hz monitor, while using game_set_speed() to control the game's FPS:

jackerley commented 5 hours ago

Thanks @BscotchSeth that helps a lot. I have some changes that I was working on and it's nice to be able to confirm they fix this issue under these circumstances.