Skip to content

Version 0.27.5

Choose a tag to compare

@ttom795 ttom795 released this 30 Oct 17:57
· 1 commit to main since this release
ceb35d4

Skyrim for Android 0.27.5

APK: Skyrim-0.27.5.apk (arm64-v8a, Android 9+, Vulkan 1.1).
SHA-1 543a78244eafa9881369de47aafa048158702103

New

  • "Extra low" detail preset at the top of the Detail list.
    • Sets the options to their lowest: low textures (mip skip 2), shadows disabled, no decals, no antialiasing or anisotropic filtering, depth of field off, and the "Very short" object fade.
    • Writes your extra-low SkyrimPrefs.ini values: shorter mesh, tree, light and specular LOD distances, shorter terrain and tree draw distances, 100 particles, no skinned trees, no deferred or land shadows, and cheap water.
    • Turns grass off (bAllowCreateGrass, bAllowLoadGrass, bDrawShaderGrass = 0). Any other preset turns grass back on.
  • "Very short" object fade (actors 2.0, items 1.0, objects 2.0). What Extra low uses and you can pick it on its own too.
  • Language dropdown that sets sLanguage in Skyrim.ini. The options are English, French, German, Italian, Spanish, Polish, Czech, Russian and Japanese. You must have language's files in the game directory - namely Skyrim/Data and subfolders.

Performance

  • Windows thread priorities are honored. Skyrim asks for higher priority on its main and render work and lower priority on streaming, IO and background jobs. These requests used to be ignored and now map to Linux nice values (time-critical -10 … idle +15). The log shows the first 40 requests (SetThreadPriority lines).
  • The old logic counted a core as "fast" only if it had at least 3/4 of the biggest core's capacity. On chips with one much faster prime core (Snapdragon 8 Gen 1-3 and similar), only the prime core passed. The code then decided there were "fewer than 2 fast cores", gave up, and let the main thread run on little cores too. That's why high-end phones did worse than lower- to mid- range devices.
  • Skyrim's job and Havok threads poll with Sleep(0), which ran as sched_yield and made up about a quarter of all CPU samples in a profile. To the scheduler those threads looked fully busy, so they were put on the big cores and clocked up, competing with the main thread and heating the phone. After about 32 back-to-back Sleep(0) calls, a worker now sleeps 50 µs instead. The main thread still yields immediately.
  • Finding the real D3D9 object behind each of the game's calls took a global mutex, several times per call and thousands of times per frame but is now a lock-free lookup.

Fixed

  • Disable shadows no longer runs slower than shadows on. In 0.27.3, the option only set the shadow map size and both shadow distances to 0. Skyrim's deferred shadow pass, a full-screen pass plus a blur, still ran every frame, and a map size of 0 isn't a value the engine expects. Untick it and the preset's values come back, or the game's defaults where the preset doesn't set them. Extra low turns this option on.

Please attach port/log.txt from your Skyrim folder to any bug report.