Open haasn opened 6 years ago
The game must be opening multiple Direct3D contexts (possibly for multi-threaded rendering or something like that), which WINE is translating into multiple OpenGL contexts. The weird thing is that WINE is apparently creating actual windows for all of these contexts which clearly aren't actually used for displaying anything.
Unfortunately the current streaming protocol is very primitive, there is no easy way to check from SSR which of these streams is actually active without opening all streams at the same time, which is problematic. I was actually planning to change the protocol to a more advanced socket-based one, which would make it easier to solve problems like this. But for now there isn't much I can do.
Unfortunately the current streaming protocol is very primitive, there is no easy way to check from SSR which of these streams is actually active without opening all streams at the same time, which is problematic. I was actually planning to change the protocol to a more advanced socket-based one, which would make it easier to solve problems like this. But for now there isn't much I can do.
Since the “frame size = XYZ” message isn't printed for most of them, can't you just delay creating the shm socket until you actually know the frame size?
The game must be opening multiple Direct3D contexts (possibly for multi-threaded rendering or something like that)
Yeah dunno. It almost certainly isn't multi-threaded rendering because the game is ancient, poorly written and only runs on a single thread anyway. It's also 100% cpu bound. I do use CSMT, but I also tried with CSMT disabled and the result was the same.
Reproduction:
As you can see, it opens up a whole bunch of video streams, but onl the
glx0002
is the correct one (it's the only one that has a valid frame size).The SSR program gets confused and can't handle this:
As a crude work-around, I can use a different channel and only symlink the video stream I want:
Now, if I set the channel name to
channel-test
in SSR, it works fine: