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
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.
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_constantBufferand 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 usingNonUniformResourceIndexin shaders, so it's more like an exception than the general usage scenario.