Xenia: [AMD] DX12 CHARACTER MODEL BUG

Created on 29 Sep 2018  Â·  9Comments  Â·  Source: xenia-project/xenia

Hey Guys
I am trying the dx12 Xenia build, but unfortunately i have a strange bug in every game tested. This bug maybe affect only the characters model, so maybe it's easy to fix.
I have a rx 460 2 gb and i5 3570.

Sorry for my bad english and sorry if i posted in the wrong place.

https://uploaddeimagens.com.br/imagens/sem_tiasdaggtulo-jpg

https://uploaddeimagens.com.br/imagens/sem_tituasdagahhlo-jpg

https://uploaddeimagens.com.br/imagens/sem_titulasdasgo-jpg

https://uploaddeimagens.com.br/imagens/sem_titulo-jpg-36f61590-c21c-4868-9572-229b446fbab7

xenia.log

bug gpu-d3d12

Most helpful comment

This is a known Xenia bug with dynamic indexing of constant buffers. I've checked if there are any flags required for dynamic addressing of descriptors in dcl_constantBuffer and Resource DEFinitions, but there are none. I'm planning to possibly get rid of those 8 constant buffer pages at all later, and instead pack used constants tightly when there's no dynamic indexing, or submit all 4 KB as a single constant buffer if there is dynamic indexing. Maybe on AMD you can only index SRV descriptors dynamically, not constant buffer descriptors, though I don't know. Or maybe you can, but not when the indices are different for different vertices/pixels — you have to explicitly allow that using NonUniformResourceIndex in shaders, so it's more like an exception than the general usage scenario.

All 9 comments

Please use the game compatibility repo for game issues.

@theTwist84 This applies to multiple games, though.

@Margen67
Yep, all games here have this issue.

I think this is a GPU architecture problem, maybe only affect AMD cards.

I have a NVidia card and this problem is also in NFS:ProStreet, so it's not just AMD

P.S. The game only renders in D3D13 so I can't test in Vulkan

This is a known Xenia bug with dynamic indexing of constant buffers. I've checked if there are any flags required for dynamic addressing of descriptors in dcl_constantBuffer and Resource DEFinitions, but there are none. I'm planning to possibly get rid of those 8 constant buffer pages at all later, and instead pack used constants tightly when there's no dynamic indexing, or submit all 4 KB as a single constant buffer if there is dynamic indexing. Maybe on AMD you can only index SRV descriptors dynamically, not constant buffer descriptors, though I don't know. Or maybe you can, but not when the indices are different for different vertices/pixels — you have to explicitly allow that using NonUniformResourceIndex in shaders, so it's more like an exception than the general usage scenario.

Rpcs3 has the same problem some months ago, but now it´s solved, it´s called "exploding vertices or vertex explode" but now it´s solved. I don´t know if the reason here it´s the same on xenia.

@LuismaSP89 Anything that causes vertices' coordinates to be calculated improperly or fail to be uploaded to the GPU can cause Vertex explosion. If you could point me to the commit on RPCS3 that fixed their issue we could see if it's a potential solution, but @Triang3l seems to already have something in the works.

@0x8080 Sure, here it is:

https://github.com/RPCS3/rpcs3/pull/5125

There are some other PR fixes for this problem, and there´s too some games that persist, but this PR solved most of the problem with broken animations/exploding vertices. I don´t know if this can help a bit to @Triang3l or maybe he can take some ideas, but I post it anyway.

PS: Btw, thanks a lot to the Xenia developers, Eternal sonata now runs again under DX12 :P

Fixed in c4599ff211f07963eeca67dc11b8d2d55d182c79, turns out the driver or the instruction set actually isn't ready for D3D12-style dynamic indexing of constant buffer descriptors.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

SakataGintokiYT picture SakataGintokiYT  Â·  3Comments

drillsar picture drillsar  Â·  4Comments

Margen67 picture Margen67  Â·  3Comments

niko1point0 picture niko1point0  Â·  3Comments

JohnGodgames picture JohnGodgames  Â·  3Comments