protonscr

UE 5.1 MAWI demo mis-renders mesh shader path

vkd3dclosed
HansKristian-Work/vkd3d-proton#1632 · opened 2023-07-14 by HansKristian-Work · updated 2023-08-16 · 8 comments · github
HHansKristian-Work 2023-07-14 github

Old issue with downloads links of demo: https://github.com/HansKristian-Work/vkd3d-proton/issues/1599.

Repro video on RADV: https://1drv.ms/u/s!Amz0nBA4PrbSm0Ch0vDm_Akg0UnQ?e=we1bBM
Repro video on NV: https://1drv.ms/u/s!Amz0nBA4PrbSmz8fb2nasNOMMKkg?e=yjcjO1

Looks very similar overall, so that should rule out RADV. With mesh shaders disabled, it seems to render without these holes. Nanite is being used in both paths here which leaves mesh shaders as the likely culprit.

VVenemo 2023-07-14 github

What happens when you set r.Nanite.MeshShaderRasterization to 0, or just use VKD3D_DISABLE_EXTENSIONS=VK_EXT_mesh_shader does that work around this issue?

Looks very similar overall, so that should rule out RADV.

Considering how few real users of mesh shading there are, it isn't impossible that it still has issues. But of course it'd be hilarious if NVidia had the same bug in their driver.

HHansKristian-Work maintainer 2023-07-14 github

With mesh shaders disabled, it seems to render without these holes.

EeXt73 2023-07-14 github

It's the same under nvidia - including UE 5.2 and MWTropicalRainforest demos - textures flicker - disappear and reappear + artifacts appear

Screenshot_20230713_205713
Screenshot_20230713_205744

EeXt73 2023-07-14 github

ok I can confirm that under Nvidia excluding Mesh Shader = VKD3D_DISABLE_EXTENSIONS=VK_EXT_mesh_shader there are no these artifacts:
Screenshot_20230714_212003
Screenshot_20230714_212044
Screenshot_20230714_212116

Ddoitsujin maintainer 2023-07-24 github

Looked at this a bit, the mesh shaders themselves are all more or less trivial and there are no task shaders involved. Things like MS<->FS interface matching and just basic shader metadata like maximum vertex/primitive count also all look correct. Strongly doubt that mesh shaders themselves are the problem - but they all go through ExecuteIndirect, so the compute shaders generating those draws might be broken.

It just seems to work™ just fine on RADV with current mesa-git though, so there's that.

SSaancreed 2023-07-25 github

Hmm, I'm not sure why but for some reason glitches I see on my NV GPU when using mesh shader path seem to be quite a bit more severe? If you excuse the horrible quality:

https://github.com/HansKristian-Work/vkd3d-proton/assets/26201033/4ca11515-c2e2-4e7c-9919-27a776d4e80a

That was on GeForce RTX 4080 Mobile, 535.86.05 driver, db608963

EeXt73 2023-07-26 github

Hmm, I'm not sure why but for some reason glitches I see on my NV GPU when using mesh shader path seem to be quite a bit more severe? If you excuse the horrible quality:

MAWI.mp4
That was on GeForce RTX 4080 Mobile, 535.86.05 driver, db60896

I confirm it has the same without VKD3D_DISABLE_EXTENSIONS

HHansKristian-Work maintainer 2023-08-16 github

Fixed on master.