STEAM 群組
Steam Client Beta SteamBeta
STEAM 群組
Steam Client Beta SteamBeta
34,544
遊戲中
97,984
線上
創立
2013 年 1 月 8 日
此主題已被鎖定
Zhrindhar 2013 年 3 月 21 日 下午 5:09
Is there a 64-bit Steam client for Windows?
Steam support seems to be oblivious about its own product and has no clue, so I am asking the question here...is there a 64-bit Steam client for Windows? I hope this group is not as lacking in knowledge!! ;-)
< >
目前顯示第 316-330 則留言,共 403
Crashed 2021 年 6 月 20 日 下午 12:31 
引用自 Kaldaien
That would have been accurate a few years ago, but the Steam client would now be constrained by a 32-bit Chromium webhelper that cannot use its thread-optimized memory allocator for lack of address space.

Since 99% of the new client is a web browser and you do not want a 32-bit browser starved for memory, it stands to reason it's time for 64-bit. Valve realized this and the client is already 64-bit on Windows save for the service component.

Steam.exe is still 32-bit and I do believe that does handle a lot of the client logic, correct?
TheOddsBodkins 2021 年 6 月 21 日 上午 3:10 
Just because steam.exe is 32-bit doesn't mean the webhelper process has to be too. The webhelper process has been 64-bit for years now, and it is arguably the only part of the client that actually benefits from being 64-bit.

--

引用自 Crashed
Steam.exe is still 32-bit and I do believe that does handle a lot of the client logic, correct?
I'm not an expert but, I think steam.exe handles all the non-HTTP Steam network connection stuff, "game downloading, decryption and installation", cloud download/upload, license authentication (DRM), and game stat upload/download. It obviously does other stuff too (like the old UI), but I think I got all the most important stuff listed.

The only part, where I can think of that, having a 64-bit code could make a difference is the decryption process when you are downloading a game. But I'm fairly sure, that at best we are talking about few seconds difference in install speed when downloading ~20GB game.
Crashed 2021 年 6 月 21 日 上午 6:01 
Decryption would probably not benefit but depending on how compression is implemented that might be the case.
TheOddsBodkins 2021 年 6 月 21 日 上午 8:10 
引用自 Crashed
Decryption would probably not benefit but depending on how compression is implemented that might be the case.
Right, I forgot download decompression. However, since both decompression and decryption is bottlenecked by hard drive read/write speeds anyway, you don't really get any real world improvement from 64-bit code as long as the code is properly threaded.
Crashed 2021 年 7 月 2 日 下午 2:28 
I can confirm Steam works almost perfectly in Windows 11 (Insider Preview build 22000.51) despite the client's core still being 32-bit.
最後修改者:Crashed; 2021 年 7 月 2 日 下午 2:28
Tharon 2021 年 7 月 2 日 下午 3:17 
"almost" ?
Crashed 2021 年 7 月 2 日 下午 3:28 
引用自 Tharon
"almost" ?
I noticed that Chat isn't displaying emojis correctly, perhaps because the old version of Chormium can't detect the Windows version.
PoofyGummy 2021 年 7 月 31 日 上午 10:46 
I can't frikkin believe that it's been almost a decade and steam is by default still 32 bit.
ReBoot 2021 年 8 月 1 日 下午 11:21 
A huge advantage of having one client to maintain rather than two, is maintenance costs! So as long as both Windows 32 and 64 bit can be served by one binary, there's a genuine case for not maintaining two versions at once.

... especially given that tiny little fact that dev time is a finite resource. There's only so many work time to spend and there's projects that got bigger impacts, i.e. the software for the Steam Deck.
aiusepsi 2021 年 8 月 2 日 上午 4:09 
引用自 ReBoot
A huge advantage of having one client to maintain rather than two, is maintenance costs!
You make it sound like they'd be two totally separate things. They're not, it's two binaries built from the exact same codebase. From a maintenance perspective, it's trivial, especially as there is already a shipping x86_64 version for macOS, and they're already shipping 64-bit versions of steamclient.dll, steamwebrtc.dll, GameOverlayRenderer.dll, steamerrorreporter.exe, crashhandler.dll, SteamOverlayVulkanLayer.dll, tier0_s.dll, vstdlib_s.dll, etc.

I'm really going to have to write a Python script (when I have time) to count the percentage of bytes of code in the Steam client which already have a shipping 64-bit Windows version, because I bet it's pretty high.

Also, it's not like they'd even have to build any extra infrastructure to deal with shipping multiple versions of a binary; they're already shipping 3 versions of the CEF and webhelper binaries[github.com] for Windows, for various combinations of OS versions and bitness.
DePhoegon 2021 年 8 月 2 日 下午 4:04 
引用自 aiusepsi
引用自 ReBoot
A huge advantage of having one client to maintain rather than two, is maintenance costs!
You make it sound like they'd be two totally separate things. They're not, it's two binaries built from the exact same codebase. From a maintenance perspective, it's trivial, especially as there is already a shipping x86_64 version for macOS, and they're already shipping 64-bit versions of steamclient.dll, steamwebrtc.dll, GameOverlayRenderer.dll, steamerrorreporter.exe, crashhandler.dll, SteamOverlayVulkanLayer.dll, tier0_s.dll, vstdlib_s.dll, etc.

I'm really going to have to write a Python script (when I have time) to count the percentage of bytes of code in the Steam client which already have a shipping 64-bit Windows version, because I bet it's pretty high.

Also, it's not like they'd even have to build any extra infrastructure to deal with shipping multiple versions of a binary; they're already shipping 3 versions of the CEF and webhelper binaries[github.com] for Windows, for various combinations of OS versions and bitness.
you realize ... you're an idiot right?

Overlays have to match the game ( else it causes crashes & other errors ) That steam will always have 32bit ones so long as there are 32bit games & that will include wrappers if an OS can't support that natively anymore.

That the many parts of windows where a program like steam would be better with some parts 32bit & some parts 64bit. This won't change until 'THE LARGEST USER BASE' WINDOWS drops 32bit, and that won't change until cpus stop being hybrid x86_64 as the mainstream default.

ATM, it's easy for linux, windows, or even MacOS to either native or extend support to 32bit because the default CPU is x86_64, and No Mac/Win ARM based chips aren't changing that because the entire back library or programs & games people want to keep are still for the x86_64 design, and aren't even a small fraction of their respective OS %

aiusepsi 2021 年 8 月 3 日 上午 1:13 
引用自 DePhoegon
you realize ... you're an idiot right?

Overlays have to match the game ( else it causes crashes & other errors )
Name calling is a little uncalled for. Yes, DLLs have to match the bitness of the process that they're going to be loaded into, which is why they ship 64-bit versions of steamclient.dll etc. for Windows, because it provides the Steamworks API for games. steamclient.dll also happens to contain most of the core code for the Steam client itself, basically everything but some of the UI code. I say "some of" because the Steam UI is increasingly implemented in Javascript, which is running in a 64-bit webhelper process.

The point was to refute the idea that Valve shipping 64-bit Steam binaries was some insurmountable maintenance burden. Which it clearly isn't, because all of the code for the Steam client is already shipping as a 64-bit binary, if not on Windows for a particular binary then for sure on macOS.

That steam will always have 32bit ones so long as there are 32bit games
Yeah, of course. Nobody is saying that the 32-bit binaries should go away, just that they should ship a 64-bit steam.exe and any of the DLLs which currently don't have 64-bit versions so that the main Steam process can run as a 64-bit process.

Just like it isn't an insurmountable maintenance obstacle to ship 64-bit binaries for Steamworks and overlay purposes, it would be perfectly possible to include the same binaries as 32-bit versions in a 64-bit Steam client.
DePhoegon 2021 年 8 月 3 日 下午 3:49 
引用自 aiusepsi
Just like it isn't an insurmountable maintenance obstacle to ship 64-bit binaries for Steamworks and overlay purposes, it would be perfectly possible to include the same binaries as 32-bit versions in a 64-bit Steam client.
It's not 'Insurmountable' It's Pointless entirely.
1. 32bit versions of Windows & linux will always exist (untill mainstream CPUs shift off of x86_64)
-- this means they will need to maintain a 32bit version of 'every aspect',
~~ which means there are some aspects of Steam clients that do not & will not benefit being made* into 64 bit when 32 bit is entirely viable.
2. This only introduces more vulnerabilities & security exploits, along with possible 'user generated' misuse of the wrong bit executable.

The way they do it currently supports both systems, prevents dumb users from using the wrong version of the software, and further prevents future work of having to gate off x64bit games from select clients, and further introducing more problem points, that would take even more dev time....
--- and all for what... a needless forcing of windows/linux binaries to be entirely 32/64bit.

You realize that using the justification of 'well they have to ship 64 bit versions of dlls.. is a meaningless & misleading statement.. .they ♥♥♥♥ 32bit versions of them as well. They have an often 'unused' webhook 32bit one for those that use the web browser in the steam overlay for a 32bit game.

the fact of the matter is, the only reason the main 'launcher' is 64 bit, is java & it's just 'easier', and more supported within the bulk of the users.
-aka, it actually served a point.

The bootstrapper is 32bit ..because it serves solution. & Unless there gets to be an otherwise extensive IA64 CPUs.... It will work equally as well on 32 bit windows & 64 bit windows, without giving users the ability to screw up an install in a interesting way. (without really trying & knowing how)
最後修改者:DePhoegon; 2021 年 8 月 3 日 下午 3:49
aiusepsi 2021 年 8 月 4 日 下午 12:37 
引用自 DePhoegon
1. 32bit versions of Windows & linux will always exist (untill mainstream CPUs shift off of x86_64)
Nobody uses 32-bit versions of Linux. Most distributions don't even provide a 32-bit image any more. Only 0.37-0.43% of Windows users are using a 32-bit version of Windows (the upper end of that range assumes that the 0.06% listed as "Other" are using a 32-bit operating system) according to the latest Steam Hardware & Software survey.

Microsoft are going to stop providing 32-bit versions of Windows 10:
Beginning with Windows 10, version 2004, all new Windows 10 systems will be required to use 64-bit builds and Microsoft will no longer release 32-bit builds for OEM distribution.
https://download.microsoft.com/download/c/1/5/c150e1ca-4a55-4a7e-94c5-bfc8c2e785c5/Windows%2010%20Minimum%20Hardware%20Requirements.pdf

Windows 11 is going to be 64-bit only. So, no, 32-bit versions of Windows & Linux will not always exist. They're already mostly gone.

Just because I'm being paranoid that I'm going to be accused of being misleading: yeah, 32-bit software will still run on 64-bit Windows. But call me old-fashioned, but software should generally actually be for the OS it's running on, rather than running in a compatibility mode.

2. This only introduces more vulnerabilities & security exploits
I'm not sure where you get this idea. The programming mistakes which lead to vulnerabilities and security exploits are things aren't things which are dependent on which architecture the code is compiled for.

But, in 64-bit mode the effect of these vulnerabilities are better mitigated. For example, one security mitigation against vulnerabilities is called address-space layout randomisation (ASLR). This means that each binary is loaded at a random address in the address space, which makes it harder to leverage vulnerabilities into being able to perform remote code execution. In 64-bit mode, there's more address space available, so ASLR is more effective; there's more available address space to randomise in. This is something mentioned by the person who has the last disclose report on Valve's Hackerone: https://hackerone.com/reports/584603 describing a RCE against CS:GO.

This exploit against steam.exe itself: https://hackerone.com/reports/470520 mentions ASLR as well, noting that only about 9 bits are randomised. In a 64-bit process, it's more like 17-19 bits[www.fireeye.com]. This makes it much, much harder to break ASLR; that specific exploit would be at least 256 times harder to pull off, reducing the odds from 1/512 to 1/131072.

along with possible 'user generated' misuse of the wrong bit executable.
I don't see how there's much scope for this. If you somehow try to run the 64-bit executable, Windows just tells you that you're running an unsupported executable.

If you are really, really concerned about this, the (inital) Steam installer is very small, 1.7 MB, putting both the 32-bit and 64-bit executables in there will hardly break the size budget (especially at the client then kicks off a 100 MB+ download to fully install itself. Also: the store front page is about 7 MB!) so putting both executables in there and having the installer pick the right one is simple and user-proof.

further prevents future work of having to gate off x64bit games from select clients,
This isn't future work, Steam already has 64-bit only games. There's a "64-bit" tag which developers can apply to content depots so it only downloads on 64-bit systems. See, for example, Rust[steamdb.info].

You realize that using the justification of 'well they have to ship 64 bit versions of dlls.. is a meaningless & misleading statement.. .they ♥♥♥♥ 32bit versions of them as well.
It's not meaningless, and I certainly wasn't trying to be misleading. Yes, they have both 32-bit and 64-bit versions of those binaries. Like I said, the point was to show that porting the entire Steam client is not a huge and difficult task, especially because a very large portion of it is already ported for Windows, and that's not even counting the fact that it's also entirely ported to 64-bit on macOS.

the fact of the matter is, the only reason the main 'launcher' is 64 bit, is java & it's just 'easier', and more supported within the bulk of the users.
-aka, it actually served a point.
I don't at all know what you're talking about here. Steam doesn't use Java.

Unless there gets to be an otherwise extensive IA64 CPUs....
IA-64 is Intel's Itanium architecture, which is a completely different thing. It's a completely separate ISA from x86_64.
最後修改者:aiusepsi; 2021 年 8 月 4 日 下午 1:02
Crashed 2021 年 8 月 4 日 下午 2:13 
引用自 aiusepsi
Unless there gets to be an otherwise extensive IA64 CPUs....
IA-64 is Intel's Itanium architecture, which is a completely different thing. It's a completely separate ISA from x86_64.
And the Itanic has now sunk.
< >
目前顯示第 316-330 則留言,共 403
每頁顯示: 1530 50