Giter VIP home page Giter VIP logo

Comments (8)

karl-lunarg avatar karl-lunarg commented on July 28, 2024

Comment by MarkY-LunarG (MIGRATED)
Friday Sep 08, 2017 at 14:52 GMT


This is currently "as designed". The original intent was this information was queried by the desktop loader from the layer JSON files. However, we are investigating the usefulness of this.

from vulkan-loader.

karl-lunarg avatar karl-lunarg commented on July 28, 2024

Comment by Themaister (MIGRATED)
Friday Sep 08, 2017 at 14:56 GMT


Similar for vkEnumerateDeviceExtensionProperties in CreateDevice.

from vulkan-loader.

karl-lunarg avatar karl-lunarg commented on July 28, 2024

Comment by Themaister (MIGRATED)
Friday Sep 08, 2017 at 14:56 GMT


The current workaround is dlsym(RTLD_DEFAULT, ...)

from vulkan-loader.

karl-lunarg avatar karl-lunarg commented on July 28, 2024

Comment by Themaister (MIGRATED)
Friday Sep 08, 2017 at 15:00 GMT


Actually, it's not ... vkEnumerateInstanceExtensions deadlocks in libvulkan.so. Probably some global lock is taken in vkCreateInstance and in vkEnumerateInstanceExtensions as well.

from vulkan-loader.

karl-lunarg avatar karl-lunarg commented on July 28, 2024

Comment by MarkY-LunarG (MIGRATED)
Friday Sep 08, 2017 at 15:01 GMT


I'm not sure why dlsym changes would make it work. The vkEnumerateInstanceExtensionProperties extension should be implemented by the loader and ICDs only and you shouldn't attempt to try to call the ICD function directly. We're looking into a more proper way to do this. However, I don't see why vkEnumerateDeviceExtensionProperties shouldn't work by default. I've assigned Lenny this issue, and he can look into more detail.

from vulkan-loader.

karl-lunarg avatar karl-lunarg commented on July 28, 2024

Comment by Themaister (MIGRATED)
Friday Sep 08, 2017 at 15:10 GMT


Yeah, dlsym(RTLD_DEFAULT) actually didn't work, so please disregard that.

What I tried was dlopen("libvulkan.so") directly, then call into vkEnumerateInstanceExtensionProperties, which deadlocked.

If there is something you can enable in the JSON to pre-enable extensions, that sounds reasonable too.

from vulkan-loader.

karl-lunarg avatar karl-lunarg commented on July 28, 2024

Comment by lenny-lunarg (MIGRATED)
Wednesday Sep 20, 2017 at 17:35 GMT


Sorry for the delay on this issue. I still haven't looked into exactly what this failure is, but I am working on a patch that will allow implicit layers to intercept functions like vkEnumerateInstanceExtensionProperties which are called before an instance is created. This is done to allow implicit layers to hide things that they won't support. This won't directly address your problem, but it is related. I'll look into this specific issue in more detail shortly.

So the main thing here is I'm not ignoring this issue, I just haven't had a chance to look into this, but I will shortly.

from vulkan-loader.

lenny-lunarg avatar lenny-lunarg commented on July 28, 2024

It is now possible to intercept these functions from implicit layers. As for the part about calling into the function, I think this is just a known limitation and we might address it as part of a broader layer interface rework, but I don't expect to do that.

from vulkan-loader.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.