protonscr

Xenia Xbox 360 Emulator : Assertion failed: breakable_cf_info->inside_block (spirv.c, line 8097)

vkd3dclosed
HansKristian-Work/vkd3d-proton#534 · opened 2021-02-21 by 7oxicshadow · updated 2021-05-15 · 4 comments · github
77oxicshadow 2021-02-21 github

The Xenia application will launch, and in some instances even show one frame of the game before halting with the following assertion:

300:fixme:vkd3d_buffer_view_get_aligned_view: Application is attempting to use more elements in a typed buffer (1073741823) than supported by device (134217728).
Assertion failed: breakable_cf_info->inside_block, file ../../../../home/maister/git/vkd3d-standalone/vkd3d/libs/vkd3d-shader/spirv.c, line 8097

On subsequent launches of the same game the line beginning 300:fixme: doesn't happen again (caching?) but the Assertion still appears and is the same every time.

I have attached a trace log and also the terminal output in-case it provides any useful information.

Wine info:
wine-tkg-staging-fsync-git-6.2.r6.g9aeea5d1
dxvk 1.8
vkd3d-proton 2.2

terminal.log
vkd3d-proton-trace.log

Mmisyltoad maintainer 2021-02-21 github

Assertion failed: breakable_cf_info->inside_block, file ../../../../home/maister/git/vkd3d-standalone/vkd3d/libs/vkd3d-shader/spirv.c, line 8097

Sounds like bad DXBC at first glance (but it also may be our problem).

Can you please give more information on how to reproduce this?

77oxicshadow 2021-02-21 github

Download the emulator from here:

https://xenia.jp/download

Download the open source homebrew project open jazz 360 from here:

https://digiex.net/attachments/openjazz3601-rar.3870
  • Extract anywhere into an d3d12 enabled prefix.
  • launch with the following command:
wine xenia.exe "z:/path/to/openjazz/default.xex" --license_mask -1 --gpu d3d12

Note: the z:/ reference for the path to default.xex might not be required. try with and without.

Ooscarbg 2021-02-21 github

also nice, is Xenia supports usage of D3D12 ROV if you add "--d3d12_edram_rov=true"..
then it uses ROV (raster order views) for better accuracy/performance emulation of EDRAM so in case VKD3D is interested in supporting ROV (by using VK_EXT_fragment_shader_interlock extension) a simple test would be:
wine xenia.exe "OpenJazz360\default.xex" --d3d12_edram_rov=true --license_mask -1 --gpu d3d12

Note VK_EXT_fragment_shader_interlock is supported only on NV and Intel GPUs on both Win and Linux..
but also on AMD GPUs on MacOS via MoltenVK..

Ooscarbg 2021-05-15 github

Xenia has got a huge "graphics rewrite" recently:
https://xenia.jp/updates/2021/04/27/leaving-no-pixel-behind-new-render-target-cache-3x3-resolution-scaling.html
and from quick test on Windows seems newer Xenia builds don't work with VKD3D latest master correctly..
hope soon provide logs from Linux.. just posted to point out in case one VKD3D dev wants to investigate by itself..

Proton versions