Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vkconfig layer directory wrong for 32-bit programs with 64-bit windows #1350

Open
epajarre opened this issue Feb 4, 2021 · 3 comments
Open
Labels
enhancement OS - Windows Windows specific bug P2 Has a workaround / Minor feature Project - vkconfig Issues related to vkconfig

Comments

@epajarre
Copy link

epajarre commented Feb 4, 2021

I am very new to Vulkan, so my apologies if I am missing something.

When testing I noticed that Vulkan configurator creates C:\Users\MyName\AppData\Local\LunarG\vkconfig\override\VkLayer_override.json which contains the override_paths section.

By default it seems to point on to the \VulkanSDK\1.2.162.1\Bin directory, which does not work if I have a 32bit Vulkan program.

I can use the Custom Layer Paths setting and change the path to Bin32, but of course then it won't work for 64bit binaries.

Am I missing some way to make both work?

@christophe-lunarg
Copy link
Contributor

Hi,

it's true that I didn't even considered 32 bits Vulkan applications with Vulkan Configurator...

I am guessing that yes currently you need to add the custom path when you are using 32 bit Vulkan applications and remove it when you are using 64 bit Vulkan applications. Sure, it's clunky... 32 bits applications are quite a corner case these days so we are trying to evaluate how to prioritize this.

@christophe-lunarg christophe-lunarg added enhancement OS - Windows Windows specific bug P2 Has a workaround / Minor feature Project - vkconfig Issues related to vkconfig labels Feb 4, 2021
@epajarre
Copy link
Author

epajarre commented Feb 4, 2021

In understand. I am "porting" an application from 32 bit world, so this sort of came up.

The custom path workaround exists, and my final target will most probably end up to be 64 bit. The only real problem for me was understanding the issue originally.

My current favorite idea for fixing this would be having optional "overrider_paths32", which would be used for 32 bit apps in case it exists.

@dorian-apanel-intel
Copy link

Hi,

32 bit layers still don't work with vkconfig.
It would be nice to have it when debugging DXVK or similar projects.
Could you at least fix it in a way that SDK 32-bit layers work?

Right now I do it manually:

Tested with SDK 1.3.250 today on Windows, and vkconfig creates Following Regeys:
Under: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
DWORD C:\Users\USER\AppData\Local\LunarG\vkconfig\override\VkLayer_override.json
Under Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\Settings
DWORD C:\Users\USER\AppData\Local\LunarG\vkconfig\override\vk_layer_settings.txt

To make it work with 32bit layers optionally installed by SDK, I had to

  1. Copy those two keys to corresponding WOW6432Node subkey
  2. In WOW6432Node\Khronos\Vulkan\ImplicitLayers rename VkLayer_override.json to VkLayer_override32.json
  3. Copy AppData\Local\LunarG\vkconfig\override\VkLayer_override.json file to AppData\Local\LunarG\vkconfig\override\VkLayer_override32.json
  4. Append 32 to override_paths inside VkLayer_override32.json

Unfortunately, to disable layers added this way, you have to rename added regkey (the one pointing to VkLayer_override32.json in WOW6432Node\Khronos\Vulkan\ImplicitLayers) to point it to non-existing file.

Any change to enabled layers in vkconfig means you also have to copy VkLayer_override.json to VkLayer_override32.json and change path in it again.

Above steps seems to be easily implementable in vkconfig.

Custom layers working may be a little bit trickier to implement without filename or folder structure convention.
Example:

  1. Renderdoc uses:
    RenderDoc_v1.26.0_64\renderdoc.json
    RenderDoc_v1.26.0_64\x86\renderdoc.json
  2. Steam Overlay/Fossilize:
    C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json
    C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement OS - Windows Windows specific bug P2 Has a workaround / Minor feature Project - vkconfig Issues related to vkconfig
Projects
None yet
Development

No branches or pull requests

3 participants