| Age | Commit message (Collapse) | Author |
|
Change-Id: I43c279e36368bf1ef9a2f446007e34366bfff777
|
|
Silently ignore VK_NULL_HANDLE in DestroyInstance/Device.
Change-Id: I96305088db75932b6f3f824852db9c72b8352120
|
|
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
|
|
Change-Id: I68ac2681b7c4923213c65dc720f54d81a36c99ef
|
|
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
|
|
Modify the trampoline vkEnumeratePhysicalDevices() implementation to
enumerate the number of physical devices based on what the top-most
layer reports and not what the terminator_EnumeratePhysicalDevices
counted. This allows intermediate layers to modify the physical device
count.
Change-Id: Ifd5c3c8c4db53cf97b976feefe18de7cfef47e35
|
|
|
|
|
|
This is needed for querying extensoins from the ICD.
Change-Id: I5655d33d15bf0ea6de506f81821a30dd81ca3d5a
|
|
Trampoline CreateDevice was using the terminator's physicalDevice instead of
the ICDs.
Change-Id: Ifdc6497fe4130e1ac1440b225401e65600b2a999
|
|
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.
|
|
Should be no functional change.
Restructure so the terminator functions don't contain trampoline code.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also fix bug where createDevice failure removes logical device from icd
struct
|
|
Workaround for cts to work.
|
|
|
|
|
|
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
|
|
Fix's issue with layers that wrap instance.
|
|
Gitlab #58
CreateInstance shouldn't update output parameter on failure.
|
|
dispatch
Conflicts:
loader/trampoline.c
|
|
dispatch
|
|
|
|
Use sizeof(int) as a default generally. Is that reasonable?
|
|
Header file changes going to 213 version
|
|
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
|
|
If an application links a VkDebugReportCreateInfo
structure to the InstanceCreateInfo structure the
loader will log the callback for the duration of
the CreateInstance call. This allows the app
to catch any loader issues detected at CreateInstance
time.
|
|
Now need to create & destroy callbacks as part of
vkCreateInstance, so refactor debug_report entries
into API function and work function that can be
used from the loader.
Conflicts:
loader/debug_report.c
|
|
|
|
This allows future changes where the device and instance ext lists are different
types.
|
|
|
|
LX # 201
Conflicts:
loader/trampoline.c
|
|
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15120
|
|
Update python scripts.
s/(VKAPI \*/(VKAPI_PTR */g
s/void VKAPI\b/VKAPI_ATTR void VKAPI_CALL/g
s/VkResult VKAPI\b/VKAPI_ATTR VkResult VKAPI_CALL/g
s/PFN_vkVoidFunction VKAPI\b/VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL/g
s/void\* VKAPI\b/VKAPI_ATTR void* VKAPI_CALL/g
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15068
|
|
Author information was added to any file
with the standard license text.
Authors were added that added/changed >= 3%
of the lines of a file.
|
|
|