Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 3.2k
    • Issues 3.2k
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1k
    • Merge requests 1k
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MesaMesa
  • mesamesa
  • Issues
  • #6024
Closed
Open
Issue created Feb 11, 2022 by alexvorxx@alexvorxx

Turnip KGSL + Zink (via Xlib) on Exagear (Android) - GL_OUT_OF_MEMORY in some games

System information

  • OS: Android 9
  • GPU: Qualcomm Adreno 630
  • Kernel version: 4.9.112-perf-g526fc33
  • Mesa version: 22.1.0-devel
  • Xserver version: ExaGear Emulator X Server (unknown implementation)
  • Wine/Proton version: Wine 6.0 inside ExaGear (x86 Emulator)

Describe the issue

I recently succeeded to implement direct 3D GPU acceleration in Exagear Windows Emulator for Android (an x86 emulator which emulates an Ubuntu x86 system with Wine installed on it to run x86 Windows games on Android). For this, the x86 libraries of Mesa Turnip KGSL driver was assembled.

Also, to get OpenGL support in Exagear, x86 libraries of Mesa Zink was assembled working through Xlib. To successfully build and fix the context error, I had to make the following small changes in the code:

https://github.com/Grima04/mesa-zink-xlib/commits?author=Grima04

https://github.com/alexvorxx/mesa-zink-xlib/commits?author=alexvorxx

Turnip + Zink works well in many OpenGL and DirectX8/9 tests, but periodically some games crash on loading. This is accompanied by errors in the log: VK_ERROR_MEMORY_MAP_FAILED, GL_OUT_OF_MEMORY in glTexSubImage, GL_OUT_OF_MEMORY in glCompressedTexSubImage2D, GL_OUT_OF_MEMORY in glGetCompresssedTexImage and similar. Also noticed that errors appear less often if use ZINK_DESCRIPTORS=lazy command.

A list of games/tests includes:

  • Tests wglgears, Furmark, GPU Caps Viewer (OpenGL) - works fine;

  • Tests CubeMap, SphereMap, StencilMirror (DX9) - works fine;

  • Half Life, Cry of Fear, Hitman Contracts (OpenGL), Half Life 2, Dead Space, Alan Wake (DX9) - works fine;

  • Portal Reloaded, The Stanley Parable, SCP Containment Breach (DX9) - periodically crash when loading a new game;

  • GTA IV, Battlefield 1942, Serious Sam 3 (DX9) - only renders a black screen on loading (or freezes).

Log files as attachment

A typical log, when game crashes x86-stderr.txt

Screenshots/video files (if applicable)

  • Test Furmark (OpenGL) Screenshot_2022-02-11-21-48-38-039_com.eltechs.ed

  • Test GPU Caps Viewer (OpenGL) Screenshot_2022-02-11-21-49-27-638_com.eltechs.ed

  • Test StencilMirror (DX9) Screenshot_2022-02-11-21-48-08-730_com.eltechs.ed

  • Cry of Fear (OpenGL, 800x600) Screenshot_2022-02-11-22-04-50-513_com.eltechs.ed

  • The Stanley Parable (DX9, 800x600) Screenshot_2022-02-11-22-00-29-095_com.eltechs.ed

  • Alan Wake (DX9, 1024x768) Screenshot_2022-02-11-18-13-46-819_com.eltechs.ed

  • Additional video tests in Wine 3.0 on Exagear

Edited Feb 12, 2022 by alexvorxx
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking