When the renderer fails, try to fall back to D2D + WARP#19636
Conversation
This commit also ups the number of render failures that are permissible to 5, and moves us to use an exponential backoff rather than a simple geometric one. It also suppresses the dialog box in case of present failures. I feel like the warning dialog should be used for something that the user can actually do something about...
src/renderer/base/renderer.cpp
Outdated
| auto tries = maxRetriesForRenderEngine; | ||
| while (tries > 0) | ||
| HRESULT hr{ S_FALSE }; | ||
| for (auto attempt = 0; attempt < maxRetriesForRenderEngine; ++attempt) |
There was a problem hiding this comment.
This probably complains in x86 because attempt is int and maxRetriesForRenderEngine is unsigned int.
src/renderer/base/renderer.cpp
Outdated
| if (attempt > 0) [[unlikely]] | ||
| { | ||
| // Add a bit of backoff. | ||
| // Sleep 100, 200, 400, 600, 800ms before failing out and disabling the renderer. |
There was a problem hiding this comment.
This should be 100, 200, 400, 800, 1600, no? That's 3.1s which seems fine to me (re: your other question).
There was a problem hiding this comment.
well, so, no. after the fifth failure we don't retry agian. it's actually max TRIES, not max RETRIES. We can change that to be retries though
There was a problem hiding this comment.
1.5s also seems fine to me. It probably doesn't matter too much. I think "max tries" may be better than retries... 🤔
|
I added some tracepoints to the rewritten render loop, |
#19636) This commit also ups the number of render failures that are permissible to 6 (one try plus 5 retries), and moves us to use an exponential backoff rather than a simple geometric one. It also suppresses the dialog box in case of present failures for Stable users. I feel like the warning dialog should be used for something that the user can actually do something about... Closes #15601 Closes #18198 (cherry picked from commit 45c5370) Service-Card-Id: PVTI_lADOAF3p4s4BBcTlzgiXh2E Service-Version: 1.24
#19636) This commit also ups the number of render failures that are permissible to 6 (one try plus 5 retries), and moves us to use an exponential backoff rather than a simple geometric one. It also suppresses the dialog box in case of present failures for Stable users. I feel like the warning dialog should be used for something that the user can actually do something about... Closes #15601 Closes #18198 (cherry picked from commit 45c5370) Service-Card-Id: PVTI_lADOAF3p4s4AxadtzgiXh2I Service-Version: 1.23


This commit also ups the number of render failures that are permissible to 6 (one try plus 5 retries), and moves us to use an exponential backoff rather than a simple geometric one.
It also suppresses the dialog box in case of present failures for Stable users. I feel like the warning dialog should be used for something that the user can actually do something about...
Closes #15601
Closes #18198