示例#1
0
    def get_env(self, os_env=False):
        """Return environment variables used by the game"""
        # Always false to runner.get_env, the default value
        # of os_env is inverted in the wine class,
        # the OS env is read later.
        env = super(wine, self).get_env(False)
        if os_env:
            env.update(os.environ.copy())
        show_debug = self.runner_config.get("show_debug", "-all")
        if show_debug != "inherit":
            env["WINEDEBUG"] = show_debug
        env["WINEARCH"] = self.wine_arch
        env["WINE"] = self.get_executable()
        if self.prefix_path:
            env["WINEPREFIX"] = self.prefix_path

        if "WINEESYNC" not in env or env["WINEESYNC"] != "1":
            env["WINEESYNC"] = "1" if self.runner_config.get("esync") else "0"

        if "WINEFSYNC" not in env or env["WINEFSYNC"] != "1":
            env["WINEFSYNC"] = "1" if self.runner_config.get("fsync") else "0"

        # On AMD, mimic the video memory management behavior of Windows DX12
        # drivers more closely, otherwise d3d12 games will crash and have other
        # funky issues.
        if self.runner_config.get("dxvk") and drivers.is_amd():
            env["RADV_DEBUG"] = "zerovram"

        overrides = self.get_dll_overrides()
        if overrides:
            self.dll_overrides.update(overrides)
            env["WINEDLLOVERRIDES"] = get_overrides_env(self.dll_overrides)
        return env
示例#2
0
 def get_requirements(self, include_optional=True):
     """Return used system requirements"""
     _requirements = self.required_components.copy()
     if include_optional:
         _requirements += self.optional_components
         if drivers.is_amd():
             _requirements.append("RADEON")
     return _requirements
示例#3
0
 def get_requirements(self, include_optional=True):
     """Return used system requirements"""
     _requirements = self.required_components.copy()
     if include_optional:
         _requirements += self.optional_components
         if drivers.is_amd():
             _requirements.append("RADEON")
     return _requirements
示例#4
0
文件: wine.py 项目: xnick/lutris
    def get_env(self, os_env=False):
        """Return environment variables used by the game"""
        # Always false to runner.get_env, the default value
        # of os_env is inverted in the wine class,
        # the OS env is read later.
        env = super(wine, self).get_env(False)
        if os_env:
            env.update(os.environ.copy())
        show_debug = self.runner_config.get("show_debug", "-all")
        if show_debug != "inherit":
            env["WINEDEBUG"] = show_debug
        env["WINEARCH"] = self.wine_arch
        env["WINE"] = self.get_executable()
        if is_gstreamer_build(self.get_executable()):
            path_64 = os.path.join(WINE_DIR, self.get_version(),
                                   "lib64/gstreamer-1.0/")
            path_32 = os.path.join(WINE_DIR, self.get_version(),
                                   "lib/gstreamer-1.0/")
            if os.path.exists(path_64) or os.path.exists(path_32):
                env["GST_PLUGIN_SYSTEM_PATH_1_0"] = path_64 + ":" + path_32
        if self.prefix_path:
            env["WINEPREFIX"] = self.prefix_path

        if not ("WINEESYNC" in env and env["WINEESYNC"] == "1"):
            env["WINEESYNC"] = "1" if self.runner_config.get("esync") else "0"

        if not ("WINEFSYNC" in env and env["WINEFSYNC"] == "1"):
            env["WINEFSYNC"] = "1" if self.runner_config.get("fsync") else "0"

        # On AMD, mimic the video memory management behavior of Windows DX12
        # drivers more closely, otherwise d3d12 games will crash and have other
        # funky issues.
        # RADV_DEBUG is a comma separated list. If it is already set, we want to
        # append to it.
        if self.runner_config.get("dxvk") and drivers.is_amd():
            if "RADV_DEBUG" not in env or not env["RADV_DEBUG"]:
                env["RADV_DEBUG"] = "zerovram"
            elif "zerovram" not in env["RADV_DEBUG"]:
                env["RADV_DEBUG"] += ",zerovram"

        overrides = self.get_dll_overrides()
        if overrides:
            self.dll_overrides.update(overrides)
        env["WINEDLLOVERRIDES"] = get_overrides_env(self.dll_overrides)
        return env