aboutsummaryrefslogtreecommitdiff
path: root/layers/object_tracker.h
AgeCommit message (Collapse)Author
2017-11-15layers: Validate device dispatchable objectsMark Lobodzinski
Device object validation required dereferencing possibly bad device objects. Moved ownership of device objects to instance objects, and to search each of the layer_data object lists for a created device handle matching the our candidate device object. Change-Id: If5615294c397ff6991d4d21ac75ab58d1b0b0841
2017-08-23header: Update to version 1.0.59 of the vulkan hdrMark Lobodzinski
- updated vulkan.h - updated vk.xml - updated Win/Lin json files - rebuilt and updated vulkan.hpp - updated vk_validation_error_database.txt - updated vk_validation_error_messages.h - added new code-generated VUIDs (16) to error database - modified object tracker for VUID corner-case - updated vulkaninfo.c for STYPE name change Change-Id: I0870e8bc4e84867e05bd466c13c7428b9b7365ac
2017-07-24layers: Remove now-redundant OT hdr prototypesMark Lobodzinski
Codegen creates its own prototypes, no longer need them in the header file. Change-Id: Ibaab124a26391dc4925e49f095ddac83523aa725
2017-07-24layers: Update API for vulkan parameter def changeMark Lobodzinski
One of the DebugMarkerSetObjectName parameters changes to const. Change-Id: I23455957b83a84983bc7217a2a0d937ae03055e2
2017-07-24layers: Move GetSwaphchainImages func in OTMark Lobodzinski
Special case function must avoid code generation. Change-Id: I7c03cb2c0b4053f3d2b0579d532f1da82be80bd4
2017-07-24layers: Move GetDeviceQueue func in OTMark Lobodzinski
Special case function must avoid code generation. Change-Id: I786d4ef4a8855f10e9cfe1234a5d885056f50a93
2017-07-24layers: Move CreateComputePipelines in OTMark Lobodzinski
Moved to manually-generated, it has an odd corner case that's a one- off and not worth code-generating. Change-Id: I2631dd2107fffcd7e641b5a98bee126502d61ba8
2017-07-18layers: Update object_tracker var/func namesMark Lobodzinski
Change-Id: Iacc0cb2676cd2346879d7d51e91b9b75232d5ad4
2017-07-18layers: Reorganize ObjectTracker for future codegenMark Lobodzinski
Moved to-be-generated source to object_tracker.cpp, manually- written and helper functions to object_tracker_utils.cpp (new file), and reworked header. Updated doc validator to search new file. Change-Id: I0fd3bcc4f6d123db07c7f8e2633e6fe16833e231
2017-06-09layers: Remove extension enable checks from OTMark Lobodzinski
Change-Id: I926836e429a2f38c35291702ab9f71b6d1834d7f
2017-04-25layers:Validate objects for display_timingTobin Ehlis
Update object_tracker validation for swapchain objects in new functions for VK_GOOGLE_display_timing extension. Add in missing Error IDs and update database.
2017-04-13layers: Switch to codegen'd obj_type string helperMark Lobodzinski
Updated LVTs for error string changes as well. Change-Id: I5e0da92a9859e8ada7374af42a21a3f8f7629fdd
2017-04-13layers: Use gen'd object types in object_trackerMark Lobodzinski
Change-Id: I2166407bffcbf037d9b7898d91c674ed60fc95ba
2017-04-12layers: Fix object tracker extension structMark Lobodzinski
Change-Id: Iec29cc46df0f12d7e1da4daa18fb02d5023151b5
2017-03-01vulkan: update to header 1.0.42Mark Young
Updated all necessary files to 1.0.42. This includes the various headers as well as the loader, and the parameter validation, object tracking, and threading layers. Additionally, bump all layer JSON files to 1.0.42. Also, in this change: - Enable loader extension automation so that the loader now generates all extension entry-points automatically during build to reduce likelihood of missing a critical piece on header update. - Enable layer dispatch table extension automation for the same reason. - Fixes from Mark Lobodzinski and Tony Barbour to resolve crash in loader when working with Intel's Windows driver due to GetInstanceProcAddr getting called on inappropriate command names. Change-Id: Ic18d3fac2e145c386c0192031deb5089c91a00d8
2017-01-26repo: Clang-format LVL source files using GoogleMark Lobodzinski
Switch clang-format standard from the LLVM style to the Google style for more consistency. Change-Id: I247c4abc275d7873a91522e1e234198adaa24033
2017-01-26repo: Clang-format c/cpp/h LVL files using LLVMMark Lobodzinski
Bring all source files in the repo up to date with consistent coding style/standard. Change-Id: Iceedbc17109974d3a0437fc4995441c9ad7e0c23
2017-01-24loader: Update the loader to 1.0.39Mark Young
Add new extensions for 1.0.39. Also, updated layers to include minimal set of functionality for 1.0.39 extensions. Extensions include: - VK_KHR_get_physical_device_properties2 - VK_KHR_shader_draw_parameters - VK_EXT_direct_mode_display - VK_EXT_display_surface_counter - VK_EXT_display_control Also, redo the LoaderAndLayerIf document. Change-Id: I10412086da7a798afe832a3892e18f606259b5af
2016-12-13layers: GH897, Add VK_KHR_display stubs to OTMark Lobodzinski
Added extension enable and function stubs for VK_KHR_display extension functions to object_tracker. Change-Id: Iaee862efaadf4657271b74d75a289dbaf13af26c
2016-12-02layers:Handle NULL DebugMarker function ptrsTobin Ehlis
Fixes #1074 Object_tracker and parameter_checker intercept DebugMarker extension functions which may not be supported by underlying device and therefore could terminate with a NULL function call. Updating these layers to handle this case by making sure that their downstream function ptr is not null before calling down the chain. If the downstream function ptr is null, considering that VK_SUCCESS in the layers for functions with VkResult return code.
2016-11-29layers: Complete support for VK_KHR_Display extNorbert Nopper
Fixed using display extension only crash. Added vkGetDisplayPlaneCapabilitiesKHR. Fixes, that unique objects works for display extension. Change-Id: I66727a430b9d55bfa40fdddc884f40c91aa29f11
2016-10-04layers: Track whether any object was created with a custom allocatorChris Forbes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-08loader: Add checks for usage of wsi extensionsMark Young
The loader really should validate that the WSI extensions are enabled before being called. Additionally, I needed to add more checks for the KHR_display_swapchain extension in the parameter_validation and object_tracker layers. Change-Id: I3d07d46baf551be6f5f07e5374d6c683e3f52e7e
2016-08-02layers: Fix object_tracker buildTobin Ehlis
This moves a static array of maps to be a vector of maps. Building android from Windows crashes clang without this change. clang in the NDK doesn't like arrays of unordered_maps.
2016-08-02layers: Remove debug comments from OT.hMark Lobodzinski
Change-Id: I1cf485ddb54223b873746ff218f0f34085a87450
2016-07-22layers: Update object_tracker layerMark Lobodzinski
Removed dead code, added per-instance and per-device object tracking, (this was broken in codegen'd version with no cross-device validation), updated for new layer architectures and coding standards, removed OT-related codegen -- it is now a standalone cpp file. Change-Id: I64464b855e1b4841c8e3a581387e0e9065b006f7
2016-07-21layers : gh682 move gipa dispatch table initMark Young
Move the GIPA setup of the dispatch tables for layers into the layer_init_device_dispatch_table call since we're already doing a majority of it there. This removes the need to separately setup the WSI extension entry-points. Additionally, memset the table to 0, just to make sure anything that gets added in the future is obvoiusly not set. Change-Id: I63c7c107cd9f7957e2766fdbeb8a06bc1ae0eda6
2016-06-30layers: Fix compilation errors for KHR_display extJon Ashburn
For Android remove KHR_display entry points from intercept generation and from header files. Change-Id: Ic1386a94a2229c45a1ffaac3651326324105351e
2016-06-30layers: FIx object_tracker displayKHR and displayModeKHR creationJon Ashburn
For displayModeKHR there are two separate Vulkan commands that can create these objects. For displayKHR there is one command that creates the object: GetPhysicalDeviceDisplayPropertiesKHR. GetDisplayPlaneSupportedDisplaysKHR doesn't create new objects but returns existing objects. The existing code had the creation in GetDisplayPlaneSupportedDisplaysKHR rather than in GetPhysicalDeviceDisplayPropertiesKHR. Change-Id: I63df7c41a0d17acd8b06ebb1a5742ac032159a09
2016-06-30layers: Finish add support to validation for VK_KHR_display extensionJon Ashburn
Swapchain, object_tracker and unique_objects now intercept and perform validation checks for this extension. Change-Id: I2e78d1dc516103de165ef83b99665eaad05b73d9
2016-06-30Added WSI KHR_display support to validationPetros Bantolas
Add support for this extension to object_tracker and swapchain layers. Change-Id: Ifdf6095958a9d9d01720fde92e0bbd0a8a9a3216
2016-06-29layers: GH618, Correct WSI exension flag usageMark Lobodzinski
Object_tracker had no notion of individual WSI extension flags, and unique_objects was not checking them. Change-Id: I93c1aa0c324aa602717f36e2975120dba8bc364e
2016-05-24object_tracker: avoid invalid GIPA call in vkCreateDeviceChia-I Wu
Save VkInstance in layer_data so that we query vkCreateDevice with a valid instance.
2016-05-24vk-layer-generate.py: put layer functions into a namespaceChia-I Wu
Move everything into namespace object_tracker and unique_objects respectively. I had to add some wrappers to make everything work.
2016-05-20layers: GH7, Replace bad var names in obj_trackerMark Lobodzinski
C++ reserves variable names that start with an underscore followed by a capital letter. This patch series replaces or removes these invalid variable names from the LVL codespace. Change-Id: I71368cf30e267841cedcc3861afa3444689d71da
2016-05-13layers: LX518, Fix ObjectTracker memory leaksMark Lobodzinski
Several places in object_tracker were not properly deleting data structures, which caused signicant memory leaks. Change-Id: Ie64ab18efecc45838e103dd7a8cb5f75c92155c4
2016-05-11layers:LX#470 Fix poor use of hex vs dec outputMark Mueller
1) Introduce convention of explicitly placing "0x" before hex format requests for clarity (don't use "%#") 2) All lower case in hex output (except w/stringstream which refuses to do anything but uppercase, possibly only on windows). 3) Decorated pointers are printed for all Vulkan structure types. 3) Some intelligence in generators based on Vulkan variable name: if the Vulkan variable name contains ("flag", "bit", "offset", "handle", "buffer", "object", "mask") it will be output in hexadecimal format 4) Remove "using namespace std;" from global scope of vk_struct_string_helper_cpp.h Change-Id: Idbae73bfdaa3bc059543d43b209373cd0bcbc099
2016-05-06layers: Fix object_tracker warnings in Android and Win32 buildsMark Lobodzinski
Change-Id: If937c4c5aca0dc274aa67a9b52b99909723f082c
2016-05-06layers: Fix object_tracker handling of pool-related validation failuresMark Lobodzinski
Return codes weren't plumbed through, failures caused layer crashes. Change-Id: If258d449a420d33b6c72dc5c289d77c7215f2c2f
2016-05-06layers: Correct and/or remove obsolete object_tracker error enumsMark Lobodzinski
Change-Id: I6f759890749fb17226e00d28ab8391dc7cc0e80c
2016-05-06layers: ObjectTracker dead code eliminationMark Lobodzinski
Change-Id: I3244f8da58a7f150ebfa772a7c131422f75d0d8b
2016-05-06layers: Remove 'using namespace std' in object_trackerMark Lobodzinski
Change-Id: Ic1ab57e5b4192ed98df8c7e6fc8c225aff631fd8
2016-04-28android: Fix layer buildCody Northrop
Warning as error, struct field initialization not matching order of declaration.
2016-04-28layers: Use tmp callback for msgs during vk{Create|Destroy}Instance().Ian Elliott
This is implements some relatively-new functionality of the VK_EXT_debug_report extension. An application can pass VkDebugReportCallbackCreateInfoEXT structs on the pNext chain given to vkCreateInstance(), in order to setup one or more callbacks that can be used during vk{Create|Destroy}Instance(). These special, "temporary callbacks" allow messages (e.g. errors) to be logged during the time when the debug_report extension is normally not setup. A set of utilities copy VkDebugReportCallbackCreateInfoEXT structs from the pNext chain given to vkCreateInstance(). These utilities are used by the validation layers that may have messages (e.g. errors) during vk{Create|Destroy}Instance().
2016-04-19misc: Update licenses to Apache 2.0Jon Ashburn
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
2016-04-19layers: Fix object_tracker bugsTobin Ehlis
A couple of bugs in object_tracker hand-coded sections that MarkY tracked down. In DestroyInstance case we were attempting to delete wrong map key. Then, for vkDestroyCommandPool we were using wrong function to clean-up the command buffers in that pool which would result in occassional crashes.
2016-04-18layers: object_tracker - use std mutexJeremy Hayes
Change-Id: I5f9ed9dc92daccaada895808e3fea3189ef81212
2016-03-16layers: Move layer debug action initialization into layer_utilsMark Lobodzinski
Also removed dead code from the layer generation script. Change-Id: I64fdcaaf1aed8152de62079568c8e247333d8c61
2016-03-08layers: clang-format layers directoryJon Ashburn
Change-Id: I318e3759829f33441e57aafedec1e9ec06d658c4
2016-03-08layers: LX430, Modfiy object_tracker to handle multiple instancesMark Lobodzinski
Upon DestroyInstance, OT indicated that all objects in all maps were not properly destroyed. Made this reporting work on a per-instance basis. Change-Id: I9b4eae4364a24597cb449610a31bf9b872c45225