Compare commits

...

9 Commits

Author SHA1 Message Date
Andrew Eikum
7db3449f24 update vkd3d-proton to 2.0 2020-11-09 09:26:02 -06:00
Rémi Bernon
2daeb14bd0 proton: Add dotnetfx35.exe builtin override. 2020-11-06 14:23:52 -06:00
Andrew Eikum
7921f4b7da update wine 2020-11-06 14:23:52 -06:00
Giovanni Mascellani
d7519144f1 lsteamclient: Allow callbacks to be NULL
Steamworks API seems to accept NULL callbacks, simply avoiding to call
them when this is the case.
2020-11-06 12:45:08 -06:00
Andrew Eikum
0a38d9a832 media-converter: Also support video/quicktime 2020-11-06 09:28:10 -06:00
Andrew Eikum
73fec11226 proton: Attempt to log SLR version 2020-10-29 11:06:20 -05:00
Paul Gofman
dd1b59b191 lsteamclient: Fix end of string check in relative path conversion. 2020-10-29 10:07:46 -05:00
Jacob Hrbek
bc6237f9b1 Vagrantfile: fixed typo 2020-10-19 14:22:02 -05:00
Newbyte
3feba03f11 proton: Make log directory configurable via PROTON_LOG_DIR 2020-10-19 14:22:02 -05:00
9 changed files with 39 additions and 7 deletions

View File

@ -264,7 +264,8 @@ the Wine prefix. Removing the option will revert to the previous behavior.
| Compat config string | Environment Variable | Description |
| :-------------------- | :----------------------------- | :----------- |
| | <tt>PROTON_LOG</tt> | Convenience method for dumping a useful debug log to `$HOME/steam-$APPID.log`. For more thorough logging, use `user_settings.py`. |
| | <tt>PROTON_LOG</tt> | Convenience method for dumping a useful debug log to `$PROTON_LOG_DIR/steam-$APPID.log` For more thorough logging, use `user_settings.py`. |
| | <tt>PROTON_LOG_DIR</tt> | Output log files into the directory specified. Defaults to your home directory. |
| | <tt>PROTON_DUMP_DEBUG_COMMANDS</tt> | When running a game, Proton will write some useful debug scripts for that game into `$PROTON_DEBUG_DIR/proton_$USER/`. |
| | <tt>PROTON_DEBUG_DIR</tt> | Root directory for the Proton debug scripts, `/tmp` by default. |
| <tt>wined3d</tt> | <tt>PROTON_USE_WINED3D</tt> | Use OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11, d3d10, and d3d9. |

2
Vagrantfile vendored
View File

@ -56,7 +56,7 @@ Vagrant.configure(2) do |config|
v.default_prefix = ENV['USER'].to_s.dup.concat('_').concat(File.basename(Dir.pwd))
end
#deiban10-based build VM
#debian10-based build VM
config.vm.define "debian10", primary: true do |debian10|
debian10.vm.box = "generic/debian10"

View File

@ -164,7 +164,7 @@ bool steamclient_dos_path_to_unix_path(const char *src, char *dst, int is_url)
const char *s;
char *d;
for(s = src, d = dst; *src; ++s, ++d){
for(s = src, d = dst; *s; ++s, ++d){
if(*s == '\\')
*d = '/';
else

View File

@ -113,6 +113,9 @@ void *create_LinuxISteamMatchmakingServerListResponse(void *win, const char *ver
{
struct gccServerListResponse *ret;
if (!win)
return NULL;
/* FIXME: When is it save to free this? CancelServerQuery? */
ret = (struct gccServerListResponse *)HeapAlloc(GetProcessHeap(), 0, sizeof(*ret));
if(!ret)
@ -163,6 +166,9 @@ void *create_LinuxISteamMatchmakingPingResponse(void *win, const char *version)
{
struct gccPingResponse *ret;
if (!win)
return NULL;
ret = (struct gccPingResponse *)HeapAlloc(GetProcessHeap(), 0, sizeof(*ret));
if(!ret)
return NULL;
@ -217,6 +223,9 @@ void *create_LinuxISteamMatchmakingPlayersResponse(void *win, const char *versio
{
struct gccPlayersResponse *ret;
if (!win)
return NULL;
ret = (struct gccPlayersResponse *)HeapAlloc(GetProcessHeap(), 0, sizeof(*ret));
if(!ret)
return NULL;
@ -271,6 +280,9 @@ void *create_LinuxISteamMatchmakingRulesResponse(void *win, const char *version)
{
struct gccRulesResponse *ret;
if (!win)
return NULL;
ret = (struct gccRulesResponse *)HeapAlloc(GetProcessHeap(), 0, sizeof(*ret));
if(!ret)
return NULL;

View File

@ -361,6 +361,7 @@ impl ObjectSubclass for VideoConv {
caps.append(gst::Caps::builder("video/x-ms-asf").build());
caps.append(gst::Caps::builder("video/x-msvideo").build());
caps.append(gst::Caps::builder("video/mpeg").build());
caps.append(gst::Caps::builder("video/quicktime").build());
}
let sink_pad_template = gst::PadTemplate::new(
"sink",

19
proton
View File

@ -560,6 +560,7 @@ class Session:
self.env = dict(os.environ)
self.dlloverrides = {
"steam.exe": "b", #always use our special built-in steam.exe
"dotnetfx35.exe": "b", #replace the broken installer, as does Windows
"mfplay": "n" #disable built-in mfplay
}
@ -629,6 +630,19 @@ class Session:
self.compat_config.discard(config_name)
return True
def try_log_slr_versions(self):
try:
if "PRESSURE_VESSEL_RUNTIME_BASE" in self.env:
with open(self.env["PRESSURE_VESSEL_RUNTIME_BASE"] + "/VERSIONS.txt", "r") as f:
for l in f:
l = l.strip()
if len(l) > 0 and not l.startswith("#"):
cleaned = l.split("#")[0].strip().replace("\t", " ")
split = cleaned.split(" ", maxsplit=1)
self.log_file.write(split[0] + ": " + split[1] + "\n")
except (OSError, IOError, TypeError, KeyError):
pass
def init_session(self):
self.env["WINEPREFIX"] = g_compatdata.prefix_dir
@ -703,7 +717,9 @@ class Session:
if "SteamGameId" in self.env:
if self.env["WINEDEBUG"] != "-all":
lfile_path = os.environ["HOME"] + "/steam-" + os.environ["SteamGameId"] + ".log"
basedir = os.environ.get("PROTON_LOG_DIR", os.environ["HOME"])
makedirs(basedir)
lfile_path = basedir + "/steam-" + os.environ["SteamGameId"] + ".log"
if os.path.exists(lfile_path):
os.remove(lfile_path)
self.log_file = open(lfile_path, "w+")
@ -713,6 +729,7 @@ class Session:
self.log_file.write("SteamGameId: " + self.env["SteamGameId"] + "\n")
self.log_file.write("Command: " + str(sys.argv[2:] + self.cmdlineappend) + "\n")
self.log_file.write("Options: " + str(self.compat_config) + "\n")
self.try_log_slr_versions()
self.log_file.write("======================\n")
self.log_file.flush()
else:

View File

@ -3,7 +3,8 @@
#Settings here will take effect for all games run in this Proton version.
user_settings = {
#Logs are saved to $HOME/steam-<STEAM_GAME_ID>.log, overwriting any previous log with that name.
#By default, logs are saved to $HOME/steam-<STEAM_GAME_ID>.log, overwriting any previous log with that name.
#Log directory can be overridden with $PROTON_LOG_DIR.
#Wine debug logging
"WINEDEBUG": "+timestamp,+pid,+tid,+seh,+debugstr,+loaddll,+mscoree",

@ -1 +1 @@
Subproject commit 9fa5bb91ddf7415fdc6f40e32812caff8e42f542
Subproject commit 60ac9b4d515cd8647ccb97591016f3f4058c7db1

2
wine

@ -1 +1 @@
Subproject commit b48ce9a2778a4ff7ee14067f0ea73693ed70c52d
Subproject commit 6f19574d6f56d57a3d729fc22f71f303cc2067ea