Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preview 1.82.16 Hotfix Release #679

Merged
merged 31 commits into from
Feb 3, 2025
Merged

Preview 1.82.16 Hotfix Release #679

merged 31 commits into from
Feb 3, 2025

Conversation

bagusnl
Copy link
Member

@bagusnl bagusnl commented Jan 31, 2025

What's changed? - 1.82.16

  • [Fix] Errors when updating game that uses HDiff, by @neon-nyan
  • [Imp] Update dependencies, by @neon-nyan
  • [Imp] Reduce CPU overhead by swapping SoftwareBitmap to CanvasDevice and CanvasBitmap to draw video frames while "Acrylic Effect" mode enabled.
    • This reduces CPU overhead by removing routines to copy the video frames from software-based SoftwareBitmap, and instead use Direct3D-based CanvasBitmap as the frame source.
    • However, this improvement still runs single-threaded due to the copy routine still being done on the same thread as the UI thread.
  • [Imp] Execute metadata config download and loading in parallel.
    • Instead of running the metadata download/update/load routine sequentially, the process will now be running in parallel at the same time. Making the metadata loading runs faster.
  • [Imp] Reduce UI hangs while switching between regions.

Templates

Changelog Prefixes
  **[New]**
  **[Imp]**
  **[Fix]**
  **[Loc]**
  **[Doc]**

@bagusnl bagusnl self-assigned this Jan 31, 2025
+ Also fix rare race condition where the launcher will reports "KeyNotFoundException" while getting CurrentGameProperty on cached GameVault
Why did I do this in the first place?
It's already a reference type tho 🤦
Copy link

github-actions bot commented Jan 31, 2025

Qodana for .NET

It seems all right 👌

No new problems were found according to the checks applied

☁️ View the detailed Qodana report

Contact Qodana team

Contact us at [email protected]

@@ -15,6 +15,7 @@
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Runtime.CompilerServices;

Check warning

Code scanning / QDNET

Redundant using directive Warning

Using directive is not required by the code and can be safely removed
@bagusnl
Copy link
Member Author

bagusnl commented Feb 1, 2025

PS: Duplicated code warning in SQ can be ignored, this happens due to XAML and JSON handler codes (mostly) that can't be deduplicated

- Switch to more thread-safe CanvasVirtualImageSource.
  - This canvas type can be used in non-UI thread and can be shared between other threads while drawing frames.
  - Though, the canvas still need to be disposed in the UI thread.
- Fix compilation error while enabling FFmpeg as MediaSource.
- Ignore throwing on FrameGrabberEvent only on release build.
- Fix crash while InterpolateVolumeChange is performing volume change when _currentMediaPlayer is null.
- Always ignore alpha channel.
- Pre-cached drawing area of the canvas.
- Favor to use Task instead of ValueTask for some methods
+ This allows other frames to be skipped if the first frame doesn't have enough time to be drawn between other frames (in some cases, devices with lower specs).
Copy link

sonarqubecloud bot commented Feb 2, 2025

@neon-nyan
Copy link
Member

As per internal discussion, this PR will be merged to preview

@neon-nyan neon-nyan merged commit 5cd5e4b into preview Feb 3, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants