History log of /external/vulkan-validation-layers/layers/unique_objects.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
36f9d19dce58d509c189c22b4e630ba9a450ce5a 07-Sep-2016 Mark Lobodzinski <mark@lunarg.com> Layers: Implement unique_objects layer using vk.xml

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
/external/vulkan-validation-layers/layers/unique_objects.h
edc793f0d8e086912c46c7ef669a53ffedb4fdec 03-Oct-2016 Mark Lobodzinski <mark@lunarg.com> layers: Update changed extension names for 1.0.29

Change-Id: Ifc3484471e8f1e7ca585055b243f0688e7dfd33c
/external/vulkan-validation-layers/layers/unique_objects.h
df0735146ddd6ce7d29fc74232f59b4f862c400d 27-Sep-2016 Mark Lobodzinski <mark@lunarg.com> layers: Whitelisted new extensions for 1.0.28

Change-Id: Ife1621716ec9593de3ca528d071b707515acb8c2
/external/vulkan-validation-layers/layers/unique_objects.h
26f7026b125facaeaaf27b377181e7fa5d6a1ba9 19-Sep-2016 Mark Young <marky@lunarg.com> unique_object: Remove unneccessary code.

There is some duplication in querying the WSI extensions in the
unique_object layer. Remove the duplication.

Change-Id: I2f240e8f801bd3d154fce8b1cbc486b62b5a50ee
/external/vulkan-validation-layers/layers/unique_objects.h
dae6e857077ff54f468613f56fdd6dbffcaec8b5 26-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: PR887, Add extension white-list

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
/external/vulkan-validation-layers/layers/unique_objects.h
625cac1aeb4cfffb9b6a3c06bdf857d077bed173 25-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: Add debug report support to unique_objects

Change-Id: Ib276761a94e627c0e5504ca22737649c7722113c
/external/vulkan-validation-layers/layers/unique_objects.h
373469f006399d6b5204ee05db3b56beb168b36f 06-Jul-2016 Mark Young <marky@lunarg.com> layers : gh682 move gipa dispatch table init

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
/external/vulkan-validation-layers/layers/unique_objects.h
15b4845aaf667fa51be8fa910970901da84cc5a9 15-Jul-2016 Dustin Graves <dustin@lunarg.com> layers: NV_dedicated_allocation support for unique_objects

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
/external/vulkan-validation-layers/layers/unique_objects.h
ed4aaf592ef33a9e2be01430c4ade78bd28f027b 12-Jul-2016 Cody Northrop <cnorthrop@google.com> layers: Don't use instance pointer after it has been destroyed

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.
/external/vulkan-validation-layers/layers/unique_objects.h
7c1b4a4d2562d2ab230f96d4f6144a31f0f8ab35 30-Jun-2016 Jon Ashburn <jon@lunarg.com> layers: Fix compilation errors for KHR_display ext

For Android remove KHR_display entry points from intercept generation and
from header files.

Change-Id: Ic1386a94a2229c45a1ffaac3651326324105351e
/external/vulkan-validation-layers/layers/unique_objects.h
ed5b8c0dea6146258f390ac65dcb9c7808ecd18e 30-Jun-2016 Jon Ashburn <jon@lunarg.com> layers: Fix unique_objects creation of VkDisplayKHR

Make an explict_GetPhysicalDeviceDisplayProperties.

Change-Id: I39411d0dd97ca03dbf42d7e79b02243ef8988078
/external/vulkan-validation-layers/layers/unique_objects.h
f111922542ba7fc1a2b0909e4258029150837c31 28-Jun-2016 Jon Ashburn <jon@lunarg.com> layers: Fix GetDisplayModePropertiesKHR unique_objects code

Add the available DisplayModes to the map for use by CreateDisplayPlaneSurfaceKHR

Change-Id: I94754259069a844bb516d3cf9d4e130473dbc2e3
/external/vulkan-validation-layers/layers/unique_objects.h
70ebf4a7c86c77a8ce9b09683e06e872c975977c 15-Jun-2016 Jon Ashburn <jon@lunarg.com> layers: Finish add support to validation for VK_KHR_display extension

Swapchain, object_tracker and unique_objects now intercept and perform
validation checks for this extension.
Change-Id: I2e78d1dc516103de165ef83b99665eaad05b73d9
/external/vulkan-validation-layers/layers/unique_objects.h
a19fad484ac4b2a2b5c94192654591d689fd3261 15-Apr-2016 Petros Bantolas <petros.bantolas@imgtec.com> Added WSI KHR_display support to validation

Add support for this extension to object_tracker and swapchain layers.

Change-Id: Ifdf6095958a9d9d01720fde92e0bbd0a8a9a3216
/external/vulkan-validation-layers/layers/unique_objects.h
61d505ea40b189b7ae63f311e2f13210eef219d2 24-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH618, Correct WSI exension flag usage

Object_tracker had no notion of individual WSI extension flags,
and unique_objects was not checking them.

Change-Id: I93c1aa0c324aa602717f36e2975120dba8bc364e
/external/vulkan-validation-layers/layers/unique_objects.h
edac63503f87b4429c524ce796f6642c0dce4adc 17-May-2016 Chia-I Wu <olv@google.com> unique_objects: avoid invalid GIPA call in vkCreateDevice

Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.
/external/vulkan-validation-layers/layers/unique_objects.h
1c0b73114010d6eb49ff34243fa9474493ef6eae 13-May-2016 Chia-I Wu <olv@google.com> vk-layer-generate.py: put layer functions into a namespace

Move everything into namespace object_tracker and unique_objects
respectively. I had to add some wrappers to make everything work.
/external/vulkan-validation-layers/layers/unique_objects.h
37fb5d229d5163e1c1f817810dafd5e3e4c33a1d 10-May-2016 Karl Schultz <karl@lunarg.com> build: GH316 include cinttypes instead of inttypes.h

Fixes compilation problems on CentOS.

Change-Id: I92c5ea0ebea8684c40e67e9b386732e55cb47cc8
/external/vulkan-validation-layers/layers/unique_objects.h
e8c386537125cba5ebc02b394bae69fd47c2b5d1 29-Apr-2016 Mark Lobodzinski <mark@lunarg.com> layers: Make unique object IDs unique cross-device and cross-instance

Change-Id: Ic45e21bd3137dc0474c59f0f4cf9331f070dac20
/external/vulkan-validation-layers/layers/unique_objects.h
6f7750c12e4ed3021e0c4c7ad45b188491227ff9 29-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Fix access violation

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
/external/vulkan-validation-layers/layers/unique_objects.h
43b53e83705f02245da6ae61e31273866a35b833 19-Apr-2016 Jon Ashburn <jon@lunarg.com> misc: Update licenses to Apache 2.0

Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
/external/vulkan-validation-layers/layers/unique_objects.h
88f2e92a842cb325b7f17b56ca5aaf2c6f1f1617 15-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Fix 32-bit VS2013 build

Change reinterpret_cast<uint64_t> to reinterpret_cast<uint64_t&> for
unique_objects generated and static code.

Change-Id: I8be5680063ce8a26b58c444e59cb325c4cf6e98b
/external/vulkan-validation-layers/layers/unique_objects.h
2fb0dba25a2ef615bc82cb43af333acacd99b82f 13-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Overhaul unique_objects

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.
/external/vulkan-validation-layers/layers/unique_objects.h
6f25bb7c1c77be0bcfbca387329550a4d069f706 04-Apr-2016 Jamie Madill <jmadill@chromium.org> layers: Change include order of loader platform.

This fixes a bug where on Windows, windows.h would include
winsock.h before winsock2.h, causing numerous warnings.

Change-Id: I8eba1497385dcee6ebb201c74fe48268e6663b9c
/external/vulkan-validation-layers/layers/unique_objects.h
f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bf 22-Mar-2016 Jon Ashburn <jon@lunarg.com> misc: Update to header version 1.0.6

Change-Id: Idf7a9d40278b796e16effa54e9b60668d275b8ec
/external/vulkan-validation-layers/layers/unique_objects.h
491a3cd11793892b996a8b5771479cc539198f99 09-Mar-2016 Jon Ashburn <jon@lunarg.com> layers: clang-format layers directory

Change-Id: I318e3759829f33441e57aafedec1e9ec06d658c4
/external/vulkan-validation-layers/layers/unique_objects.h
90ee20e0fd1b42245ed4242df98d7a55032ce6ee 03-Mar-2016 Michael Lentine <mlentine@google.com> build: LVLPR65, Fix android extensions support in unique_objects
/external/vulkan-validation-layers/layers/unique_objects.h
00a897325251de38bacc017bcacf17bc5b018072 21-Feb-2016 Eric Engestrom <eric@engestrom.ch> layers: Remove unnecessary null pointer checks

Fixes GitHub Issue #6
/external/vulkan-validation-layers/layers/unique_objects.h
9aac555fc92f69fd059781139e17647eb7277992 10-Feb-2016 Tobin Ehlis <tobine@google.com> layers: Update unique_objects to make use of safe_structs

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.
/external/vulkan-validation-layers/layers/unique_objects.h
3cd96a2da93fa325b0d51369388f9b93798f6c80 10-Feb-2016 Karl Schultz <karl@lunarg.com> Remove Khronos confidential clause from license text.
/external/vulkan-validation-layers/layers/unique_objects.h
b838dc009d9e603ef13bdac2d1f960da78bebd2d 03-Feb-2016 Mark Lobodzinski <mark@lunarg.com> Revert "layers: Clang-format changes for files in layers dir of repo"

This reverts commit e260acfb96ea20945149ede6a250ef622ca7fd03.
The clang-format changes need to be postponed until just prior
to public release to facilitate MRs.
/external/vulkan-validation-layers/layers/unique_objects.h
e260acfb96ea20945149ede6a250ef622ca7fd03 03-Feb-2016 Mark Lobodzinski <mark@lunarg.com> layers: Clang-format changes for files in layers dir of repo
/external/vulkan-validation-layers/layers/unique_objects.h
288e4f7d378f9185c714ead36a17dff64be24e49 02-Feb-2016 Mark Lobodzinski <mark@lunarg.com> layers: Validation Layer Copyright Updates
/external/vulkan-validation-layers/layers/unique_objects.h
2bdf6da2d55b916479f90c87797ff20ddbb14fd9 08-Jan-2016 Courtney Goeltzenleuchter <courtneygo@google.com> loader: implement new layer init method

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
/external/vulkan-validation-layers/layers/unique_objects.h
a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218 11-Jan-2016 Jon Ashburn <jon@lunarg.com> misc: Move to Vulkan header version 0.222
/external/vulkan-validation-layers/layers/unique_objects.h
115790b84c1afea132a994b5e47ffec7601d6759 06-Jan-2016 Tobin Ehlis <tobine@google.com> layers: UniqueObject updates based on review

Remove all of the DebugReport stuff, this layer doesn't use it.
Update some corner cases to make sure objects are correctly restored.
/external/vulkan-validation-layers/layers/unique_objects.h
0b99d0383bb88c3b128c7d7922151d6a833da51d 08-Dec-2015 Tobin Ehlis <tobine@google.com> layers: Add UniqueObjects layer to wrap objects in unique ptr

This layer should sit at the BOTTOM of the layer stack (closest to the driver, furthest from the app). It interecpts all created non-dispatchable-objects and wraps them in a struct, returning that struct ptr up the chain.

For all API calls that use NDOs, this layer will unwrap them, and overwrite the wrapped handle with the actual handle before passing it down. Then, after calling down to the driver, the layer will re-overwrite the NDO handles with the original, wrapped handle.

When an NDO object is destroyed, the actual handle is passed down, then the wrap struct object is destroyed.
/external/vulkan-validation-layers/layers/unique_objects.h