Prerequisites
Game Version
Operating System
Bug Description
I am experiencing severe graphical corruption and an eventual crash when running Command & Conquer: Generals Zero Hour through the Android port on a device with a PowerVR BXM-8-256 GPU.
The game is able to start normally and reach the main menu. Some parts of the interface and 3D rendering work initially, but the graphics quickly become severely corrupted.
The corruption includes:
- large magenta/purple areas;
- severely distorted and stretched geometry;
- corrupted textures;
- incorrect rendering of terrain and objects;
- geometry appearing in completely wrong locations;
- severe graphical artifacts during cutscenes;
- very heavy stuttering during 3D scenes.
Despite the corruption, the game is able to proceed surprisingly far. The intro video/cutscene can play, and after changing the DXVK configuration the game can proceed into another rendered scene and attempt to transition into actual gameplay.
Eventually, when the game is supposed to enter normal gameplay, it crashes.
The original PC version of the game works correctly on my PC using the same game files, so the game data itself appears to be valid.
I initially suspected missing game resources, especially shader resources. I copied the original shaders.big from the PC installation into the Android game directory. This did not resolve the problem.
The shader resources are detected and loaded, so the issue does not appear to be simply caused by missing shader files.
I suspect that the main problem may be related to the interaction between the current DXVK implementation and the PowerVR Vulkan driver, but I would like to know whether the developers have identified a known compatibility issue with PowerVR GPUs.
Crash
The native crash eventually occurs inside:
libdxvk_d3d9.so
The crash is reported as:
SIGSEGV (signal 11)
with:
fault_addr = 0x0
and:
PC = 0x0
The crash happens after the game has already initialized the renderer and progressed through the intro/cutscene sequence.
There are also OpenAL errors shortly before the crash, but I am not sure whether these are the cause or merely a secondary effect of the rendering/runtime problem.
DXVK configuration test
Changing the configuration from:
dxvk.logLevel = none
d3d9.samplerAnisotropy = 16
to:
dxvk.logLevel = debug
d3d9.samplerAnisotropy = 0
changed the behavior.
With the debug configuration the game progresses further instead of immediately crashing after the intro video. It attempts to render the following scene and gets closer to actual gameplay, but the graphics remain severely corrupted and the game eventually crashes.
This makes me suspect that the rendering path/resource handling may be involved in the crash.
I would appreciate any information about PowerVR compatibility, required Vulkan features, known DXVK limitations, or recommended configuration/workarounds for this GPU.
Reproduction Steps
- Install and launch the GeneralsZH Android port v1.1.4 on an OUKITEL WP55 Pro.
- Use the original Command & Conquer: Generals Zero Hour game files from a working PC installation.
- Start the game normally.
- Allow the game to load the main menu and start the intro/cutscene.
- Continue until the game attempts to render the next 3D scene or transition into gameplay.
- Observe the severe graphical corruption: magenta/purple geometry, stretched polygons, corrupted textures and incorrect 3D rendering.
- Continue until the game attempts to enter actual gameplay.
- The application eventually crashes with a native SIGSEGV.
- The crash backtrace points into libdxvk_d3d9.so.
Optional configuration test:
- Set
dxvk.logLevel = debug.
- Set
d3d9.samplerAnisotropy = 0.
- Launch the game again.
- The game progresses further than with the original configuration, but the graphical corruption remains.
- The game eventually crashes during the transition into gameplay.
Additional Context
- Device: OUKITEL WP55 Pro
- SoC: MediaTek Dimensity 7025 / MT6855
- GPU: PowerVR BXM-8-256
- GPU vendor: Imagination Technologies
- GPU type: Integrated GPU
- Vendor ID: 0x1010
- Device ID: 0x35010101
- Android: Android 15
- Vulkan API: 1.1.170
- GPU driver version: 1.473.1398
- OpenGL ES: 3.2
Vulkan / DXVK
DXVK detects the GPU as:
PowerVR BXM-8-256
The Vulkan capabilities reported by the device include Vulkan 1.1 functionality.
Important feature information observed during initialization includes:
- synchronization2 = 1
- timelineSemaphore = 1
- hostQueryReset = 1
- dynamicRendering = 0
- maintenance4 = 0
Some newer Vulkan features/extensions requested by the DXVK code path are not available on this device.
The Android port uses the D3D8/D3D9 → DXVK → Vulkan rendering path.
The device is not an Adreno GPU. The actual Vulkan implementation is the native PowerVR driver.
Game files
The game files were copied from a PC installation where Command & Conquer: Generals Zero Hour works correctly.
I also tested the original shaders.big from the PC installation.
The Android game directory contains the normal Generals/Zero Hour BIG archives, including the shader archive.
Adding the original shaders.big did not fix the problem.
Rendering symptoms
The problem is not simply that the game fails to render.
The renderer actually initializes and produces:
- working UI;
- rendered cutscenes;
- terrain;
- units;
- buildings;
- effects;
but many of these are severely corrupted.
The corruption can change from scene to scene. Examples include large magenta surfaces, stretched geometry, incorrect textures and large sections of the scene being rendered in the wrong place.
The game can therefore reach gameplay initialization before crashing.
Crash
The final native crash is:
SIGSEGV (signal 11)
fault_addr = 0x0
PC = 0x0
with the backtrace pointing into:
libdxvk_d3d9.so
There are also OpenAL errors shortly before the final crash.
I am providing the logs and screenshots because I am not sure whether the OpenAL errors are an independent problem or a consequence of the renderer/runtime becoming unstable.
Suspected cause
My current suspicion is a compatibility problem between the DXVK version/fork used by the Android port and the Vulkan implementation of the PowerVR BXM-8-256.
I am not claiming that this is definitely the cause.
I would particularly like to know whether:
- PowerVR B-Series GPUs are currently supported.
- PowerVR BXM-8-256 has known issues with this DXVK implementation.
- Vulkan 1.1 devices without dynamic rendering or maintenance4 require a special DXVK fallback.
- There are known resource-management or synchronization problems on PowerVR.
- A different DXVK version/configuration should be used for this GPU.
- The OpenAL errors are related to the crash or are a separate issue.
generalszh-logs.zip
Prerequisites
Game Version
Operating System
Bug Description
I am experiencing severe graphical corruption and an eventual crash when running Command & Conquer: Generals Zero Hour through the Android port on a device with a PowerVR BXM-8-256 GPU.
The game is able to start normally and reach the main menu. Some parts of the interface and 3D rendering work initially, but the graphics quickly become severely corrupted.
The corruption includes:
Despite the corruption, the game is able to proceed surprisingly far. The intro video/cutscene can play, and after changing the DXVK configuration the game can proceed into another rendered scene and attempt to transition into actual gameplay.
Eventually, when the game is supposed to enter normal gameplay, it crashes.
The original PC version of the game works correctly on my PC using the same game files, so the game data itself appears to be valid.
I initially suspected missing game resources, especially shader resources. I copied the original
shaders.bigfrom the PC installation into the Android game directory. This did not resolve the problem.The shader resources are detected and loaded, so the issue does not appear to be simply caused by missing shader files.
I suspect that the main problem may be related to the interaction between the current DXVK implementation and the PowerVR Vulkan driver, but I would like to know whether the developers have identified a known compatibility issue with PowerVR GPUs.
Crash
The native crash eventually occurs inside:
libdxvk_d3d9.soThe crash is reported as:
SIGSEGV (signal 11)with:
fault_addr = 0x0and:
PC = 0x0The crash happens after the game has already initialized the renderer and progressed through the intro/cutscene sequence.
There are also OpenAL errors shortly before the crash, but I am not sure whether these are the cause or merely a secondary effect of the rendering/runtime problem.
DXVK configuration test
Changing the configuration from:
dxvk.logLevel = noned3d9.samplerAnisotropy = 16to:
dxvk.logLevel = debugd3d9.samplerAnisotropy = 0changed the behavior.
With the debug configuration the game progresses further instead of immediately crashing after the intro video. It attempts to render the following scene and gets closer to actual gameplay, but the graphics remain severely corrupted and the game eventually crashes.
This makes me suspect that the rendering path/resource handling may be involved in the crash.
I would appreciate any information about PowerVR compatibility, required Vulkan features, known DXVK limitations, or recommended configuration/workarounds for this GPU.
Reproduction Steps
Optional configuration test:
dxvk.logLevel = debug.d3d9.samplerAnisotropy = 0.Additional Context
Vulkan / DXVK
DXVK detects the GPU as:
PowerVR BXM-8-256The Vulkan capabilities reported by the device include Vulkan 1.1 functionality.
Important feature information observed during initialization includes:
Some newer Vulkan features/extensions requested by the DXVK code path are not available on this device.
The Android port uses the D3D8/D3D9 → DXVK → Vulkan rendering path.
The device is not an Adreno GPU. The actual Vulkan implementation is the native PowerVR driver.
Game files
The game files were copied from a PC installation where Command & Conquer: Generals Zero Hour works correctly.
I also tested the original
shaders.bigfrom the PC installation.The Android game directory contains the normal Generals/Zero Hour BIG archives, including the shader archive.
Adding the original
shaders.bigdid not fix the problem.Rendering symptoms
The problem is not simply that the game fails to render.
The renderer actually initializes and produces:
but many of these are severely corrupted.
The corruption can change from scene to scene. Examples include large magenta surfaces, stretched geometry, incorrect textures and large sections of the scene being rendered in the wrong place.
The game can therefore reach gameplay initialization before crashing.
Crash
The final native crash is:
SIGSEGV (signal 11)fault_addr = 0x0PC = 0x0with the backtrace pointing into:
libdxvk_d3d9.soThere are also OpenAL errors shortly before the final crash.
I am providing the logs and screenshots because I am not sure whether the OpenAL errors are an independent problem or a consequence of the renderer/runtime becoming unstable.
Suspected cause
My current suspicion is a compatibility problem between the DXVK version/fork used by the Android port and the Vulkan implementation of the PowerVR BXM-8-256.
I am not claiming that this is definitely the cause.
I would particularly like to know whether:
generalszh-logs.zip