haxball / haxball-issues

116 stars 43 forks source link

about #1922 (--use-angle=d3d9) #1953

Open GLWP opened 1 year ago

GLWP commented 1 year ago

1922 this thread and I are the same person

  1. chrome
  2. hardware Acceleration Settings is On
  3. use '--disable-frame-rate-limit'

when the above 3 conditions are met, haxball delay is a serious problem.(like use /handicap 5000) since I don't know programming languages, I don't know the exact reason and how to solve it. I said that I solved this problem by setting the 'Choose Angle graphics backend' setting in 'chrome://flags' to d3d9 (--use-angle=d3d9) as a result of testing, I was able to solve it with other settings (d3d11on12, openGL). the wiki says that using '--disable-frame-rate-limit' stops the renderer. But it seems I'm not sure about this. if the above is correct, shouldn't setting it to 'd3d11' should solve the problem? But it doesn't work. in my opinion, it seems that Direct11 and Chrome's hardware acceleration settings are causing some kind of conflict. chrome's hardware acceleration setting seems to be different from hardware acceleration in other browsers (ex. firefox, edge, ...). other browsers do not have the same issue as above. also, there are no issues with third-party desktop apps (haxapp, haxball-client) based on Chrome. (However, these apps may not have hardware acceleration settings.)

i would like to know the root reason for this problem. if anyone knows anything about chrome's hardware acceleration and about this issue, please let me know.

basro commented 1 year ago

the wiki says that using '--disable-frame-rate-limit' stops the renderer. But it seems I'm not sure about this.

I'm not sure what you mean with this, --disable-frame-rate-limit just makes the browser render as much as it can without vsync and without any limits. It does not "stop the renderer".

if the above is correct, shouldn't setting it to 'd3d11' should solve the problem?

d3d11 is the default angle backend for chrome on windows and it's clearly one of the backends that doesn't work well, so no.

there are no issues with third-party desktop apps (haxapp, haxball-client) based on Chrome. (However, these apps may not have hardware acceleration settings.)

These third party apps are probably running on an old version of chrome.

i would like to know the root reason for this problem.

The cause is simply that at some point chrome introduced a 'bug' with the d3d11 hardware acceleration backend when combining it with uncapped framerate limits. This is not strange to me since the disable frame rate limit feature is something that probably almost nobody is using and so chrome developers probably either don't know about the bug or don't care to fix it.

It seems to me that you think that disable frame rate limit is disabling hardware acceleration, that is not the case.

GLWP commented 1 year ago

i understand. Is there any difference between d3d9, d3d11on12 and opengl settings?

basro commented 1 year ago

There are differences internally and there can be differences in performance so testing which one works best for you is the best approach.

This setting just tells the browser which API to use when communicating with the GPU. All the options are GPU accelerated.

d3d9 stands for DirectX 9. opengl is self explanatory. I'm not sure what d3d11on12 is doing.