| Age | Commit message (Collapse) | Author |
|
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
|
|
Change-Id: I43c279e36368bf1ef9a2f446007e34366bfff777
|
|
Change-Id: I2e5c3717dd7fa86992f617bcc0f93de8ba60759e
|
|
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
|
|
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
|
|
Last several commits to loader weren't run through it.
Change-Id: I512b2df75c7831ee6433e4c60c6664db85184584
|
|
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
|
|
Change-Id: If6b6b24fdf02b960c83148bd002114941eb1adc6
|
|
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>
|
|
GL74: vkEnumerateInstanceExtensionProperties should report implicit
instance extensions when pLayerName is NULL or an implicit layer name.
Change-Id: Iba7664a168e146c4b862468b6255cdc752cc8c77
|
|
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.
|
|
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
|
|
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
|
|
|
|
|
|
This is needed for querying extensoins from the ICD.
Change-Id: I5655d33d15bf0ea6de506f81821a30dd81ca3d5a
|
|
Also, param_check.h -> parameter_validation.h and .json files changed.
Change-Id: I9db10563bcc2640fe6b90588d3c80c4fe50a8a83
|
|
Change-Id: Ib8eb7491f6c60bc6d05da64a2311c8cfa5f88d60
|
|
- <> 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.
|
|
Trampoline CreateDevice was using the terminator's physicalDevice instead of
the ICDs.
Change-Id: Ifdc6497fe4130e1ac1440b225401e65600b2a999
|
|
Change-Id: Iafd0f7dc3e4a911b165d3df1dadddf4d45fbef10
|
|
Change-Id: I8d5ecc7500beba3042a6b9147b2f3fd3055b3b1d
|
|
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.
|
|
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.
|
|
|
|
|
|
Also fix memory corruption issue with the original std_validation patch.
|
|
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.
|
|
|
|
Removed vk_ext_debug_report.h (contents moved into vulkan.h)
Renamed debug report message enums
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
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
|
|
dispatch
|
|
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
|
|
|
|
|
|
|
|
|
|
Filled in build details for Mir, Wayland, etc.
|
|
Bugzilla #15012
|
|
This allows future changes where the device and instance ext lists are different
types.
|
|
These need to call down the chain for layer intercept.
Also remove DestroySurfaceKHR from ICD table.
|
|
|
|
Removed component-specific definitions
|
|
These queries involve trampoline and terminator functions (the latter
of which calls the ICD's function).
|