libfreetype is the defacto standard for font rendering on Linux. I've never used it myself so I can't say exactly what's involved, but most stuff I've seen that handle fonts directly uses it.Graf Zahl wrote:So Linux has no native font rendering capabilies and one has to rely on third party software that may or may not be good enough for the job?
GZStats: A quick rundown
Moderator: GZDoom Developers
-
- Posts: 2949
- Joined: Thu Jul 17, 2003 12:07 am
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
Re: GZStats: A quick rundown
-
- Lead GZDoom+Raze Developer
- Posts: 49130
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: GZStats: A quick rundown
The main issue is that to my knowledge, FreeType is a font rendering engine but not a text layout engine. That's a major difference because the native font renderers in both Windows and macOS can substitute missing characters from other fonts and automatically choose alternate glyphs or ligatures if appropriate. I once did check FreeType for its capabilities and it looks a lot more low level than the other OS's native text rendering functions.
-
- Posts: 13717
- Joined: Tue Jan 13, 2004 1:31 pm
- Preferred Pronouns: She/Her
Re: GZStats: A quick rundown
In my understanding, very little on Linux actually is native. The windowing system is entirely userland, unlike with Windows, and done by client/server setups. While the X11 server can run as root and often does, it does not actually have to. The X11 server handles everything - from windows, widgets, to font and image rendering, and also passing OpenGL calls to the system's driver.
Windows only recently started doing this with DWM.exe - but originally this was all handled directly by the kernel and revealed extremely major security flaws. (Remember the scroll bar escalation bug?)
Windows only recently started doing this with DWM.exe - but originally this was all handled directly by the kernel and revealed extremely major security flaws. (Remember the scroll bar escalation bug?)
-
- Posts: 2949
- Joined: Thu Jul 17, 2003 12:07 am
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
Re: GZStats: A quick rundown
It's notable that X11's widget and font handling is quite rubbish, and toolkits like Qt and GTK do their own thing because of it. There are alternatives to X11 for windowing too, an up-and-coming one called Wayland for instance. It does have an X11 compatibility layer, but any serious UI work is intended to go through something like Qt or GTK, which themselves support Wayland in the backend.
-
- Posts: 347
- Joined: Mon May 31, 2010 7:42 pm
- Preferred Pronouns: He/Him
- Location: Canada
Re: GZStats: A quick rundown
But, how many people use Windows XP computers and have them connected to the internet...? I still have an XP machine for obscure legacy purposes, but I would never ever, under any circumstances, connect it to the internet anymore.
...Y'know, on second thought, I probably don't want to know the answer to that question...
I personally wouldn't deem it necessary to provide an opt-out if there were no PR concerns. But there are always PR concerns. Sounds to me that the easiest approach would be to just state clearly on the downloads page which versions contain GZStats and not program any opt-out dialogue, but I feel like that wouldn't fly well.
The only thing I'm worried about is accidentally submitting duplicate statistics when doing something like testing engine bugs by running with fresh configs on multiple versions. I'm assuming there's no unique ID saved outside of the .ini (eg. in %APPDATA% or the registry) that's sent with the statistics. And due to some unresolved ISP issue, my IP has been changing frequently—sometimes upwards of four times in one day. As such, there wouldn't be any guaranteed way to distinguish between duplicates from me. I guess the easiest way to work around this without being pestered by the opt-out dialogue every time is to use a command line argument to suppress it. So, will it be possible to eg. set that CVAR to 1 (decline) in the command line arguments to bypass GZStats on initial startup?
...Y'know, on second thought, I probably don't want to know the answer to that question...
I personally wouldn't deem it necessary to provide an opt-out if there were no PR concerns. But there are always PR concerns. Sounds to me that the easiest approach would be to just state clearly on the downloads page which versions contain GZStats and not program any opt-out dialogue, but I feel like that wouldn't fly well.
The only thing I'm worried about is accidentally submitting duplicate statistics when doing something like testing engine bugs by running with fresh configs on multiple versions. I'm assuming there's no unique ID saved outside of the .ini (eg. in %APPDATA% or the registry) that's sent with the statistics. And due to some unresolved ISP issue, my IP has been changing frequently—sometimes upwards of four times in one day. As such, there wouldn't be any guaranteed way to distinguish between duplicates from me. I guess the easiest way to work around this without being pestered by the opt-out dialogue every time is to use a command line argument to suppress it. So, will it be possible to eg. set that CVAR to 1 (decline) in the command line arguments to bypass GZStats on initial startup?
-
-
- Posts: 3167
- Joined: Wed Nov 24, 2004 12:59 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
Re: GZStats: A quick rundown
On Linux there is a GTK, kdialog, and terminal iwad picker. The GTK picker works with both GTK2 and GTK3 since the GUI is simple enough, and there are still some actively supported distros that don't have a good GTK3 port. I haven't heard of anyone having issues picking iwads so it would seem reasonable that implementing a yes/no box using those three methods is adequate. (Well dpJudas here, but he said he didn't have the gtk development headers installed so of course his build wouldn't have the gtk support.)
It's honestly pretty hard to have a generally useful Linux GUI without GTK or Qt being installed, and I would imagine usually both are available. (Given the situation with web browser rendering engines I'm pretty sure you can't have a modern web browser without GTK or Qt.) Qt is unfortunately basically impossible to selectively load, but kdialog should cover a majority of the Qt-only installs.
Unless you're going to also worry about the users running stripped down Windows PE (I have tried to run ZDoom on HP's RAID card's firmware image but alas no DirectX ), why worry about the minority of Linux users using niche setups? As a Linux user I don't know why people get hung up on the last 1% here. Yeah I get that people tout the ability to do that as an advantage of Linux, but in reality such a stripped down system is really hard to maintain and I've seen people try and then just give into a normal setup.
Of course SDL's message box may be adequate here as well, just saying that a "native" solution isn't that hard once you reason about what a user is likely to have installed similar to how you reason about supporting versions of Windows and its various overlapping APIs.
It's honestly pretty hard to have a generally useful Linux GUI without GTK or Qt being installed, and I would imagine usually both are available. (Given the situation with web browser rendering engines I'm pretty sure you can't have a modern web browser without GTK or Qt.) Qt is unfortunately basically impossible to selectively load, but kdialog should cover a majority of the Qt-only installs.
Unless you're going to also worry about the users running stripped down Windows PE (I have tried to run ZDoom on HP's RAID card's firmware image but alas no DirectX ), why worry about the minority of Linux users using niche setups? As a Linux user I don't know why people get hung up on the last 1% here. Yeah I get that people tout the ability to do that as an advantage of Linux, but in reality such a stripped down system is really hard to maintain and I've seen people try and then just give into a normal setup.
Of course SDL's message box may be adequate here as well, just saying that a "native" solution isn't that hard once you reason about what a user is likely to have installed similar to how you reason about supporting versions of Windows and its various overlapping APIs.
-
- Lead GZDoom+Raze Developer
- Posts: 49130
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: GZStats: A quick rundown
How many of these people are seriously using GZDoom on that computer? In order to get it they need some internet connection to begin with, which by default runs on a more modern computerGFD wrote:But, how many people use Windows XP computers and have them connected to the internet...? I still have an XP machine for obscure legacy purposes, but I would never ever, under any circumstances, connect it to the internet anymore.
...Y'know, on second thought, I probably don't want to know the answer to that question...
Let's be honest here: We cannot consider all weird people out there with strange habits. The weirdos are already a small minority, even though they tend to make a lot of noise if they get here, and the weirdos that act this odd are even less. Regular people tend to play on the computer they download the software on.
In any case, XP being an unsupported system by Microsoft will inevitably mean that sooner or later it will have to be ditched. I don't really expect Microsoft to support it forever with MSVC.
That's a very minor issue. How many people are doing this? 100 out of 10000? Or even less? It's some statistical noise that will have to be considered. But it's here where an opt-out may help. The point is not to get 100% accurate data but to get a rough idea what systems GZDoom is being used on to decide if some crusty old backwards compatibility code is still needed.The only thing I'm worried about is accidentally submitting duplicate statistics when doing something like testing engine bugs by running with fresh configs on multiple versions. I'm assuming there's no unique ID saved outside of the .ini (eg. in %APPDATA% or the registry) that's sent with the statistics. And due to some unresolved ISP issue, my IP has been changing frequently—sometimes upwards of four times in one day. As such, there wouldn't be any guaranteed way to distinguish between duplicates from me. I guess the easiest way to work around this without being pestered by the opt-out dialogue every time is to use a command line argument to suppress it. So, will it be possible to eg. set that CVAR to 1 (decline) in the command line arguments to bypass GZStats on initial startup?
For the record: The #1 and #2 on my chopping block is software rendered 2D and SM 1.4 support in D3D, because a vast portion of that 100+kb source file is merely for making this fast. The entire texture atlas implementation in here was just done for this old ATI-hardware to overcome the draw call limitations. But on the downside that texture atlas is what makes it extremely hard to move the 2D code to a higher level, i.e. create device independent draw lists and consolidate the backends. That would allow a lot of future possibilities for improvement, like making the OpenGL 2D interface GL 2.x compatible. Due to how the D3D backend got implemented the GL equivalent has far too high system requirements.
(Yes, unlike the 3D renderer this needs to remain at least GL 2.x compatible! I wouldn't even really bother to to a GL 3 version because it'd offer no advantage here.)
-
-
- Posts: 3814
- Joined: Sun Aug 07, 2011 4:32 am
Re: GZStats: A quick rundown
OK, pushed native UI dialog here. If this one is better I'll implement SDL and Mac confirmation later.Graf Zahl wrote:I'm not sure if that's a good idea. I've been thinking for a long time that the bitmap fonts are essentially unusable for a well readable in-game menu and really would like to replace them with some system generated text graphics, if I didn't know that many users would react badly to such a change. Having to read a lengthy text in that fonts is just ... ugh...
-
- Posts: 7402
- Joined: Fri Oct 22, 2004 9:22 am
- Graphics Processor: nVidia with Vulkan support
- Location: MAP33
Re: GZStats: A quick rundown
Judging by all the posts in this thread and the OP, the engine only sends info once per renderer (so once for software, once for opengl) unless your ini file gets deleted for some reason. So you probably won't create much in the way of noise.GFD wrote:The only thing I'm worried about is accidentally submitting duplicate statistics when doing something like testing engine bugs by running with fresh configs on multiple versions. I'm assuming there's no unique ID saved outside of the .ini (eg. in %APPDATA% or the registry) that's sent with the statistics. And due to some unresolved ISP issue, my IP has been changing frequently—sometimes upwards of four times in one day. As such, there wouldn't be any guaranteed way to distinguish between duplicates from me. I guess the easiest way to work around this without being pestered by the opt-out dialogue every time is to use a command line argument to suppress it. So, will it be possible to eg. set that CVAR to 1 (decline) in the command line arguments to bypass GZStats on initial startup?
-
- Posts: 347
- Joined: Mon May 31, 2010 7:42 pm
- Preferred Pronouns: He/Him
- Location: Canada
Re: GZStats: A quick rundown
Again, removing the .ini is exactly what I would be doing in this case, yes.Kinsie wrote:Judging by all the posts in this thread and the OP, the engine only sends info once per renderer (so once for software, once for opengl) unless your ini file gets deleted for some reason. So you probably won't create much in the way of noise.
"Strange habits" are not what I would expect to be the primary issue, but simply an inability to acquire newer PC hardware, most likely due to economic issues. (I'm not as familiar with the situations of legacy hardware users on these forums, though.) But I'm still curious as to how these situations play out. The only reasonably secure situation I can think of in the case of only owning a Windows XP machine is using a smartphone to download GZDoom, and then transferring it to the internet-disconnected XP PC. (And the smartphone here would probably need to have a custom OS loaded onto it with recent security patches, since Android phones have very poor software support from manufacturers, and iPhones are prohibitively expensive and have much less international presence.) Or somehow getting temporary access to a more secure PC and downloading GZDoom onto some external storage. But in either case, I wouldn't think it's as important to these users to keep GZDoom up-to-date.Graf Zahl wrote:Let's be honest here: We cannot consider all weird people out there with strange habits. The weirdos are already a small minority, even though they tend to make a lot of noise if they get here, and the weirdos that act this odd are even less. Regular people tend to play on the computer they download the software on.
-
- Posts: 2113
- Joined: Thu May 02, 2013 1:27 am
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Location: Brazil
Re: GZStats: A quick rundown
XP is still used quite a lot in Asia AFAIK, so that's a thing to take into account.
-
- Lead GZDoom+Raze Developer
- Posts: 49130
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: GZStats: A quick rundown
I think you are overthinking it. People who need to make do with a Windows XP PC will normally also use it to download the stuff they need. And some people will always fall through the cracks, you cannot make this foolproof.GFD wrote:"Strange habits" are not what I would expect to be the primary issue, but simply an inability to acquire newer PC hardware, most likely due to economic issues. (I'm not as familiar with the situations of legacy hardware users on these forums, though.) But I'm still curious as to how these situations play out. The only reasonably secure situation I can think of in the case of only owning a Windows XP machine is using a smartphone to download GZDoom, and then transferring it to the internet-disconnected XP PC.
Sorry, but this entire argument just sounds like "XP numbers will be exceedingly wrong because..."
I know, but again: why do you assume that these people keep their computer offline?phantombeta wrote:XP is still used quite a lot in Asia AFAIK, so that's a thing to take into account.
-
- Posts: 2113
- Joined: Thu May 02, 2013 1:27 am
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Location: Brazil
Re: GZStats: A quick rundown
@Graf
... I never said that? My point was that since it's still used quite a lot in Asia, then there's definitely enough people that do use XP computers connected to the internet for it to matter.
... I never said that? My point was that since it's still used quite a lot in Asia, then there's definitely enough people that do use XP computers connected to the internet for it to matter.
-
- Lead GZDoom+Raze Developer
- Posts: 49130
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: GZStats: A quick rundown
Well, I guess we'll see when the real numbers come in. So far the small sample from the devbuilds has XP at ~2%.
-
-
- Posts: 3814
- Joined: Sun Aug 07, 2011 4:32 am
Re: GZStats: A quick rundown
With exception of user friendly message confirmation dialog for stats collection is ready.