win32ss / supermium

Chromium fork for Windows XP/2003 and up
https://win32subsystem.live/supermium/
BSD 3-Clause "New" or "Revised" License
1.97k stars 65 forks source link

Is there a possibility for future GPU accelerated rasterization support? #520

Open Tindaer opened 3 months ago

Tindaer commented 3 months ago

Hi,

Before switching to Supermium, i used a patched 360Explorer (Chinese forks of Chromium 63-86 , available at the msfn.org forum: https://msfn.org/board/topic/182876-360-extreme-explorer-modified-version/ in order to have a (somewhat, at that time) up-to-date browser on my XP system.

There too, all GPU acceleration is disabled on chrome://gpu/ except one thing:

Rasterization: Hardware accelerated on all pages

In Supermium, rasterization is software-only, as well.

Accelerated rasterization by itself seems to increase usability considerably:

For example, if i play a low-resolution .mp4 directly from the web (using the integrated chromium player), i can go full screen on 360Explorer without playback becoming a little "stroboscopic".

In Supermium, increasing the dimensions of the same low-res video consumes a lot of resources.

Is rasterization something that was still present in the XP-codebase, or did the Chinese devs add custom support?

Ravenant1234 commented 3 months ago

Have u tried using image ?

Ravenant1234 commented 3 months ago

mine is image and i have a really old nvidia 210 graphics card

Tindaer commented 3 months ago

I've tried it now, but unfortunately I get full-screen artifacts (completely garbled window) when launching Supermium with that setting.

I've also tried disabling canvas acceleraton together with the override software rendering list, to no avail.

Ravenant1234 commented 3 months ago

Wha GPU are u using? bc i have really old gt 210 and no artifacts

Tindaer commented 3 months ago

Mine is a gt 630 , so a bit newer. But my OS is XP, so much older than Win7 that you appear to be using.

docrR commented 3 months ago

Mine is a gt 630 , so a bit newer. But my OS is XP, so much older than Win7 that you appear to be using.

Hardware Acceleration is not yet implemented for XP, so bypassing the blocklist will yield varied results, none of which are ideal. Can you verify whether or not disabling the blocklist in Vista or greater works with your card? Hardware Acceleration was actually dropped from XP around Chromium 30.x or so. Flash at the time largely mitigated the problem, though.

Tindaer commented 3 months ago

Right now i can't swap the card into another system. But I suppose it would work in Vista+, as there are more up-to-date drivers for these platforms.

Anyway, what i found intriguing is that 360Explorer based on Chrome 63 has GPU rasterization support on WinXP (by setting #enable-gpu-rasterization to "force-enabled"), while all other HW acceleration is unavailable, as expected. So I thought maybe there could be a simple way to get just that in Supermium.

Getting full Hardware acceleration would be a lot of work, I assume.

win32ss commented 3 months ago

Does that 360EE have d3dcompiler_47.dll or an older version? The big setback for Supermium now is that d3dcompiler_47 is not natively compatible with XP, and being a proprietary module, just like SODA (live caption module) and Widevine CDM, it can't be directly recompiled. Instead it needs to be patched and the patching application for these components is still being built. When it is ready, I think we can go a lot further.

On Server 2003/XP x64, d3dcompiler_47 only misses InitializeCriticalSectionEx. Any reference to it could be manually patched to InitializeCriticalSectionAndSpinCount which is also used by the DLL, while InitializeCriticalSectionEx's import table entry is neutralized by changing it to something like ReadFile. But regular XP is missing some more and the DLL also has a TLS directory while being delay-loaded (on 2003 and below, data corruption will occur if this is not handled properly). So the patcher will be the best solution.

Tindaer commented 3 months ago

Yes, 360EE is using d3dcompiler_47.dll

Thanks for the detailed explanation of what's going on under the hood, and it's great news to hear that support for XP will be continued.