| Age | Commit message (Collapse) | Author |
|
The param_checker layer had previously peformed a NULL
check on the pointer to a string array, but had not
performed a NULL check for the individual strings in the
array. This adds NULL checks for the individual strings.
Change-Id: Id4527f670086187e8cd1f146027bfdfd1e134b7b
|
|
Removes param checker sType and NULL check code that is now
auto-generated. Also remove empty functions and conditional
statements.
Change-Id: I8be8aab0bf3a8fa60219e1066a7d3d6c9d26ec05
|
|
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
|
|
When a copied descriptor update is valid, need to update pUpdateStructs
for the destination set. There are still some issues with how copied
descriptors are handled in draw_state (noted in TODO on line 3049) but
this fix addresses specific issue in GH83.
|
|
Validator currently requires each table entry to be on a single line. Fixing a couple of multi-line entries.
|
|
|
|
Change-Id: Iafd0f7dc3e4a911b165d3df1dadddf4d45fbef10
|
|
When rasterization is disabled, some pipeline state checks can
be skipped since they would not be used, including sample
counts and viewport/scissor counts.
Add rasterization state to graphics pipelines in the
test suite because it is required.
Change-Id: I88f76038c2acc0abd0565f1655ceeed128557f77
|
|
For the unique_objects and object_tracker layers, generate
system types (xcb, xlib, wayland, mir) in GetInstanceProcAddr.
The previous code would only generate code for one display
system, even if more than one was selected by the CMake config.
The code to return these proc addresses is conditionally compiled
with the corresponding USE_PLATFORM #ifdef, and the CMake config
can go ahead and set multiple USE_PLATFORM defines.
The result is that GIPA resolves proc address requests for these
functions and allows them to be hooked properly when the layers
are loaded.
Change-Id: I2fa38847863f0a1187dd17d882ef9d94f546527f
|
|
Change-Id: I71a03cd8043906074f6c3be98af0006e1aeaf5ee
|
|
Add code generated NULL checks for function pointers. This enables
parameter checking for the VkAllocationCallbacks struct, with
param_checker additions for the vkDestroy functions that
receive VkAllocationCallbacks parameters.
Change-Id: I9910c52026aa584bb013ee5015b5cb04b2d6ddcd
|
|
Create framebuffer node and include set of cmd buffers that reference that FB.
At the time when RenderPass is bound to cmd buffer, or when secondary cmd buffer
is created with framebuffer inheritence, store a reference from FB to cmd buffer.
When FB destroyed, set any cmd buffers referencing it as INVALID and store FB ref.
At submit time, if CB is INVALID, check for any destroyed FBs and report them.
|
|
Need to static cast NULL to VkFence in FENCE_NODE constructor.
|
|
When we codegen layers for android build, cmd line is long which was causing us to not customize build based on "Android" option on cmd line.
Handling "Android" as special case currently so android can easily be built from Win32 or linux.
Need to clean this code up at some point to make it easier to build various targets from different dev system types.
|
|
|
|
Change-Id: I5a89e81caf31b6cc5a5f0668a97fb05e8e6462aa
|
|
Change-Id: I8d5ecc7500beba3042a6b9147b2f3fd3055b3b1d
|
|
The fenceMap structures are never initialized, resulting in indeterminate
behavior including bad draw_state validation messages from the smoke
test. Added a default constructor to FENCE_MAP.
Change-Id: I27e6b48e485bbb1e8774e2d5789e1e8d1b48020b
|
|
Change-Id: Ia50157cd4f245971208a1baa28c823a62683dcd3
|
|
Change-Id: I1177e20b657ab00f41e9e4eb6f9ac997f7be459e
|
|
Also make the order match the standard meta layer.
Change-Id: Id250b9fe89b9d85d9e8ab6b803474f2c449fc6b1
|
|
|
|
From LoaderAndValidationLayers issue #84:
demos/tri.c implements VkAllocationCallbacks with aligned_alloc/_aligned_malloc, free/_aligned_free, and realloc.
I belive that is broken in many ways:
realloc does not return a pointer with the necessary alignment.
realloc(_aligned_malloc(...)) crashes.
_aligned_free(realloc(...)) crashes.
aligned_alloc requires that size must be a multiple of alignment, while Vulkan provides no such guarantee to these callbacks.
On POSIX-based implementations, aligned_alloc requires that alignment must be a multiple of sizeof(void *) as well as a power of two, while Vulkan merely requires it to be a power of two.
aligned_alloc(0), realloc(p, 0) might return non-NULL, while I think Vulkan requires NULL.
_aligned_malloc(0, a) is documented to invoke the invalid parameter handler (although I'm not sure it actually does in practice).
Implementing a valid allocator is quite non-trivial, so it may be best to just delete the allocator entirely from the demo.
(See also KhronosGroup/Vulkan-Docs#21 and KhronosGroup/Vulkan-Docs#103 for related discussions.)
Change-Id: I3ef3ba19c64127bd65a7dbe7b0b54de42e68ebb0
|
|
Apps using QUEUE_FAMILY_IGNORED might get bad validation errors.
Change-Id: I3c8b3723701b8b24e2e9cd81a20f7192bcef15a7
|
|
Change-Id: I4c34930338805ac964f0a4c70c2356977c1adabd
|
|
The draw_state layer was emitting an error if this API was
called outside a renderPass, which is indeed valid.
Change-Id: I712b381e7ea9d9e66e091ba7325ab8d884f56edb
|
|
Change-Id: I2c7fdb2349d50d06b0a875e4da0c9ab50d2249de
|
|
Change-Id: I61657dc28c7850075b787413955a6c880447a03d
|
|
Add parameter checks for vkCreateDevice and vkCreateInstance.
Includes a local fix for GitHub Vulkan-Docs issue #104 to
prevent false positives from being generated for the
pCreateInfo->pEnabledFeatures == NULL case.
Change-Id: I1f3642e7e18c8bfb32b0996b6e2e57a5f9d8e011
|
|
Add param_checker support for validating struct members. Messages
are logged for the following conditions, based on conditions
specified in vk.xml:
- A pointer is NULL and is not marked as optional in the XML
- An array is NULL and is not marked as optional in the XML, unless
its count is 0
- An array count is 0 and is not marked as optional in the XML
- A structure's sType value does not match the value specified
in the XML
Addresses GL105, GL109, GH82
Change-Id: I7063fe2582b30fdfc0006fe945a0f9c84a2aa66a
|
|
Code was being generated for param_checker that looked like:
validate_pointer(pAllocInfo);
validate_array(pAllocInfo->count, array);
Where validate_array could dereference a NULL pointer. The code
generator was updated to insert NULL checks for this case:
validate_pointer(pAllocInfo);
if (pAllocInfo != NULL) {
validate_array(pAllocInfo->count, array);
}
Change-Id: I1eda66530dbff2e95d604a20d122179be172bedf
|
|
Add NULL pointer checks for vkFreeCommandBuffers.
Change-Id: I7bef6a9d55fda6607b483c873485156b8c8148a1
|
|
Properly handle CmdBindDescriptorSets being called multiple times
consecutively. DynamicOffsets being overwritten on subsequent calls,
resulting in a crash when the array was indexed out-of-bounds.
|
|
Currently we assume that the layout must have been set for a subresource.
While this is true it may be set globally instead of on that specific
subresource directly causing the old assert to throw.
|
|
|
|
|
|
Not validating this upfront meant that users got really weird errors
about mismatches between their FS outputs and color attachments. Now
they should hit the real problem first.
Fixes GH #75
V2: Run through git-clang-format.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Remove unused var.
|
|
|
|
Change-Id: I50e7a2778bd14ff4e0b8fc3f2fcb201faefce548
|
|
Change-Id: I7169419113c74fc7e1e16c827f6553cf86abe989
|
|
Change-Id: Ib527e646aabbd0aecbadf9071ca9e271a8729735
|
|
Mem_tracker was ignoring this setting and emitting invalid error messages.
Change-Id: Id26a5e0bdf3f5c907356a384b9febbae1e885c27
|
|
Change-Id: I08941af0153c123d5f552bae8dc02023dc4f9965
|
|
Make GetInstanceProcAddr check layers for device extensions.
Change-Id: Ib23c5d42d11be415e9a6acd3b8427d0e474087a5
|
|
Miscellaneous fixes for DrawState layer
|
|
|
|
|