Skip to content

Re-enable a disabled implicit Vulkan layer through environment variables. #1753

@PancakeTAS

Description

@PancakeTAS

What enhancement are you suggesting for the Vulkan Loader? Please describe in detail.

Implicit layers that do not need to enabled through environment variables are always loaded. A user may decide to disable certain layers for one reason or another (it could be compatilibity issues, perhaps they are encountering a bug, could be anything). If the user specifies the disable environment variable, then the layer is disabled as expected.

If the user wishes to re-enable the layer inside of a child process of where this environment variable is set, it needs to be unset. Let's assume we are in the context of something like a game launcher, Steam or Prism Launcher, perhaps Lutris or anything else. These launchers do not allow unsetting an environment variable, merely changing it. One could argue setting the disable environment variable to "0" should ignore it's effect, though this might lead to breaking previous users workflows (I'm.. not sure which, but there will be some). Perhaps something like a string check straight up checking for "Off" is a worthy workaround?

Is this specific to a single platform?

Primarily written for Linux, though might extend to other operating systems as well.

Additional context

Seeing how Vulkan layers are being used more and more for things like post processing, frame insertion and other potentially global tools, implicit layers that are always enabled have also become more frequent. To give a concrete example, a layer adding post processing might want to always be loaded, so that an external user interface can add effects to every game without explicitly requiring the user to enable the post processing layer on a certain game.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions