protonscr

Tessellation shaders not translated correctly (DXBC)

vkd3dclosed
HansKristian-Work/vkd3d-proton#227 · opened 2020-07-28 by alexfs · updated 2021-04-19 · 3 comments · github
Aalexfs 2020-07-28 github

When a hull shader (DXBC) contains CLIP_DISTANCE and CULL_DISTANCE parameters in the input signature, the generated SPIRV is incorrect.
Getting the following crash with Intel Mesa drivers:
./src/compiler/nir/nir_lower_clip_cull_distance_arrays.c:54: get_unwrapped_array_length: Assertion `glsl_type_is_array(type)' failed.

My assumption that clip and cull vars are not translated as an array type?

Ddoitsujin maintainer 2020-07-29 github

Can you please give us something to reproduce all the different issues you're encouterning with?

Maybe there's a bug, I don't know, because I have no idea what you're doing exactly. If your project cannot be published/shared with us, then please either write a separate test case (in this case I'm happy with a dxbc and/or hlsl shader), or feel free to fix the issues yourself and file a PR.

Aalexfs 2020-07-29 github

Binary DXBC is attached. It might be looking a bit weird because the container DXBC was reconstructed from the SHDR code section and input/output signatures provided by the windows driver APIs. Obviously for that particular reason I don't have the shader source code.

hull.zip

Mmisyltoad maintainer 2021-04-15 github

Bit late in looking into this, but what was attached wasn't valid DXBC. I wasn't able to disassemble it.

Nothing extracted yet.