Are you sure you uploaded the .dxil shader correctly? That file looks corrupt, and I get an error:
shaders/c26afb49ae5ce17a.dxil
tar: shaders/c26afb49ae5ce17a.dxil: implausibly old time stamp -9223372036854775808
shaders/c26afb49ae5ce17a.spv
tar: shaders/c26afb49ae5ce17a.spv: implausibly old time stamp -9223372036854775808
Which game is this?
The file data looks fine, the timestamps are just messed up because of how I created the tar. The game is in development. Thanks for taking a look.
Well, the problem is that the DXIL itself is just corrupt and does not parse at all. The DXBC blob header itself is corrupt, so not sure what happened.
Interesting. That was dumped with VKD3D_SHADER_DUMP_PATH. There are a few more shaders with this problem, but many more work fine, and this build of the game works on Windows. I'm out of town this week but will take a look when I get back.
I'll try to run the shader through native driver and see if it blows up. I've never seen SHADER_DUMP_PATH export an obviously corrupt blob before, but clearly something must have happened since you provided an invalid .spv coming out of dxil-spirv, but in my case, the DXIL fails on the first 3 lines of DXBC file container parsing.
@SpicySwordfish did you get around to checking this?
@SpicySwordfish Friendly ping
I am observing the same error. A DXIL shader is being translated to SPIR-V with malformed structured control flow.
Error:
spirv-val f8e780c05cac446b.spv
error: line 524: Block '4264[%4264]' is already a merge block for another header
%main = OpFunction %void None %3
Is this the same game, or just a completely unrelated game that happens to hit a dxil-spirv bug too?
Is this the same game, or just a completely unrelated game that happens to hit a dxil-spirv bug too?
I'm seeing the same issue in Battlefield 6. From what I can tell, the original report involves a game that's still in development.
Fixed that shader on dxil-spirv master at least.
@SpicySwordfish comment again if you get back to checking this
Confirmed! with vkd3d-proton master (built with dxil-spirv master), the issue no longer reproduces in my Battlefield 6 capture.
Conversion to SPIR-V for a lens flare compute shader is successful but generates invalid SPIR-V, which causes a winevulkan assertion when calling vkCreateComputePipelines. The dxil and generated spv for the shader is attached.
VKD3D-Proton logs this:
System information
shader.tar.gz