libudev-dev is needed on WSL Ubuntu 22.04
Added instruction to install the package libudev-dev
Did you test WSL as fully functional today? Launches a game, VSH, or both? Just up to build success and RPCSX --help?
Currently I am blocked at the compile process. Something is wrong with Vulkan but I did not had the time to look deep into it.
rpcsx/rpcsx/gpu/lib/vk/src/vk.cpp:988:8: error: ‘PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT’ was not declared in this scope
988 | (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)importDeviceVkProc(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcsx/gpu/lib/vk/src/vk.cpp:908:21: error: ‘PFN_vkCmdSetAlphaToCoverageEnableEXT’ was not declared in this scope; did you mean ‘PFN_vkCmdSetColorWriteEnableEXT’?
908 | static auto fn = (PFN_vkCmdSetAlphaToCoverageEnableEXT)importDeviceVkProc(
rpcsx/rpcsx/gpu/lib/vk/src/vk.cpp:822:10: error: ‘fn’ was not declared in this scope
822 | return fn(commandBuffer, stageCount, pStages, pShaders);
I have a lot of these errors
Thanks, I was not aware of RPCSX compiling successfully on WSL since the merge of the hard fork of RPCS3. I haven't bisected exactly when the builds started falling to compile. Yet I'm sure it's got something to do with RPCS3 doesn't compile on WSL. If you do figure out how to make compiling RPCS3 entirely optional for RPCSX then you should be able to successfully compile the - PlayStation 4 and 5 functionality.
Well I managed to overcome the Vulkan error by updating by hand the vulkan headers on the system. Currently failing at linking step
[ 86%] Linking CXX executable ../bin/rpcsx
CMakeFiles/rpcsx.dir/iodev/ajm.cpp.o: in function `AjmDevice::open(orbis::utils::Ref<orbis::File>*, char const*, unsigned int, unsigned int, orbis::Thread*)':
ajm.cpp:(.text+0x3f): relocation truncated to fit: R_X86_64_32S against symbol `vtable for AjmFile' defined in .rodata._ZTV7AjmFile[_ZTV7AjmFile] section in CMakeFiles/rpcsx.dir/iodev/ajm.cpp.o
ajm.cpp:(.text+0x47): relocation truncated to fit: R_X86_64_32S against `.rodata'
CMakeFiles/rpcsx.dir/iodev/ajm.cpp.o: in function `ajmToAvFormat(AJMFormat)':
ajm.cpp:(.text+0x55a): relocation truncated to fit: R_X86_64_32S against `.rodata'
CMakeFiles/rpcsx.dir/iodev/ajm.cpp.o: in function `createAjmCharacterDevice()':
ajm.cpp:(.text+0x5b7): relocation truncated to fit: R_X86_64_32S against symbol `vtable for AjmDevice' defined in .rodata._ZTV9AjmDevice[_ZTV9AjmDevice] section in CMakeFiles/rpcsx.dir/iodev/ajm.cpp.o
CMakeFiles/rpcsx.dir/iodev/ajm.cpp.o: in function `resetAt9(Instance*)':
ajm.cpp:(.text+0x696): relocation truncated to fit: R_X86_64_32 against `.rodata._ZNK5Xbyak5Error4whatEv.str1.1'
ajm.cpp:(.text+0x6a0): relocation truncated to fit: R_X86_64_32 against `.rodata.str1.1'
CMakeFiles/rpcsx.dir/iodev/ajm.cpp.o: in function `ajm_ioctl(orbis::File*, unsigned long, void*, orbis::Thread*)':
ajm.cpp:(.text+0x712): relocation truncated to fit: R_X86_64_32S against `.rodata'
ajm.cpp:(.text+0x874): relocation truncated to fit: R_X86_64_32 against `.rodata'
ajm.cpp:(.text+0x87f): relocation truncated to fit: R_X86_64_32 against `.rodata.str1.1'
ajm.cpp:(.text+0x884): relocation truncated to fit: R_X86_64_32 against `.rodata.str1.1'
ajm.cpp:(.text+0xa97): additional relocation overflows omitted from the output
/usr/bin/ld: CMakeFiles/rpcsx.dir/iodev/dmem.cpp.o: in function `DmemDevice::~DmemDevice() [clone .cold]':
dmem.cpp:(.text.unlikely+0x137): undefined reference to `__cxa_call_terminate'
/usr/bin/ld: ../3rdparty/SPIRV-Cross/libspirv-cross-glsl.a(spirv_glsl.cpp.o): in function `spirv_cross::Meta::operator=(spirv_cross::Meta const&) [clone .isra.0] [clone .cold]':
spirv_glsl.cpp:(.text.unlikely+0x68b2): undefined reference to `__cxa_call_terminate'
/usr/bin/ld: ../3rdparty/SPIRV-Cross/libspirv-cross-core.a(spirv_parser.cpp.o): in function `spirv_cross::SPIRFunction::clone(spirv_cross::ObjectPoolBase*)':
spirv_parser.cpp:(.text._ZN11spirv_cross12SPIRFunction5cloneEPNS_14ObjectPoolBaseE[_ZN11spirv_cross12SPIRFunction5cloneEPNS_14ObjectPoolBaseE]+0xc1d): undefined reference to `__cxa_call_terminate'
collect2: error: ld returned 1 exit status
gmake[2]: *** [rpcsx/CMakeFiles/rpcsx.dir/build.make:1153: bin/rpcsx] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:11233: rpcsx/CMakeFiles/rpcsx.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
I can think two possible root causes
- I compiled g++-14 by hand for WSL Ubuntu 22.04
- Maybe some fIPC flags are missing
I will check at WSL Ubuntu 24 which have g++-14 if the linking problem goes away.
Symbol problem, happened me on LFS w Libassuan. Try making a versioning file if it doesnt exist. If it exists, make those symbols yourself.