aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.h
AgeCommit message (Collapse)Author
2016-06-06layers: Move debug action enums from vk_layer.hMark Lobodzinski
Moved debug-report related items from vk_layer.h. Enums are now in vk_layer_logging.h and DbgFunctionNode has been moved into a new loader header file vk_loader_layer.h. Change-Id: I6031146ba474ff01ca039da44ad5d42d054383a3
2016-05-16loader: deprecate device layersJon Ashburn
Change-Id: I43c279e36368bf1ef9a2f446007e34366bfff777
2016-04-25loader: ghlvl#180 Support a ICD interface version negotiationJon Ashburn
Change-Id: I2e5c3717dd7fa86992f617bcc0f93de8ba60759e
2016-04-20loader: ghlvl 361, Simplify library resource handlingJon Ashburn
Layer and ICD libraries are opened and closed as needed. No ref counting, no knowledge of if a library contains multiple layers or ICDs. Change-Id: Ie88b671cd1671187a42d3d838d20e3af1afc67cc
2016-04-19misc: Update licenses to Apache 2.0Jon Ashburn
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
2016-04-15loader: Run clang-formatJon Ashburn
Last several commits to loader weren't run through it. Change-Id: I512b2df75c7831ee6433e4c60c6664db85184584
2016-04-14loader: Added some missing function entry points to loader_icd_init_entrys.Petros Bantolas
KHR_surface, KHR_display extension functions were not exposed properly. Specifically, added LOOKUP_GIPA entries for: * GetPhysicalDeviceDisplayPropertiesKHR * GetDisplayModePropertiesKHR * CreateDisplayPlaneSurfaceKHR * GetPhysicalDeviceDisplayPlanePropertiesKHR * GetDisplayPlaneSupportedDisplaysKHR * CreateDisplayModeKHR * GetDisplayPlaneCapabilitiesKHR * DestroySurfaceKHR Added missing function declaration DestroySurfaceKHR in loader_icd struct. Checking if KHR_surface extension is enabled before proceeding in the terminator_CreateDisplayPlaneSurfaceKHR definition. Change-Id: I0599efddedc5064859ae1f4e52bdbbf8788d5c12
2016-04-08loader: ghlvl #66, Ensure std_validationadvertises underlying layer extensionsJon Ashburn
Change-Id: If6b6b24fdf02b960c83148bd002114941eb1adc6
2016-04-07loader: Don't scribble on caller memory in CreateInstance,CreateDeviceChris Forbes
expand_... / unexpand_... scribbled on both the CreateInfo struct and the list of layer strings, and then unscribbled them on the way back out. This is a lousy thing to do, and just blows up if the memory isn't writable (which it needn't be, given the API takes ptrs to const). Instead, copy the *CreateInfo into a shadow struct on the stack, and be careful in expand_layer_names never to scribble on the caller's layer names array. V2: slight tweak (missed initializer) Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-04-01loader: report implicit instance extensionsJeremy Hayes
GL74: vkEnumerateInstanceExtensionProperties should report implicit instance extensions when pLayerName is NULL or an implicit layer name. Change-Id: Iba7664a168e146c4b862468b6255cdc752cc8c77
2016-04-01loader: vk{Create|Destroy}Instance can have multiple tmp callbacksIan Elliott
During code review of the Android version of the temporary debug_report callbacks code, it was decided to allow an array of VkDebugReportCallbackCreateInfoEXT structs to be passed to vkCreateInstance(). This code implements that, using some new utility functions in order to help keep the code clean.
2016-04-01loader: Remove trampoline/terminator dependency in vkEnumeratePhysicalDevicesPiers Daniell
There was a dependency between the trampoline vkEnumeratePhysicalDevices and the terminator vkEnumeratePhysicalDevices via the loader_instance.phys_devs_term array which may break layers that manipulate the enumerated VkPhysicalDevice list. This dependency assumed the devices in loader_instance.phys_devs_term and loader_instance.phys_devs were in the same order and that it could assume the index of one corresponding to the same VkPhysicalDevice of the other. Breaking this dependency allows layers to modify or reorder the VkPhysicalDevice list by intercepting the vkEnumeratePhysicalDevices function without causing the loader to crash. In general, there should never be a dependency between the trampoline code and the terminator code because it has the potential to break unknown layers between them. Conflicts: loader/loader.c loader/trampoline.c Change-Id: Iafefd6e8b7dd58d398a76533f957123242c01b56
2016-04-01loader: Fix loader_unwrap_physical_device() to cast to correct typePiers Daniell
The trampoline loader_unwrap_physical_device() utility function was casting the VkPhysicalDevice parameter to (loader_physical_device*) instead of (loader_physical_device_tramp*). It worked previously because it just so happened that the phys_dev member was in the same location in both structs. Change-Id: I3bee175df8b64b44ef2e440f7e43603ca0617da2
2016-03-25loader: Fix bugs found in code review.Ian Elliott
2016-03-25loader: Setup temporary callback for vkDestroyInstanceIan Elliott
2016-03-24loader: ghlvl 116 Fix CreateDevice to use the proper ICDs PhysDevJon Ashburn
This is needed for querying extensoins from the ICD. Change-Id: I5655d33d15bf0ea6de506f81821a30dd81ca3d5a
2016-03-21layers: Rename param_checker to parameter_validationMark Lobodzinski
Also, param_check.h -> parameter_validation.h and .json files changed. Change-Id: I9db10563bcc2640fe6b90588d3c80c4fe50a8a83
2016-03-16layers: Replace draw_state and mem_tracker with core validationMark Lobodzinski
Change-Id: Ib8eb7491f6c60bc6d05da64a2311c8cfa5f88d60
2016-03-14#include formatting changes for relative look-up.Aaron Karp
- <> notation skips relative path searching in Visual Studio with some settings (and per language spec if I'm not mistaken). Switched to "" notation for includes where relative look-up seemed to be the intention.
2016-03-11loader: make sure createDevice uses ICDs physicalDeviceJon Ashburn
Trampoline CreateDevice was using the terminator's physicalDevice instead of the ICDs. Change-Id: Ifdc6497fe4130e1ac1440b225401e65600b2a999
2016-03-08loader: Fix issue passing wrong instance if layer wraps instancesJon Ashburn
Change-Id: Iafd0f7dc3e4a911b165d3df1dadddf4d45fbef10
2016-03-08loader: gllvl #50, Add support for the WSI extension KHR_displayJon Ashburn
Change-Id: I8d5ecc7500beba3042a6b9147b2f3fd3055b3b1d
2016-03-02loader: ghlvl 33, ghlvl 34 Fix aliasing of VkPhysicalDeviceJon Ashburn
This fixes problems with not selecting the proper PhysicalDevice within the loader if multiple PhysicalDevices are enumerated by the loader. Fix involves wrapping the VkPhysicalDevice object in both trampoline code and terminator code. Also get rid of the ICD device_extension_cache. It is now always queried from ICD whenever needed.
2016-02-26loader: Better delineate trampoline and terminator functionsJon Ashburn
No functional changes! Trampoline functions have the Vulkan API function name and are in trampoline.c. Terminator functions have terminator_<Vulkan API name> (omitting the "vk"). Instance extension trampoline and terminator functions are in together in the same file for the extension.
2016-02-18loader: Fix threading layer name in loader standard_threadingJon Ashburn
2016-02-14loader: For dev ext trampoline error code, add error loggingJon Ashburn
2016-02-14loader: add support for standard_validation layer enabled from env varJon Ashburn
Also fix memory corruption issue with the original std_validation patch.
2016-02-14loader: Add feature standard-validation layer from applicationJon Ashburn
Adds a validation layer grouping VK_LAYER_LUNARG_standard_validation, which is the set of validation layers in a fixed order. This only adds support for enumerating the meta layer and enabling it explicitly from the app. Environment variable enablement of this layer is not yet added.
2016-02-14loader: rerun clang-format on some filesJon Ashburn
2016-02-12header: Update 1.0.3 header revision for inclusion of debug report extensionMark Lobodzinski
Removed vk_ext_debug_report.h (contents moved into vulkan.h) Renamed debug report message enums
2016-02-10Remove Khronos confidential clause from license text.Karl Schultz
2016-02-08loader: Null-terminated string checksMark Lobodzinski
2016-02-03loader: Fix bug on pass by value for created_instanceJon Ashburn
2016-02-03loader:Update copyright and apply clang-format (no logic changes)Jon Ashburn
2016-01-28loader: Fix 32-bit loader exception when layers enabled for Vulkan apps.Mark Young
The loader_create_device_terminator had an incorrect calling convention. This caused the ESP pointer to not get properly restored after the function was called by a 32-bit application.
2016-01-20vktrace: Get partially working again with the new loader/layer interfaceJon Ashburn
2016-01-20loader: implement new layer init methodCourtney Goeltzenleuchter
New layer init method requires the construction of Link information for CreateInstance and CreateDevice that is accessible to layers via the CreateInfo.pNext pointer. The layer can then use the Get*ProcAddr from the Link structure to initialize their dispatch table if the call down the chain returns successfully. This removes the need to do special initialization work at Get*ProcAddr time. Layer Get*ProcAddr now return their internal function pointers regardless of the value of instance or device. Only need to have valid instance & device when looking up extensions or when passing the request down the chain. This mechanism allows us to remove object wrapping used by the loader previously. Also simplifies the dispatch table setup. Conflicts: layers/device_limits.cpp layers/draw_state.cpp loader/loader.c loader/trampoline.c
2016-01-12loader: Fix so unwrapped instance gets used for layer instance extension ↵Jon Ashburn
dispatch
2015-12-17debug_report: rename object type and error bitsCourtney Goeltzenleuchter
Conflicts: demos/tri.c layers/device_limits.cpp layers/draw_state.cpp layers/image.cpp layers/mem_tracker.cpp layers/param_checker.cpp layers/vk_layer_logging.h loader/debug_report.c tests/layer_validation_tests.cpp
2015-12-17misc: Update copyright statementsCourtney Goeltzenleuchter
2015-12-17debug_report: Add DebugReportMessage functionCourtney Goeltzenleuchter
2015-12-17debug_report: rename and update to use CreateInfoCourtney Goeltzenleuchter
2015-12-17debug_report: Rename VkDbgMsgCallback objectCourtney Goeltzenleuchter
2015-12-11wsi: Make WSI cases more consistent, fail if not set correctlyMark Lobodzinski
Filled in build details for Mir, Wayland, etc.
2015-12-10loader: Add support for device extension entrypoints in layer JSON filesJon Ashburn
Bugzilla #15012
2015-12-10loader: Convert ext list helper functions to generic formJon Ashburn
This allows future changes where the device and instance ext lists are different types.
2015-12-01loader: Add terminator functions for Create*SurfaceKHR functionsJon Ashburn
These need to call down the chain for layer intercept. Also remove DestroySurfaceKHR from ICD table.
2015-12-01loader: Convert vkDestroySurfaceKHR() to have a terminator.Ian Elliott
2015-12-01wsi: Moved definition of CreateXxxSurface extension to CMakefileMark Lobodzinski
Removed component-specific definitions
2015-12-01loader: Add vkGetPhysicalDevice*PresentationSupportKHR()Ian Elliott
These queries involve trampoline and terminator functions (the latter of which calls the ICD's function).