| Age | Commit message (Collapse) | Author |
|
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)
|
|
This caused segfaults on Intel Skylake, NexusPlayer, and
Samsung Galaxy S8 (Mali).
This reverts commit 367d276ffe5c0748ff9d8e2b3551d4a00c9fc3c2.
|
|
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
|
|
Was not being used.
Change-Id: I498b40bd0ee29d4e1ef478b0570947ef2315144e
|
|
|
|
|
|
|
|
Trims out some allocations; fixes leak of dispatch tables
|
|
|
|
Store unique_objects DescriptorUpdateTemplate data in a map
for parsing UpdateTempate buffers.
Change-Id: Iab0d95a1aa2f309a3d33c8859b16543f98ca549c
|
|
These lists are now generated from vk.xml.
Change-Id: Id7571d8b18b272c7d7ead905d53e5ff778afcb6e
|
|
Switch clang-format standard from the LLVM style to the
Google style for more consistency.
Change-Id: I247c4abc275d7873a91522e1e234198adaa24033
|
|
Change-Id: Ia61c79833ed3b6e37402406631a50c746f312928
|
|
Change-Id: I779ed9c2c1d9c7d8d0fcfec4dd89d95c14ee1401
|
|
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
|
|
Change-Id: Ifc3484471e8f1e7ca585055b243f0688e7dfd33c
|
|
Change-Id: Ife1621716ec9593de3ca528d071b707515acb8c2
|
|
There is some duplication in querying the WSI extensions in the
unique_object layer. Remove the duplication.
Change-Id: I2f240e8f801bd3d154fce8b1cbc486b62b5a50ee
|
|
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
|
|
Change-Id: Ib276761a94e627c0e5504ca22737649c7722113c
|
|
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
|
|
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
|
|
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.
|
|
For Android remove KHR_display entry points from intercept generation and
from header files.
Change-Id: Ic1386a94a2229c45a1ffaac3651326324105351e
|
|
Make an explict_GetPhysicalDeviceDisplayProperties.
Change-Id: I39411d0dd97ca03dbf42d7e79b02243ef8988078
|
|
Add the available DisplayModes to the map for use by CreateDisplayPlaneSurfaceKHR
Change-Id: I94754259069a844bb516d3cf9d4e130473dbc2e3
|
|
Swapchain, object_tracker and unique_objects now intercept and perform
validation checks for this extension.
Change-Id: I2e78d1dc516103de165ef83b99665eaad05b73d9
|
|
Add support for this extension to object_tracker and swapchain layers.
Change-Id: Ifdf6095958a9d9d01720fde92e0bbd0a8a9a3216
|
|
Object_tracker had no notion of individual WSI extension flags,
and unique_objects was not checking them.
Change-Id: I93c1aa0c324aa602717f36e2975120dba8bc364e
|
|
Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.
|
|
Move everything into namespace object_tracker and unique_objects
respectively. I had to add some wrappers to make everything work.
|
|
Fixes compilation problems on CentOS.
Change-Id: I92c5ea0ebea8684c40e67e9b386732e55cb47cc8
|
|
Change-Id: Ic45e21bd3137dc0474c59f0f4cf9331f070dac20
|
|
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
|
|
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
|
|
Change reinterpret_cast<uint64_t> to reinterpret_cast<uint64_t&> for
unique_objects generated and static code.
Change-Id: I8be5680063ce8a26b58c444e59cb325c4cf6e98b
|
|
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.
|
|
This fixes a bug where on Windows, windows.h would include
winsock.h before winsock2.h, causing numerous warnings.
Change-Id: I8eba1497385dcee6ebb201c74fe48268e6663b9c
|
|
Change-Id: Idf7a9d40278b796e16effa54e9b60668d275b8ec
|
|
Change-Id: I318e3759829f33441e57aafedec1e9ec06d658c4
|
|
|
|
Fixes GitHub Issue #6
|
|
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.
|
|
|
|
This reverts commit e260acfb96ea20945149ede6a250ef622ca7fd03.
The clang-format changes need to be postponed until just prior
to public release to facilitate MRs.
|
|
|
|
|
|
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
|
|
|
|
Remove all of the DebugReport stuff, this layer doesn't use it.
Update some corner cases to make sure objects are correctly restored.
|