aboutsummaryrefslogtreecommitdiff
path: root/layers/unique_objects.h
AgeCommit message (Collapse)Author
2017-12-15layers: Fix Graphics Pipeline pointers not ignoredPetr Kraus
Some VkGraphicsPipelineCreateInfo pointers must be ignored under some conditions, but were not in the layers. Add relevant tests. Fix tests found broken (using depth or color without attachment in subpass)
2017-09-12Revert "layers: Fix Graphics Pipeline pointers not ignored"Mark Lobodzinski
This caused segfaults on Intel Skylake, NexusPlayer, and Samsung Galaxy S8 (Mali). This reverts commit 367d276ffe5c0748ff9d8e2b3551d4a00c9fc3c2.
2017-09-12layers: Fix Graphics Pipeline pointers not ignoredPetr Kraus
Some VkGraphicsPipelineCreateInfo pointers must be ignored under some conditions, but were not in the layers. Add relevant tests. Fix tests found broken (using depth or color without attachment in subpass) Change-Id: I3e2a3f61a52c72ce3a11483ff8b031189f4c61c9
2017-06-06layers: Remove device_extensions.h from unique objsMark Lobodzinski
Was not being used. Change-Id: I498b40bd0ee29d4e1ef478b0570947ef2315144e
2017-05-03layers: Move UO helpers to headerChris Forbes
2017-05-03layers: Store instance data in UO::layer_data rather than gpu handleChris Forbes
2017-05-03layers: Use InstanceExtensions support in UOChris Forbes
2017-05-03layers: hold UO dispatch tables by value in layer_dataChris Forbes
Trims out some allocations; fixes leak of dispatch tables
2017-05-03layers: UO: split device and instance dataChris Forbes
2017-03-07layers: Create desc_update_template map for new objsMark Lobodzinski
Store unique_objects DescriptorUpdateTemplate data in a map for parsing UpdateTempate buffers. Change-Id: Iab0d95a1aa2f309a3d33c8859b16543f98ca549c
2017-02-10layers: Codegen unique-objects extension whitelistsMark Lobodzinski
These lists are now generated from vk.xml. Change-Id: Id7571d8b18b272c7d7ead905d53e5ff778afcb6e
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-25layers: Add new exts to unique_objects whitelistLenny Komow
Change-Id: Ia61c79833ed3b6e37402406631a50c746f312928
2017-01-25layers: Make uniqueobjects header clang-format proofMark Lobodzinski
Change-Id: I779ed9c2c1d9c7d8d0fcfec4dd89d95c14ee1401
2016-10-06Layers: Implement unique_objects layer using vk.xmlMark Lobodzinski
UniqueObjects was the final LVL layer not using vk.xml for codegen. The new implementation follows the threading layer model which (outside of safe_struct dependencies) is more tolerant of API changes. Also updated for structure and style. build-android/android-generate.bat - Updated for build build-android/android-generate.sh - Updated for build generator.py - Added Unique Objects Generator genvk.py - Added call to U_O generator layers/CMakeLists.txt - Updated for build layers/unique_objects.cpp - New: manually generated code layers/unique_objects.h - Now a true header file vk-layer-generate.py - killed! Change-Id: I0d57871dfd2600829502f0bffd7cf6f926b7d5e7
2016-10-03layers: Update changed extension names for 1.0.29Mark Lobodzinski
Change-Id: Ifc3484471e8f1e7ca585055b243f0688e7dfd33c
2016-09-29layers: Whitelisted new extensions for 1.0.28Mark Lobodzinski
Change-Id: Ife1621716ec9593de3ca528d071b707515acb8c2
2016-09-19unique_object: Remove unneccessary code.Mark Young
There is some duplication in querying the WSI extensions in the unique_object layer. Remove the duplication. Change-Id: I2f240e8f801bd3d154fce8b1cbc486b62b5a50ee
2016-08-29layers: PR887, Add extension white-listMark Lobodzinski
The unique_objects layer wraps objects -- layers that wrap objects should output an error message if used with any extension that is not explicitly supported by the layer. Added a whitelist of supported extensions and error messages for unsupported extensions. Change-Id: I9ce0acb22ddfa5b81e36c7e03fffad0777b5410d
2016-08-29layers: Add debug report support to unique_objectsMark Lobodzinski
Change-Id: Ib276761a94e627c0e5504ca22737649c7722113c
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-07-18layers: NV_dedicated_allocation support for unique_objectsDustin Graves
Add ID substitution support for the VkDedicatedAllocationMemoryAllocateInfoNV extension structure to the unique_objects layer. The current implementation is specific to the case where the vkAllocateMemory pAllocateInfo parameter references a single VkDedicatedAllocationMemoryAllocateInfoNV struct. Issues-Addressed: GitHub #755 Change-Id: I33c3f00d32149044694ecafe808673e5d90107b4
2016-07-12layers: Don't use instance pointer after it has been destroyedCody Northrop
In unique_objects' explicit_DestroyInstance(), the recently introduced second get_dispatch_table() was using a destroyed instance as a lookup key, failing to find an entry (since the driver controls that memory and probably freed it), and was crashing consistently on PixelC. Instead, use the instance pointer to cleanup instanceExtMap before calling down to the ICD's DestroyInstance. Additionally, use the existing VkLayerInstanceDispatchTable* instead of calling get_dispatch_table() twice.
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 unique_objects creation of VkDisplayKHRJon Ashburn
Make an explict_GetPhysicalDeviceDisplayProperties. Change-Id: I39411d0dd97ca03dbf42d7e79b02243ef8988078
2016-06-30layers: Fix GetDisplayModePropertiesKHR unique_objects codeJon Ashburn
Add the available DisplayModes to the map for use by CreateDisplayPlaneSurfaceKHR Change-Id: I94754259069a844bb516d3cf9d4e130473dbc2e3
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-24unique_objects: 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-10build: GH316 include cinttypes instead of inttypes.hKarl Schultz
Fixes compilation problems on CentOS. Change-Id: I92c5ea0ebea8684c40e67e9b386732e55cb47cc8
2016-05-02layers: Make unique object IDs unique cross-device and cross-instanceMark Lobodzinski
Change-Id: Ic45e21bd3137dc0474c59f0f4cf9331f070dac20
2016-04-29layers: Fix access violationDustin Graves
Move the get_dispatch_key(instance/device) call before calling the driver's vkDestroyDevice/vkDestroyInstance functions in unique_objects. This addresses an access violation error reported by Application Verifier on Windows due to the previously destroyed instance/device handle being dereferenced. Change-Id: I151d42fb8a897d9d3b3c988813108b0b6b5b6b0d
2016-04-19misc: Update licenses to Apache 2.0Jon Ashburn
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
2016-04-14layers: Fix 32-bit VS2013 buildDustin Graves
Change reinterpret_cast<uint64_t> to reinterpret_cast<uint64_t&> for unique_objects generated and static code. Change-Id: I8be5680063ce8a26b58c444e59cb325c4cf6e98b
2016-04-14layers: Overhaul unique_objectsTobin Ehlis
Unique objects now uses a 64-bit counter as the unique handle returned to the app. It stores an internal mapping of handles to actual object ptrs that are used for all non-dispatchable objects. This virtually eliminates the possibility of having a repeat handle as objects are created and destroyed. All counter increments and map accesses are protected by a mutex.
2016-04-05layers: Change include order of loader platform.Jamie Madill
This fixes a bug where on Windows, windows.h would include winsock.h before winsock2.h, causing numerous warnings. Change-Id: I8eba1497385dcee6ebb201c74fe48268e6663b9c
2016-03-22misc: Update to header version 1.0.6Jon Ashburn
Change-Id: Idf7a9d40278b796e16effa54e9b60668d275b8ec
2016-03-08layers: clang-format layers directoryJon Ashburn
Change-Id: I318e3759829f33441e57aafedec1e9ec06d658c4
2016-03-03build: LVLPR65, Fix android extensions support in unique_objectsMichael Lentine
2016-02-23layers: Remove unnecessary null pointer checksEric Engestrom
Fixes GitHub Issue #6
2016-02-11layers: Update unique_objects to make use of safe_structsTobin Ehlis
Stop overwriting const* data in unique_objects. Instead, declare local safe_struct copies of data, update that data in place with unwrapped objects, and pass down the local safe_struct copy, which spoofs the original struct layout. This includes code to build the layer using vk_safe_struct.h/cpp files.
2016-02-10Remove Khronos confidential clause from license text.Karl Schultz
2016-02-03Revert "layers: Clang-format changes for files in layers dir of repo"Mark Lobodzinski
This reverts commit e260acfb96ea20945149ede6a250ef622ca7fd03. The clang-format changes need to be postponed until just prior to public release to facilitate MRs.
2016-02-02layers: Clang-format changes for files in layers dir of repoMark Lobodzinski
2016-02-02layers: Validation Layer Copyright UpdatesMark Lobodzinski
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-11misc: Move to Vulkan header version 0.222Jon Ashburn
2016-01-07layers: UniqueObject updates based on reviewTobin Ehlis
Remove all of the DebugReport stuff, this layer doesn't use it. Update some corner cases to make sure objects are correctly restored.