Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Linux Support #13

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

AutonomicPerfectionist
Copy link

This PR adds initial Linux support to these test harnesses.

Not all harnesses and features will work on Linux, to be clear. So far, I have the CS:GO benchmark working up until the game start detection. Since CS:GO recently was updated to CS:2, there is no longer a News icon for Markbench to detect, so it hangs there. I commented out those lines locally, and it proceeded further, making it into the map automatically and attempting to start the benchmark. The benchmark command was not found, but I verified the files were copied to the correct location, so it may have something to do with the recent update.

TODO

  • Add Linux codepaths for other utility functions
  • Buy Cyberpunk (woohoo) to get that test running next
  • Add documentation for Linux installation and usage

Note
I understand you are not accepting contributions at this time. However, I felt it was important for the Linux gaming community to add support as quickly as possible. Even if these changes are not merged, having these harnesses working on Linux gives us a jumping-off point for making the rest of Markbench work on Linux, once it is released.

@LOENS2
Copy link

LOENS2 commented Jan 26, 2024

Great addtion! I would like to see that merged, because I'm a linux user. I assume however, that It might be tough to bench wine games.

@AutonomicPerfectionist
Copy link
Author

On the contrary, it should be pretty similar to benching them on Windows, we have access to the filesystem for logs and config files, and can send the contents of the screen to the markbench image recognition server in the same manner. If worse comes to worse, we could even install python into the wine environment and run markbench itself under wine. In fact, it might be easier to bench under wine, because you can easily automate the installation of dependencies into the environment through winetricks whereas on Windows it would either be a manual process or require custom download scripts


def exec_steam_run_command(game_id: int, steam_path=None) -> Popen:
if os.name == 'nt':
Copy link

@rcmaehl rcmaehl Jan 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would remove this nt section entirely for get_app_install_location. Is I pointed out in #44, it can't be counted on reliably unlike the other method which should be OS-agnostic

@rcmaehl
Copy link

rcmaehl commented Jan 30, 2024

BTW @AutonomicPerfectionist if you don't have Cyberpunk by Feb 16 let me know and I got you

@LOENS2
Copy link

LOENS2 commented Jan 30, 2024

@rcmaehl I'm going to look into that as well. I'm relatively good in Python and I have Cyberpunk to test with. But don't count on me, as I'm quite busy at the moment and I don't know when I'll have time to work on that.

@knedl1k
Copy link

knedl1k commented Jul 26, 2024

Any updates?

@AutonomicPerfectionist
Copy link
Author

Apologies, I got wrapped up in my research. I had started fixing merge conflicts some time ago but found that the CS:GO/2 test was disabled due to Valve not enabling scripting support in the release build of CS:2. However, I had recalled that I was able to get it working when it first released, and was going to look into what I did and whether it could be used to reenable the test here. That's when I got very busy unfortunately.

I haven't looked at this repo in a very long time, but if this is still a desired PR I may be able to fix it up sometime after late August, I will likely be busy with research until then

@knedl1k
Copy link

knedl1k commented Aug 6, 2024

Thank you for the information. If possible, I would greatly appreciate an update on this PR. Of course, I understand that this is not your priority, but if you have the time and inclination to fix it, I would greatly appreciate it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants