Skip to content

Add user-defined exclusion list to RenderingDevice based on device names. - #114926

Open
DarioSamo wants to merge 1 commit into
godotengine:masterfrom
DarioSamo:rendering-device-exclusion-list
Open

Add user-defined exclusion list to RenderingDevice based on device names.#114926
DarioSamo wants to merge 1 commit into
godotengine:masterfrom
DarioSamo:rendering-device-exclusion-list

Conversation

@DarioSamo

@DarioSamo DarioSamo commented Jan 13, 2026

Copy link
Copy Markdown
Contributor

Builds on top of #114922, as the fallback path on Android will not work otherwise.

This PR allows all RenderingContextDrivers to check early during the initialization process against a user-defined exclusion list. Some devices may offer Vulkan but underperform or show broken behavior. Developers can use this setting to redirect users with these devices to automatically use the Compatibility renderer.

Device name exclusion is mostly meant for Android, as other platforms that can freely update their drivers would need a different mechanism based on driver versions instead. Regardless, the implementation should apply in a generic way to all RenderingDevice drivers.

From my tests, my project runs on the Mobile renderer on the Pixel 8, but boots in Compatibility instead if I use the following setting.

image

@DarioSamo
DarioSamo requested a review from a team as a code owner January 13, 2026 16:03
@DarioSamo
DarioSamo requested review from a team as code owners January 13, 2026 16:03
@DarioSamo
DarioSamo requested a review from a team January 13, 2026 16:03
@DarioSamo
DarioSamo requested a review from a team as a code owner January 13, 2026 16:03
@AThousandShips AThousandShips added this to the 4.x milestone Jan 13, 2026
Comment thread servers/rendering/rendering_context_driver.cpp Outdated
@DarioSamo
DarioSamo force-pushed the rendering-device-exclusion-list branch 3 times, most recently from 5a51909 to 09d674b Compare January 15, 2026 12:58
@DarioSamo
DarioSamo requested review from a team as code owners January 15, 2026 12:58
@DarioSamo
DarioSamo force-pushed the rendering-device-exclusion-list branch 2 times, most recently from cf2760a to ce4ea9d Compare May 18, 2026 15:59
@DarioSamo

Copy link
Copy Markdown
Contributor Author

Rebased to take into account Calinou's change for warning for out of range GPU indices.

@Calinou Calinou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally on Linux, it works as expected. Code looks good to me.

Note that the match is case-sensitive and does not support wildcards (we could use String.glob() if we wanted to support this).

Comment thread doc/classes/ProjectSettings.xml Outdated
Comment thread drivers/d3d12/rendering_context_driver_d3d12.cpp
@clayjohn clayjohn modified the milestones: 4.x, 4.8 May 21, 2026
@DarioSamo
DarioSamo force-pushed the rendering-device-exclusion-list branch from 9e04607 to 99ed180 Compare May 21, 2026 12:32
@Repiteo
Repiteo requested a review from clayjohn June 24, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants