snowie2000 / mactype

Better font rendering for Windows.
https://mactype.net
GNU General Public License v3.0
9.96k stars 441 forks source link

Software for MacType.ini blacklist #523

Closed ssolidus closed 1 month ago

ssolidus commented 5 years ago

Hi,

I have expanded my exclusion list to include a considerable list of programs that everyone should have excluded, as they either:

I would like to suggest that my list be added to this app so that other users can benefit from a better blacklist, and experience less bugs when first installing.

List:

fontforge.exe
VirtualBox.exe
VBoxSVC.exe
vmnat.exe
vmnetdhcp.exe
vmware-authd.exe
vmware-vmx.exe
vmware-usbarbitrator64.exe
MsMpEng.exe
pia-service.exe
RuntimeBroker.exe
services.exe
spoolsv.exe
taskhostw.exe
igfxCUIService.exe
igfxEM.exe
igfxHK.exe
lass.exe
SearchIndexer.exe
OfficeClickToRun.exe
SearchProtocolHost.exe
SearchFilterHost.exe
stacsv64.exe
QHSafeTray.exe
QHWatchdog.exe
QHActiveDefense.exe
SynTPHelper.exe
SynTPEnh.exe
NVDisplay.Container.exe
node.exe
CCXProcess.exe
AdobeIPCBroker.exe
audiodg.exe

Also, you can find a huge list of games from the Discord Rich Presence JSON here

snowie2000 commented 5 years ago

Thank you in advance, and anyone who has an idea on which application should be excluded/unloaded is welcome to post to this thread. I'll add them to the main configuration in the following releases.

ssolidus commented 5 years ago

Thanks, I will add them when I get home :)

Mahayu commented 5 years ago

fontforge.exe VirtualBox.exe VBoxSVC.exe

snowie2000 commented 5 years ago

As far as I know Mactype doesn’t conflict with CMDer.exe. It just reports the detection of the MacType hook.

On Mon, Apr 1, 2019 at 18:58 Mahayu notifications@github.com wrote:

cmder.exe fontforge.exe VirtualBox.exe VBoxSVC.exe ConEmu.exe ConEmu64.exe

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/snowie2000/mactype/issues/523#issuecomment-478533405, or mute the thread https://github.com/notifications/unsubscribe-auth/ALONleRLKLDiNufIv-_4KXeJVoLZ2KPXks5vceZtgaJpZM4cRb93 .

ssolidus commented 5 years ago

As far as I know Mactype doesn’t conflict with CMDer.exe. It just reports the detection of the MacType hook.

This is correct, I've never had any problems.

sammilucia commented 5 years ago

@ssolidus thank you for your work on this. There's also the list of known conflicts with MacType we're tracking in issue #426 that might help.

ssolidus commented 5 years ago

@sammilucia Great! It would be helpful if you could see if the issues with those Electron apps still exist, as the MacType beta now comes with DirectWrite support. You can find it here: https://github.com/snowie2000/mactype/releases/tag/2018.1-beta5

sammilucia commented 5 years ago

Good point, I'll test.

On Wed., 10 Apr. 2019, 09:19 ssolidus, notifications@github.com wrote:

@sammilucia https://github.com/sammilucia Great! It would be helpful if you could see if the issues with those Electron apps still exist, as the MacType beta now comes with DirectWrite support. You can find it here: https://github.com/snowie2000/mactype/releases/tag/2018.1-beta5

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/snowie2000/mactype/issues/523#issuecomment-481486988, or mute the thread https://github.com/notifications/unsubscribe-auth/ADJINk6wQBHZcVIOkeH2cVjvBpcwZX4Wks5vfS4egaJpZM4cRb93 .

ssolidus commented 5 years ago

@snowie2000 I have updated the original post. Please see the Discord JSON I linked with a big list of games you can use.

Unfortunately I cannot find a more recent copy than 2015, because Discord began compiling their stuff to Node binaries

rudolphos commented 5 years ago

My list

igfxCUIService.exe
igfxEM.exe
igfxHK.exe
lass.exe
SearchIndexer.exe
OfficeClickToRun.exe
SearchProtocolHost.exe
SearchFilterHost.exe
stacsv64.exe
QHSafeTray.exe
QHWatchdog.exe
QHActiveDefense.exe
SynTPHelper.exe
SynTPEnh.exe
NVDisplay.Container.exe
node.exe
CCXProcess.exe
AdobeIPCBroker.exe
audiodg.exe
sammilucia commented 5 years ago

Thanks guys, I've added the exclusions in the OP to the main ini ready for the next build. Great work, thank you so much!

ssolidus commented 5 years ago

@sammilucia Please consider taking a look at the Discord JSON I linked. Unfortunately it is outdated, as Discord began packing their Desktop app as Node binaries. Should still save a lot of time though.

sammilucia commented 5 years ago

@ssolidus that's a good list, agreed, however 1) I don't play many games, and 2) The ones that I have played (Witcher 1, 2, 3, Portal, Civ, Skyrim, etc.) I've never had a problem with MacType or needed to disable it - it hasn't even caused performance problems...

For my comment 1 - I'm probably not the best person to make a decision on this.

For comment 2 - Is there a specific reason we need to disable MacType for games? Specifically for all games?

ssolidus commented 5 years ago

@sammilucia Because the MacType hook is for intercepting calls for font-rendering - almost all video games render fonts internally, and you should generally not be attempting to interfere with that. MacType is aimed applications that would traditionally call the font rendering/rasterising system of the host.

sammilucia commented 5 years ago

@ssolidus it's highly dependent on the game. A lot of games don't use GDI or DirectWrite for rendering their fonts... They might use bitmaps or OpenGL or their own custom methods if they're cross platform.

ssolidus commented 5 years ago

My point is that you don't want the majority of games to have their font rendering tinkered with.

sammilucia commented 5 years ago

@ssolidus yes - however there are tens of thousands of games... If you wanted to exclude them all, blacklisting isn't the right tool.. Instead you'd whitelist, and just have MacType work on the apps you want.

However I don't think there's much point - even when I did play a lot of games I've never seen it interfere... I'm not really a gamer though so my opinion on it shouldn't carry much weight.

ssolidus commented 5 years ago

@sammilucia That makes sense - however, I just don't like the idea of a process hooking into another when it has no reason to do so.

sammilucia commented 5 years ago

@ssolidus ... well, one way to create a whitelist to accomplish this properly would be:

  1. MacType reports all the apps it's hooking on everyone's system, into a combined list
  2. We manually remove undesired entries from the list (games, unnecessary software, incompatible apps)
  3. We use this as the base whitelist, perhaps kept on cloud infrastructure

You'd also need some method for new software MacType doesn't know about, e.g:

  1. New software runs for the first time
  2. MacType asks if you want to hook it, in test mode
  3. MacType confirms there was no problems and you want to keep hooking it
  4. Software is added to the cloud whitelist

I.e. there is some global way of evaluating whether software has problems or not across all platforms... Also if someone manually removes software from the whitelist, this is reported to MacType's cloud whitelist.

A method like this could prevent common problems e.g. the newest version of Chrome or FireFox has started crashing, people report problems, and it's removed from the cloud whitelist

The problem with a system like this is it can become intensive to manage just in terms of time ... You can end up spending more time managing the whitelist than working on the software.

Vs. the problem of the blacklist, that it's impractical to simply list every game in existence, so nobody has problems with games.

Another method might be for MacType to try and intelligently detect whether a piece of software might be a bad fit ... e.g. by looking at certain behaviour of that software:

We might find that there are certain commonalities between problematic software - though the software is all different - we can predict whether it might have problems with MacType. If there are commonalities, then this would possibly be an easy way to decide whether to hook the software or not

MacType would need to keep a local or ideally cloud database rather than examine software each time. In this system you would still have a blacklist and a whitelist, but they are simply for overriding software that are edge cases, rather than trying to deal directly with every piece of software.

sammilucia commented 5 years ago

svchost.exe removed - should not be in there

cdytoby commented 5 years ago

In my opinion, MacType should be default "white list mode" instead of "black list mode". The black list could endless go on and on. If we want a default "black list", then put those system components/exe into it, and ignore those games exe, because I think put game exe into black list is user's job.

snowie2000 commented 5 years ago

Then the white list can go on and on forever.

DRSDavidSoft commented 4 years ago

Cmder/ConEmu exclusion

Since ConEmu is included in Cmder, I believe it'd benefit both of the programs.

As per https://github.com/Maximus5/ConEmu/issues/463, it's also suggested to add these processes too:

[UnloadDll]
ConEmuC.exe
ConEmuC64.exe

That is because MacType tries to hook ConEmuC.exe and ConEmuC64.exe processes. But ConEmuC is a console application and it does not draw any text on graphical canvas at all.

snowie2000 commented 4 years ago

That warning is pretty outdated. Mactype is fully compatible with cmder. No executable needs to be excluded.

Dim-Tim-1963 commented 4 years ago

1) Is it possible to add in some future version excluding processes by wildcarded names? And by the path?

2) I recommend Lazarus IDE for exclusion - it often crashes when MacType is active - either lazarus.exe itself, or its child processes (compilers etc.).

(about Lazarus: https://www.lazarus-ide.org/index.php )

sKGu8gxV commented 2 years ago

@sammilucia

@ssolidus that's a good list, agreed, however 1) I don't play many games, and 2) The ones that I have played (Witcher 1, 2, 3, Portal, Civ, Skyrim, etc.) I've never had a problem with MacType or needed to disable it - it hasn't even caused performance problems...

For my comment 1 - I'm probably not the best person to make a decision on this.

For comment 2 - Is there a specific reason we need to disable MacType for games? Specifically for all games?

I'm an avid gamer and have been for a long time. My experience has been the reverse, there are performance issues with mactype in games, but they are not easy to find. Maybe the games you mentioned do not use Windows font renderer but their own so they do not in fact have performance issues with mactype?

I have tested these performance issues somewhat extensively in two games: Battlefield 4, where I have ~3k hours (tota, not of mactype testing), and Stalker (Anomaly). The issues are cpu related.

In Bf4 I cap fps at 236 fps (for gsync) so, probably, not much performance is lost. But when mactype is not active the most cpu % usage of any core goes up to ~85%. With mactype active one, or sometimes two of the cores are at a constant 100%. This is noticeable with regular stuttering especially during heavy smoke. This stuttering does not happen without mactype. Please note I primarily only play one map so I think it's fair to say I'm intimately familiar with expected performance and sensitive to deviances. The difference is fairly big.

In Stalker Anomaly (If you haven't played it, please try it. Nothing beats the atmosfear) the performance difference is much bigger but the symptoms are similar. One, or several cores usage go up to constant 100% with mactype active. This was not easy to trouble shoot as there is a bug in the engine to begin with that assumes you disable affinity for core 0.

Csgo is affected by mactype being enabled or disabled for it. The fonts look different. I cannot say how it affects performance because of the protected mode which prevents overlays. I might spend some time on testing this later. I also don't play that much Cs. Csgo is built on the quake engine meaning it shares the base functions with many other games. Since it will use mactypes rendering I think it's fair to assume some performance degredation so that would mean a ~10-20% performance reduction on one or possibly several cores if it's similiar to BF4/Stalker.

An elegant solution to this, imo, would be @Dim-Tim-1963 suggestion: Let us blacklist by path. We could then add "C:\Program Files\Steam" and "D:\Games" to the blacklist. Currently every time you install a new game you have to manually add it to the exclusion list. I agree strongly with @ssolidus, mactype should not interfer with games font rendering.

To this affect I have taken a smaller blacklist I have created and the games list from Discord that @ssolidus pasted in OP and created a 612 lines long blacklist at https://pastebin.com/RSqvcTjp that you can paste into your profile under [UnloadDll].

@sammilucia Samantha, did you remove svhost.exe from the blacklist that op posted? May I ask why?

Regards,

Ce moi.

Ps. Thanks so much for mactype. I've written 1.5 books with it and it makes the whole experience so much more enjoyable!

snowie2000 commented 2 years ago

I would like you to know that MacType now does support excluding folders by adding an end reversed backslash at the end of the item, like c:\program files\. The last \ is a must for MacType to recognize it as a folder.

It is said to be buggy, though 🤣

sammilucia commented 2 years ago

is it possible to disable MacType for all full-screen apps? (i.e. games?)

On Fri, Aug 5, 2022, 04:49 snowie2000 @.***> wrote:

I would like you to know that MacType now does support excluding folders by adding an end reversed backslash at the end of the item, like c:\program files. The last \ is a must for MacType to recognize it as a folder.

It is said to be buggy, though 🤣

— Reply to this email directly, view it on GitHub https://github.com/snowie2000/mactype/issues/523#issuecomment-1206262250, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZEQNSB7WMSAP252OYUXEDVXTPRNANCNFSM4HCFX53Q . You are receiving this because you were mentioned.Message ID: @.***>

snowie2000 commented 2 years ago

First, MacType is loaded when an application is being initialized. In this phase, there is no such thing as "Full-screen app", so theoretically you can't determine if the current app is a full-screen app.

Second, full screen state can be detected, but mactype can't unload itself. It can only be disabled (stop intercepting font rendering), which is usually not enough for these problematic games to run correctly.

And last, is Chrome F11 a valid full-screen mode? How about video playing? What should mactype do when a video is playing on full screen? Should it disable rendering for that app completely?

sKGu8gxV commented 2 years ago

Thanks for your replies! Is it possible to "whitelist" by using macloader64.exe to batch? For example putting ~ "MacLoader64.exe /start notepad.exe" into notepad.bat? That way we can make a shortcut to that batch and then create a global keyboard eg "Ctrl+Alt+N" would start notepad with mactype enabled.

snowie2000 commented 2 years ago

This is completely legit.

sKGu8gxV commented 2 years ago

is it possible to disable MacType for all full-screen apps? (i.e. games?)

DX12 doesn't have an exclusive fullscreen mode at all.

This is completely legit.

Mind telling me how to do that or link the url where I can read about this? I cannot find it in the wiki. Specifically how to load/call an application to/from mactype from the command line.

april83c commented 8 months ago

RobloxPlayerBeta.exe should be excluded by default, as otherwise the anticheat (Byfron) detects MacType as a cheat and prevents Roblox from launching at all.

VXsz commented 4 months ago

BlackOps3.exe should be excluded as well, I spent hours debugging why it gets stuck while launching and never actually starting (stays at 510mb ram use), turn out it was MacType.

sammilucia commented 1 month ago

all added for 2024.1