HansKristian-Work / vkd3d-proton

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
GNU Lesser General Public License v2.1
1.94k stars 202 forks source link

Unhandled exception when using VKD3D_CONFIG=dxr [Control Ultimate Edition] #579

Closed jnines closed 3 years ago

jnines commented 3 years ago

Game: Control Ultimate Edition via Steam OS: Arch Kernel: 5.11.6-138-tkg-pds GPU: 3080 Driver: tried both 460.56 and Vulkan Beta 455.50.10 Vkd3d-proton built from git, tried through both newest proton_tkg and Proton-6.1-GE-2 (replacing the respective .dll's) steam-870780.log

Game never starts, the proton log shows

[ERROR] FATAL UNHANDLED EXCEPTION: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: XOR data length expected 2046820352, read 3830
Parameter name: stream
  at System.Drawing.Icon.InitFromStreamWithSize (System.IO.Stream stream, System.Int32 width, System.Int32 height) [0x0073a] in <15a0cb57e55e40adb4c5afb4c7ddc9e9>:0 
  at System.Drawing.Icon..ctor (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) [0x00095] in <15a0cb57e55e40adb4c5afb4c7ddc9e9>:0 
  at (wrapper managed-to-native) System.Reflection.RuntimeConstructorInfo.InternalInvoke(System.Reflection.RuntimeConstructorInfo,object,object[],System.Exception&)
  at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x00005] in <3d7a9349295c42b6abb3487b4473a6b8>:0 
   --- End of inner exception stack trace ---

Don't really know my way around Wine/Proton yet. Posting it in case it's an actual bug and not just me being an idiot. Game runs fine without VKD3D_CONFIG set in DX12/VKD3D.

misyltoad commented 3 years ago

Looks like it's trying to invoke some dot net stuff, probably for UI.

jnines commented 3 years ago

Looks like it's trying to invoke some dot net stuff, probably for UI.

You would be correct. Only .net I could get installed there was 4, and it wasn't happy about it. But I think I figured it out. It must be the launcher popup that asks whether you want to use DX11 or DX12. Renamed the dx12 executable to Control.exe and it works perfectly. So guess I am an idiot.

Thanks

enveeed commented 3 years ago

Note that you can also force Control to start with either 11 or 12 using the -dx11 or -dx12 launch options, you don't have to rename the executable.