Skip to content

fix(android/vulkan): fix rotated/tiled rendering on portrait Android devices — bump osu-framework to 2026.503.1 - #292

Merged
winnerspiros merged 1 commit into
masterfrom
copilot/fix-vulkan-textures-and-rotation
May 2, 2026
Merged

fix(android/vulkan): fix rotated/tiled rendering on portrait Android devices — bump osu-framework to 2026.503.1#292
winnerspiros merged 1 commit into
masterfrom
copilot/fix-vulkan-textures-and-rotation

Conversation

Copilot AI commented May 2, 2026

Copy link
Copy Markdown

Vulkan on Android rendered with 90° rotation, tiled/duplicated backgrounds, and garbled UI on portrait-panel devices (Adreno 740, e.g. Galaxy S23 Ultra class).

Root cause

winnerspiros/veldrid PR #18 set swapchainCi.preTransform = surfaceCapabilities.currentTransform (e.g. Rotate90KHR) to fix a black screen. This tells the compositor "I've already pre-rotated my content" — but Veldrid never applies an inverse rotation matrix to the scene. The hardware display controller then rotates again on top of an already-unrotated frame, producing the corruption visible in the screenshots.

The black screen that PR #18 "fixed" was actually caused by four separate Adreno 740 driver bugs — all since fixed independently (MAILBOX stalls, oversized texture-update batches, fragment shading rate SIGSEGV, push descriptor null pointer). With those resolved, preTransform = IDENTITY is correct and the compositor handles rotation transparently.

Fix (in winnerspiros/veldrid, veldrid commit b5c3cb2)

// Before (wrong — tells compositor "already rotated", but we never pre-rotate)
var preTransform = surfaceCapabilities.currentTransform;

// After — compositor applies currentTransform transparently, ~0.1 ms cost on Adreno 740
var preTransform = VkSurfaceTransformFlagsKHR.IdentityKHR;

This PR

Bumps ppy.osu.Framework / .Android / .iOS from 2026.502.42026.503.1 (osu-framework pack run #23, commit 02acb26d), which vendors the corrected veldrid.

  • osu.Game/osu.Game.csprojppy.osu.Framework
  • osu.Android.propsppy.osu.Framework.Android
  • osu.iOS.propsppy.osu.Framework.iOS

… fix)

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/6d8b2d97-6416-4955-9f76-204aefed8e4d

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
@winnerspiros
winnerspiros marked this pull request as ready for review May 2, 2026 22:11
Copilot AI review requested due to automatic review settings May 2, 2026 22:11
@winnerspiros
winnerspiros merged commit 778e049 into master May 2, 2026
12 of 14 checks passed
@gitar-bot

gitar-bot Bot commented May 2, 2026

Copy link
Copy Markdown

Important

You are using the Gitar free plan. Upgrade to unlock code review, CI analysis, auto-apply, custom automations, and more.

Gitar

Copilot AI removed the request for review from Copilot May 2, 2026 22:33
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