Releases: leegao/bionic-vulkan-wrapper
v0.0.5r5
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Missing Feature/Extension emulation for Winlator Bionic on:
- Adreno 6XX stuck on 512.502 (BCn)
- Some Mali devices (e.g. Pixel 8)
- Some Xclipse devices
For Mali devices, be sure to:
- Try using dxvk 1.5.5 if 1.10.3 doesn't work
Note: in Winlator CMOD, the terminal moved. You can either start the container and then find the terminal on the left-hand side menu, or you can copy libvulkan_wrapper.so to Z:\usr\lib within the windows explorer.
See https://github.com/user-attachments/assets/2c78d8a7-da65-48c5-a295-69fcf45f1b07 for a video tutorial (courtesy of kylinzang)
New Features in v0.0.5r4 and 0.0.5r5
- Depth Format Reduction: reduce the depth buffer format, may improve performance/memory usage for some games
- Geometry Shader Faking: for PowerVR devices
- Mali SPIRV/Shader Fixes:
- Adds a pass for spec composite constants that causes dxvk 1.7.3 to black screen
- Adds optimization barriers to prevent aggressive driver optimizations leading to buggy compiled shaders
- Striped Texture Detection: Fixes striped textures in Dead Space due to dynamic BC1/3 packing in their game engine (enable with
CHECK_FOR_STRIPING) - Driver-Specific Workarounds:
- Automatically disable
VK_EXT_extended_dynamic_stateon Mali for DXVK < 2. - Only disable
VK_KHR_shader_float_controlson Qualcomm
- Automatically disable
VK_POLYGON_MODE_LINEfaking - on Mali devices that do not support it to fall back toVK_POLYGON_MODE_FILL- Advanced Artifact Dumping: dump BCn textures and decoding artifacts new environment variables (
DUMP_BCN,DUMP_SRC_BCN) - BCn Validation System:
VALIDATE_BCNadded to compare the output of the GPU-based BCn decoder against a reference CPU decoder - BC4-5 Fixes for USE_CPU_BCN: Fixed a stride problem that causes banding on BC4 and BC5 textures when decoded by USE_CPU_BCN
Current staging build:
[v0.0.5r5] - Fix shader BCn decoding glitch in Factorio due to using the wrong bounds checking - #142
[v0.0.5r4] - Added BCn texture/decoding artifact dumping, depth-buffer reduction mode, geometry shader faking, rewrite passes for FixMaliSpecCompositeConstants and MaliAddOptimizationBarriers, option to detect and fix texture striping in Dead Space, auto disable VK_EXT_extended_dynamic_state on Mali, fix for BC4-5 causing texture banding
[v0.0.5r3] - Fixes a WSI validation error on Mali (and other) devices due to blitting
[v0.0.5r2] - Fix USE_VVL for newer Android devices, add DUMP_BCN_ARTIFACTS for debugging purposes that dumps all processed BCn objects
[v0.0.5r1] - Add vulkan validation layer integration (and ability to add new layers between the wrapper and libvulkan.so)
[v0.0.5r0] - Initial ClipDistance emulation, more complete cpu/gpu side decompression format support, more debugging tools
[v0.0.4r9] - Fixes a compute shader bug for some Mali drivers (can use bcn decoding without USE_CPU_BCN), thanks to Ahmed for helping debug #99
[v0.0.4r8] - Fixes USE_CPU_BCN problem in 4r7
[v0.0.4r7] - Adds GPU fault reporting dumps
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)DISABLE_BCN- disable BCn emulation for specific texture formats (all,bc1...bc7, ...)WATERMARK_SIZE- how big the WATERMARK_BCN mark should be, fromXXS...S,M,L, ...XXLNO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completelyLOG_DISASSEMBLY- Enables logging of transformed spirv codeDISABLE_EXTERNAL_FD- For some games that tries to import external fd, it may fail on Proton for certain underlying drivers. This flag will disable this path in dxvk.FORCE_CLIP_DISTANCE- enable ClipDistance emulation even when the underlying driver supports itDISABLE_CLIP_DISTANCE- disable ClipDistance emulation even when the underlying driver does not support itWRAPPER_ONE_BY_ONE- submits bcn tasks to the GPU one by one instead of inlined into the application's command buffer. Helps isolate which specific shader causes problemsUSE_VVL- make sure you also download and copy libVkLayer_khronos_validation.so into usr/lib as well, this will toggle on the Vulkan Validation layerDUMP_BCN_ARTIFACTS- dumps every decoded texture to a/sdcard/Documents/Wrapper/artifacts_...directory. This is extremely slow and creates lots of really large files. Use only when asked to.
(new)
DUMP_BCN- Dump artifacts for successfully decoded BCn textures to/sdcard/Documents/Wrapper/artifacts.... This can be a list ofall,bc1, ...,bc7. This is very slow and generates large files.VALIDATE_BCN- Enables validation of GPU vs. CPU BCn decoding. Dumps artifacts only on a mismatch. Accepts the same format list asDUMP_BCN.DUMP_SRC_BCN- Dumps the original, compressed source buffer and region info before any decoding is attempted. Useful for debugging corrupted source textures.WRAPPER_REDUCE_DEPTH_FORMAT- Reduces the precision of depth/stencil formats to improve compatibility.safe: Reduces D24/D32 formats to D16 variants while preserving the stencil buffer if possible.aggressive: Reduces all D24/D32/D16S8 formats to D16, discarding the stencil buffer.disabled: Blocks the creation of depth/stencil images entirely for debugging purposes.
DISABLE_SPEC_COMPOSITE_CONSTANTS/FORCE_SPEC_COMPOSITE_CONSTANTS- Disables/forces the SPIR-V pass that fixes specialization composite constant issues on Mali GPUs that causes 1.7.3 to black screen.DISABLE_OPTIMIZATION_BARRIERS/FORCE_OPTIMIZATION_BARRIERS- Disables/forces the SPIR-V pass that adds optimization barriers for Mali/Adreno drivers.CHECK_FOR_STRIPING- Set to1to enable the detection of striped BCn textures (for Dead Space for e.g.), note that this forces a CPU decoding path.
Logging Instructions:
Validation Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Download libVkLayer_khronos_validation.so.zip
- Extract the library, and in Winlator, copy it to the same directory that libvulkan_wrapper.so is in
- Go to the Environment Variables view in your container settings
- Add an entry for
USE_VVL(upper case) to1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/vvl_*.txtand upload them here
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/wrapper_*.txtand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
BCn Artifacts:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
DUMP_BCN_ARTIFACTS(upper case) to1 - Rerun the game
- Zip the newest artifacts at the
/sdcard/Documents/Wrapper/artifacts_...directory and upload it
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
What's Changed
Full Changelog: https://github.com/...
v0.0.5r4 (Respin)
Note: if you downloaded this build before 12:32pm UTC+0, please download the build again, this fixes an issue in #165
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Missing Feature/Extension emulation for Winlator Bionic on:
- Adreno 6XX stuck on 512.502 (BCn)
- Some Mali devices (e.g. Pixel 8)
- Some Xclipse devices
For Mali devices, be sure to:
- Try using dxvk 1.5.5 if 1.10.3 doesn't work
Note: in Winlator CMOD, the terminal moved. You can either start the container and then find the terminal on the left-hand side menu, or you can copy libvulkan_wrapper.so to Z:\usr\lib within the windows explorer.
See https://github.com/user-attachments/assets/2c78d8a7-da65-48c5-a295-69fcf45f1b07 for a video tutorial (courtesy of kylinzang)
New Features in v0.0.5r4
- Depth Format Reduction: reduce the depth buffer format, may improve performance/memory usage for some games
- Geometry Shader Faking: for PowerVR devices
- Mali SPIRV/Shader Fixes:
- Adds a pass for spec composite constants that causes dxvk 1.7.3 to black screen
- Adds optimization barriers to prevent aggressive driver optimizations leading to buggy compiled shaders
- Striped Texture Detection: Fixes striped textures in Dead Space due to dynamic BC1/3 packing in their game engine (enable with
CHECK_FOR_STRIPING) - Driver-Specific Workarounds:
- Automatically disable
VK_EXT_extended_dynamic_stateon Mali for DXVK < 2. - Only disable
VK_KHR_shader_float_controlson Qualcomm
- Automatically disable
VK_POLYGON_MODE_LINEfaking - on Mali devices that do not support it to fall back toVK_POLYGON_MODE_FILL- Advanced Artifact Dumping: dump BCn textures and decoding artifacts new environment variables (
DUMP_BCN,DUMP_SRC_BCN) - BCn Validation System:
VALIDATE_BCNadded to compare the output of the GPU-based BCn decoder against a reference CPU decoder - BC4-5 Fixes for USE_CPU_BCN: Fixed a stride problem that causes banding on BC4 and BC5 textures when decoded by USE_CPU_BCN
Current staging build:
[v0.0.5r4] - Added BCn texture/decoding artifact dumping, depth-buffer reduction mode, geometry shader faking, rewrite passes for FixMaliSpecCompositeConstants and MaliAddOptimizationBarriers, option to detect and fix texture striping in Dead Space, auto disable VK_EXT_extended_dynamic_state on Mali, fix for BC4-5 causing texture banding
[v0.0.5r3] - Fixes a WSI validation error on Mali (and other) devices due to blitting
[v0.0.5r2] - Fix USE_VVL for newer Android devices, add DUMP_BCN_ARTIFACTS for debugging purposes that dumps all processed BCn objects
[v0.0.5r1] - Add vulkan validation layer integration (and ability to add new layers between the wrapper and libvulkan.so)
[v0.0.5r0] - Initial ClipDistance emulation, more complete cpu/gpu side decompression format support, more debugging tools
[v0.0.4r9] - Fixes a compute shader bug for some Mali drivers (can use bcn decoding without USE_CPU_BCN), thanks to Ahmed for helping debug #99
[v0.0.4r8] - Fixes USE_CPU_BCN problem in 4r7
[v0.0.4r7] - Adds GPU fault reporting dumps
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)DISABLE_BCN- disable BCn emulation for specific texture formats (all,bc1...bc7, ...)WATERMARK_SIZE- how big the WATERMARK_BCN mark should be, fromXXS...S,M,L, ...XXLNO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completelyLOG_DISASSEMBLY- Enables logging of transformed spirv codeDISABLE_EXTERNAL_FD- For some games that tries to import external fd, it may fail on Proton for certain underlying drivers. This flag will disable this path in dxvk.FORCE_CLIP_DISTANCE- enable ClipDistance emulation even when the underlying driver supports itDISABLE_CLIP_DISTANCE- disable ClipDistance emulation even when the underlying driver does not support itWRAPPER_ONE_BY_ONE- submits bcn tasks to the GPU one by one instead of inlined into the application's command buffer. Helps isolate which specific shader causes problemsUSE_VVL- make sure you also download and copy libVkLayer_khronos_validation.so into usr/lib as well, this will toggle on the Vulkan Validation layerDUMP_BCN_ARTIFACTS- dumps every decoded texture to a/sdcard/Documents/Wrapper/artifacts_...directory. This is extremely slow and creates lots of really large files. Use only when asked to.
(new)
DUMP_BCN- Dump artifacts for successfully decoded BCn textures to/sdcard/Documents/Wrapper/artifacts.... This can be a list ofall,bc1, ...,bc7. This is very slow and generates large files.VALIDATE_BCN- Enables validation of GPU vs. CPU BCn decoding. Dumps artifacts only on a mismatch. Accepts the same format list asDUMP_BCN.DUMP_SRC_BCN- Dumps the original, compressed source buffer and region info before any decoding is attempted. Useful for debugging corrupted source textures.WRAPPER_REDUCE_DEPTH_FORMAT- Reduces the precision of depth/stencil formats to improve compatibility.safe: Reduces D24/D32 formats to D16 variants while preserving the stencil buffer if possible.aggressive: Reduces all D24/D32/D16S8 formats to D16, discarding the stencil buffer.disabled: Blocks the creation of depth/stencil images entirely for debugging purposes.
DISABLE_SPEC_COMPOSITE_CONSTANTS/FORCE_SPEC_COMPOSITE_CONSTANTS- Disables/forces the SPIR-V pass that fixes specialization composite constant issues on Mali GPUs that causes 1.7.3 to black screen.DISABLE_OPTIMIZATION_BARRIERS/FORCE_OPTIMIZATION_BARRIERS- Disables/forces the SPIR-V pass that adds optimization barriers for Mali/Adreno drivers.CHECK_FOR_STRIPING- Set to1to enable the detection of striped BCn textures (for Dead Space for e.g.), note that this forces a CPU decoding path.
Logging Instructions:
Validation Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Download libVkLayer_khronos_validation.so.zip
- Extract the library, and in Winlator, copy it to the same directory that libvulkan_wrapper.so is in
- Go to the Environment Variables view in your container settings
- Add an entry for
USE_VVL(upper case) to1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/vvl_*.txtand upload them here
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/wrapper_*.txtand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
BCn Artifacts:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
DUMP_BCN_ARTIFACTS(upper case) to1 - Rerun the game
- Zip the newest artifacts at the
/sdcard/Documents/Wrapper/artifacts_...directory and upload it
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
What's Changed
- Add VALIDATE_BCN mode to compare against reference impl, and also fix stride issues by @leegao in https://github.com/leegao/bion...
v0.0.5r3
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Missing Feature/Extension emulation for Winlator Bionic on:
- Adreno 6XX stuck on 512.502 (BCn)
- Some Mali devices (e.g. Pixel 8)
- Some Xclipse devices
For Mali devices, be sure to:
Note: in Winlator CMOD, the terminal moved. You can either start the container and then find the terminal on the left-hand side menu, or you can copy libvulkan_wrapper.so to Z:\usr\lib within the windows explorer.
See https://github.com/user-attachments/assets/2c78d8a7-da65-48c5-a295-69fcf45f1b07 for a video tutorial (courtesy of kylinzang)
Current staging build:
[v0.0.5r3] - Fixes a WSI validation error on Mali (and other) devices due to blitting
[v0.0.5r2] - Fix USE_VVL for newer Android devices, add DUMP_BCN_ARTIFACTS for debugging purposes that dumps all processed BCn objects
[v0.0.5r1] - Add vulkan validation layer integration (and ability to add new layers between the wrapper and libvulkan.so)
[v0.0.5r0] - Initial ClipDistance emulation, more complete cpu/gpu side decompression format support, more debugging tools
[v0.0.4r9] - Fixes a compute shader bug for some Mali drivers (can use bcn decoding without USE_CPU_BCN), thanks to Ahmed for helping debug #99
[v0.0.4r8] - Fixes USE_CPU_BCN problem in 4r7
[v0.0.4r7] - Adds GPU fault reporting dumps
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)DISABLE_BCN- disable BCn emulation for specific texture formats (all,bc1...bc7, ...)WATERMARK_SIZE- how big the WATERMARK_BCN mark should be, fromXXS...S,M,L, ...XXLNO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completelyLOG_DISASSEMBLY- Enables logging of transformed spirv codeDISABLE_EXTERNAL_FD- For some games that tries to import external fd, it may fail on Proton for certain underlying drivers. This flag will disable this path in dxvk.FORCE_CLIP_DISTANCE- enable ClipDistance emulation even when the underlying driver supports itDISABLE_CLIP_DISTANCE- disable ClipDistance emulation even when the underlying driver does not support itWRAPPER_ONE_By_ONE- submits bcn tasks to the GPU one by one instead of inlined into the application's command buffer. Helps isolate which specific shader causes problemsUSE_VVL- make sure you also download and copy libVkLayer_khronos_validation.so into usr/lib as well, this will toggle on the Vulkan Validation layerDUMP_BCN_ARTIFACTS- dumps every decoded texture to a/sdcard/Documents/Wrapper/artifacts_...directory. This is extremely slow and creates lots of really large files. Use only when asked to.
Logging Instructions:
Validation Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Download libVkLayer_khronos_validation.so.zip
- Extract the library, and in Winlator, copy it to the same directory that libvulkan_wrapper.so is in
- Go to the Environment Variables view in your container settings
- Add an entry for
USE_VVL(upper case) to1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/vvl_*.txtand upload them here
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Add another entry for
LOG_DISASSEMBLYto1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/wrapper_*.txtand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
BCn Artifacts:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
DUMP_BCN_ARTIFACTS(upper case) to1 - Rerun the game
- Zip the newest artifacts at the
/sdcard/Documents/Wrapper/artifacts_...directory and upload it
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
What's Changed
- Initial harness for artifact recording by @leegao in #128
- Finish DUMP_BCN_ARTIFACTS implementation by @leegao in #130
- Fix BC6h staging buffer size calculation to use the correct texel str… by @leegao in #132
- Fix Validation error in blit path that fails for Mali devices by @leegao in #134
Full Changelog: v0.0.5r1...v0.0.5r3
v0.0.5r2
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Missing Feature/Extension emulation for Winlator Bionic on:
- Adreno 6XX stuck on 512.502 (BCn)
- Some Mali devices (e.g. Pixel 8)
- Some Xclipse devices
Current staging build:
[v0.0.5r2] - Fix USE_VVL for newer Android devices, add DUMP_BCN_ARTIFACTS for debugging purposes that dumps all processed BCn objects
[v0.0.5r1] - Add vulkan validation layer integration (and ability to add new layers between the wrapper and libvulkan.so)
[v0.0.5r0] - Initial ClipDistance emulation, more complete cpu/gpu side decompression format support, more debugging tools
[v0.0.4r9] - Fixes a compute shader bug for some Mali drivers (can use bcn decoding without USE_CPU_BCN), thanks to Ahmed for helping debug #99
[v0.0.4r8] - Fixes USE_CPU_BCN problem in 4r7
[v0.0.4r7] - Adds GPU fault reporting dumps
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)DISABLE_BCN- disable BCn emulation for specific texture formats (all,bc1...bc7, ...)WATERMARK_SIZE- how big the WATERMARK_BCN mark should be, fromXXS...S,M,L, ...XXLNO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completelyLOG_DISASSEMBLY- Enables logging of transformed spirv codeDISABLE_EXTERNAL_FD- For some games that tries to import external fd, it may fail on Proton for certain underlying drivers. This flag will disable this path in dxvk.FORCE_CLIP_DISTANCE- enable ClipDistance emulation even when the underlying driver supports itDISABLE_CLIP_DISTANCE- disable ClipDistance emulation even when the underlying driver does not support itWRAPPER_ONE_By_ONE- submits bcn tasks to the GPU one by one instead of inlined into the application's command buffer. Helps isolate which specific shader causes problemsUSE_VVL- make sure you also download and copy libVkLayer_khronos_validation.so into usr/lib as well, this will toggle on the Vulkan Validation layerDUMP_BCN_ARTIFACTS- dumps every decoded texture to a/sdcard/Documents/Wrapper/artifacts_...directory
Logging Instructions:
Validation Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Download libVkLayer_khronos_validation.so.zip
- Extract the library, and in Winlator, copy it to the same directory that libvulkan_wrapper.so is in
- Go to the Environment Variables view in your container settings
- Add an entry for
USE_VVL(upper case) to1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/vvl_*.txtand upload them here
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Add another entry for
LOG_DISASSEMBLYto1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/wrapper_*.txtand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
BCn Artifacts:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
DUMP_BCN_ARTIFACTS(upper case) to1 - Rerun the game
- Zip the newest artifacts at the
/sdcard/Documents/Wrapper/artifacts_...directory and upload it
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
What's Changed
- Initial harness for artifact recording by @leegao in #128
- Finish DUMP_BCN_ARTIFACTS implementation by @leegao in #130
- Fix BC6h staging buffer size calculation to use the correct texel str… by @leegao in #132
Full Changelog: v0.0.5r1...v0.0.5r2
v0.0.5r1
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Missing Feature/Extension emulation for Winlator Bionic on:
- Adreno 6XX stuck on 512.502 (BCn)
- Some Mali devices (e.g. Pixel 8)
- Some Xclipse devices
Current staging build:
[v0.0.5r1] - Add vulkan validation layer integration (and ability to add new layers between the wrapper and libvulkan.so)
[v0.0.5r0] - Initial ClipDistance emulation, more complete cpu/gpu side decompression format support, more debugging tools
[v0.0.4r9] - Fixes a compute shader bug for some Mali drivers (can use bcn decoding without USE_CPU_BCN), thanks to Ahmed for helping debug #99
[v0.0.4r8] - Fixes USE_CPU_BCN problem in 4r7
[v0.0.4r7] - Adds GPU fault reporting dumps
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)DISABLE_BCN- disable BCn emulation for specific texture formats (all,bc1...bc7, ...)WATERMARK_SIZE- how big the WATERMARK_BCN mark should be, fromXXS...S,M,L, ...XXLNO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completelyLOG_DISASSEMBLY- Enables logging of transformed spirv codeDISABLE_EXTERNAL_FD- For some games that tries to import external fd, it may fail on Proton for certain underlying drivers. This flag will disable this path in dxvk.FORCE_CLIP_DISTANCE- enable ClipDistance emulation even when the underlying driver supports itDISABLE_CLIP_DISTANCE- disable ClipDistance emulation even when the underlying driver does not support itWRAPPER_ONE_By_ONE- submits bcn tasks to the GPU one by one instead of inlined into the application's command buffer. Helps isolate which specific shader causes problemsUSE_VVL- make sure you also download and copy libVkLayer_khronos_validation.so into usr/lib as well, this will toggle on the Vulkan Validation layer
Logging Instructions:
Validation Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Download libVkLayer_khronos_validation.so.zip
- Extract the library, and in Winlator, copy it to the same directory that libvulkan_wrapper.so is in
- Go to the Environment Variables view in your container settings
- Add an entry for
USE_VVL(upper case) to1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/vvl_*.txtand upload them here
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Add another entry for
LOG_DISASSEMBLYto1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapper/wrapper_*.txtand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
Full Changelog: v0.0.5r0...v0.0.5r1
What's Changed
- Gate aggressive DCE behind a flag, and add bounds check for src buffer in shaders by @leegao in #120
- Fix addr_place mmap bug where the AHB query sometimes returns a sync-fence fd first instead of the memory fd, also add log wrapping to all wrapper functions. by @leegao in #121
- Add integration for validation layer via libgraphicsenv.so hijacking by @leegao in #125
v0.0.5r0
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Missing Feature/Extension emulation for Winlator Bionic on:
- Adreno 6XX stuck on 512.502 (BCn)
- Some Mali devices (e.g. Pixel 8)
- Some Xclipse devices
Release Notes - v0.0.5r0
SPIRV Lowering Passes
Integrates SPIRV-Tools library to enable on-the-fly modification of SPIR-V shaders.
- [Mali] Clip/Cull Distance Emulation: stubbing of
ClipDistanceandCullDistance. Remove all OpDecorate and OpMemberDecorates using these built-ins and transitively eliminates all associated dead code. This allows applications and games requiring these features to run correctly on Mali hw that lacks native support.- Early testing: this feature isn't fully baked yet and may cause problems, file bugs if you encounter new regressions.
BCn Texture Decompression
- Format Support:
- Host-side (CPU) decompression now supports the BC6H format.
- GPU-side (Compute Shader) decompression has been fixed for correct BC7 SRGB handling.
- Performance and Stability:
- A new "1-by-1 submission mode" (
WRAPPER_ONE_BY_ONE=1) for debugging - Fixed buffer indexing bug in the compute decompression path.
- A new "1-by-1 submission mode" (
- Debugging Tools:
WATERMARK_BCNnow works with cpu decompression- Use
WATERMARK_SIZEto control the size of the watermark. - Added
DISABLE_BCNflag to selectively disable emulation for specific formats
Logging and Debugging
- SPIR-V Disassembly: You can now log full SPIR-V disassembly for shaders that are modified by our SPIRV passes. Enable with
LOG_DISASSEMBLY=1orWRAPPER_LOG_LEVEL=all. - Timestamped Logs: All wrapper logs are now timestamped
Build and System Improvements
- The build system is now more deterministic
- Added integration with the external SPIRV-Tools
Current staging build:
[v0.0.5r0] - Initial ClipDistance emulation, more complete cpu/gpu side decompression format support, more debugging tools
[v0.0.4r9] - Fixes a compute shader bug for some Mali drivers (can use bcn decoding without USE_CPU_BCN), thanks to Ahmed for helping debug #99
[v0.0.4r8] - Fixes USE_CPU_BCN problem in 4r7
[v0.0.4r7] - Adds GPU fault reporting dumps
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)DISABLE_BCN- disable BCn emulation for specific texture formats (all,bc1...bc7, ...)WATERMARK_SIZE- how big the WATERMARK_BCN mark should be, fromXXS...S,M,L, ...XXLNO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completelyLOG_DISASSEMBLY- Enables logging of transformed spirv codeDISABLE_EXTERNAL_FD- For some games that tries to import external fd, it may fail on Proton for certain underlying drivers. This flag will disable this path in dxvk.FORCE_CLIP_DISTANCE- enable ClipDistance emulation even when the underlying driver supports itDISABLE_CLIP_DISTANCE- disable ClipDistance emulation even when the underlying driver does not support itWRAPPER_ONE_By_ONE- submits bcn tasks to the GPU one by one instead of inlined into the application's command buffer. Helps isolate which specific shader causes problems
Logging Instructions:
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Add another entry for
LOG_DISASSEMBLYto1 - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapperand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
Full Changelog: v0.0.4r9...v0.0.5r0
v0.0.4r9
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Current staging build:
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r7] - Adds GPU fault reporting dumps
[v0.0.4r8] - Fixes USE_CPU_BCN problem in 4r7
[v0.0.4r9] - Fixes a compute shader bug for some Mali drivers (can use bcn decoding without USE_CPU_BCN), thanks to Ahmed for helping debug #99
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)NO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completely
Logging Instructions:
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapperand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
Full Changelog: v0.0.4r8...v0.0.4r9
v0.0.4r8
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Current staging build:
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r7] - Adds GPU fault reporting dumps
[v0.0.4r8] - Fixes USE_CPU_BCN problem in 4r7
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)NO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completely
Logging Instructions:
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapperand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
Full Changelog: v0.0.4r7...v0.0.4r8
v0.0.4r7 (Buggy USE_CPU_BCN)
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it
Current staging build:
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
[v0.0.4r7] - Adds GPU fault reporting dumps
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)NO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completely
Logging Instructions:
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapperand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
Full Changelog: v0.0.4r6...v0.0.4r7
v0.0.4r6
Current staging build:
[v0.0.4r1] - Fix for GPU faults on BC7 due to register pressure, and add dualSrcBlend as a faked feature for Mali G715 on r38p1. See #43
[v0.0.4r2] - Make untracked buffers a non-fatal error, we may be leaking internal/staging vkBuffers out (e.g. WSI did have issues with incomplete buffer tracking too in the past) See #45
[v0.0.4r3] - Reworked temporary object tracking to be tracked by the image, should reduce memory usage slightly, will change this to a thread soon. Also added debug color for buffer overflows in the shader (bright pixel), and fixed GPU faults for BC6 as well
[v0.0.4r4] - Reworked temporary object tracking to be tracked by a secondary command buffer, should reduce memory usage. Added watermarker and mask coloring for debugging. Added more feature faking for G57 r32p1.
[v0.0.4r5] - Fixes a race condition, exposes more error logs from vulkan trace failures
[v0.0.4r6] - Reverts a buggy implementation of the inter-buffer GC, and various other improvements / refactorings
New Environment Variables:
MASK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- skip BCn compute for select BC texture types (to debug GPU faults/hangs)WATERMARK_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- mark the bottom 32x32 block of pixels for every texture of this type with a solid color (to debug texture faults)USE_CPU_BCN- can be a list ofall,bc1, ...,bc7,131, ...,146- use CPU decoding for the selected formats instead of compute (if your game is hanging, try this)NO_BCN_EMULATION- Disable the BCn emulation path completelyNO_BC123_EMULATION- Disable the BC1-BC3 emulation path completely
Logging Instructions:
Wrapper Logs:
- Create a directory (if it doesn't already exist) at
/sdcard/Documents/Wrapper - Go to the Environment Variables view in your container settings
- Add an entry for
WRAPPER_LOG_LEVEL(upper case) todebug(small case - NOTE: do not set toallas this can generate several gbs of logs) - Rerun the game
- Grab the logs at
/sdcard/Documents/Wrapperand upload them here
See https://photos.app.goo.gl/6Ah6EkkjQpR2Rsih8
DXVK Logs:
- Go to the Environment Variables view in your container settings (same as before)
- Add an entry for
DXVK_LOG_LEVEL(upper case) todebug(small case) - Add another entry for
DXVK_LOG_PATH(upper case) set to/sdcard/Download
Run the game, then go to your Files app, go into Internal storage > Download, and look for $GAME_d3d11.log and upload it as well
Wine Logs:
- Go to Winlator's settings
- Scroll down to the Logs section and enable Wine debug and Box64 logs
- Click on the little
+button and also selectvulkanand all of thed3d...entries too - Rerun the game
- Grab the logs at
/sdcard/Download/Winlator/logs
See https://photos.app.goo.gl/HQunEv1is28vRT9v6
Don't forget to set your video memory to the maximum: https://photos.app.goo.gl/53rAyWAZBEq75UxB8
See https://github.com/leegao/bionic-vulkan-wrapper/releases/tag/v0.0.4 for instructions on how to use it