| Age | Commit message (Collapse) | Author |
|
Add parameter_validation namespace for utility functions. Namespace will
be extended to include core layer functions in a future update.
Change-Id: I0929f5caacbf3e1b4509f051ea020566cce44e3e
|
|
These hit 16/18 cases for INVALID_IMAGE_LAYOUT enum in core_validation.
The other 2 cases were already hit by object_tracker and another test.
|
|
Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.
|
|
Per commit 5bf16c33b9c1f38fc467d94716f276620a265327, extension check is
bypassed in GetInstanceProcAddr for VK_KHR_swapchain functions.
|
|
Move handling of interface functions in
core_validation::GetInstanceProcAddr to v0's vkGetInstanceProcAddr.
|
|
Split command intercepting out to intercept_core_instance_command. Assert
that instance is valid if intercept_core_instance_command returns nullptr.
|
|
It returns the function pointers for all intercepted VK_KHR_swapchain
commands. Call intercept_khr_swapchain_command from GetDeviceProcAddr.
|
|
It returns the function pointers for all intercepted core device commands.
Call intercept_core_device_command from GetDeviceProcAddr. Assert that
device is valid in GetDeviceProcAddr.
|
|
Call down the next layer unless pLayerName is core_validation.
|
|
Replace cv_global_layers and cv_device_layers with global_layer. There is
no plan to define more than one layer in the same namespace.
|
|
Drop VK_LAYER_EXPORT as well.
|
|
Put all layer fucntions/data into core_validation namespace. I had to add
some wrappers to make everything work.
|
|
Move them toward the end of the file.
|
|
We failed to inherit the proper items in the secondary cmd buffer
in the core_validation layer when the
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT bit was set.
Change-Id: I01579d889dde8e0d331ed5a65eb48ce7185d3d82
|
|
We need to validate the flags before calling down into the ICD. At least
one ICD (Anvil) asserts if it sees bad flags.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Change-Id: If113a338674655b339e76d3bb14e50be3796f168
|
|
Change-Id: If937c4c5aca0dc274aa67a9b52b99909723f082c
|
|
Return codes weren't plumbed through, failures caused layer crashes.
Change-Id: If258d449a420d33b6c72dc5c289d77c7215f2c2f
|
|
Change-Id: I6aad451a44cf2053b078eca98adca6b72acbd0a0
|
|
Change-Id: I6f759890749fb17226e00d28ab8391dc7cc0e80c
|
|
Change-Id: I3244f8da58a7f150ebfa772a7c131422f75d0d8b
|
|
Change-Id: Ic1ab57e5b4192ed98df8c7e6fc8c225aff631fd8
|
|
|
|
Add proper constructors for IMAGE_NODE and BUFFER_NODE classes and
correctly initialize all of their data members.
Change-Id: I6c9d4a3ba6f3ef8e569de55793de9d6f7fd406b1
|
|
Change VkFlags and enumeration debug report levels from WARNING to
ERROR.
Change-Id: I06bf454c77dee2cd46db29cd1ffcb67febfba666
|
|
Add missing parameter validation for vkCmdSetStencil* functions.
Change-Id: Ib2d2527341815412bc441427ba1dbf6d3826f3c6
|
|
Perform pipeline sample and attachment count validation at draw
time instead of vkCmdNextSubpass() time. Also validate that
an active renderpass exists.
Change-Id: I912947287eef29d532519220750c3a93a3554565
|
|
Clear the pools list of sets when pool is reset.
Also make sure to remove sets from pool as they are freed.
Added a related fix to testing to correctly free descriptorSets
in DescriptorSetCompatibility test.
|
|
When a DescriptorSet pool is Destroyed or Reset we destroy all underlying
descriptorSets, but we weren't invalidating cmd buffers bound to those sets
in these cases. This adds a common function, freeDescriptorSet(), to make
sure anytime a descriptor set is destroyed, any bound cmd buffers get
invalidated and the set is removed from setMap and then destroyed.
|
|
When we deleted DescriptorSet* objects we weren't removing them
from the setMap.
|
|
This was in the DescriptorSet class, but really belonged in the Layer.
There was also a bug where it did not correctly handle the case of an
initial offset that oversteps the size of the first binding being updated.
That is legal according to the spec so added code to handle that case by
walking the bindings until we get to the actual binding on which the first
update will occur.
|
|
Kill the ptr to safe_VkDescriptorSetLayoutBinding in DescriptorSetLayout
class. This saves us the "new" and the need for a custom destructor.
Couldn't do this initially but I've since added copy constructors
to all of the safe_* struct types.
|
|
No longer needed with migration to DescriptorSet class.
|
|
|
|
All of the functionality that I thought I would need this for is contained
in the ValidateDrawState() function.
|
|
I originally added this thinking it would be useful but currently
unused and not correctly tracked so just killing it.
|
|
|
|
Migrate a number of unneccessary .at() calls to just use [] operator.
Also replace push_back() calls at descriptor creation time with emplace_back().
|
|
Migrated setMap to just use DescriptorSet class natively. SET_NODE was
just wrapping that class but that's not necessary so killing extra indirection.
|
|
This change pulls all of the DescriptorSet code out of core_validation.cpp and into
its own files/classes in descriptor_set.h/cpp.
See header file for complete class documentation.
These changes pass tri/cube/smoketest --validate.
All related layer validation tests are also updated and passing.
Finally, I ran it through mustpass CTS and did not hit any issues related to these changes.
These changes not only update the descriptor interface but fix some known lingering
bugs with how descriptor updates occurred. This includes now correctly handling
updates that cross binding boundaries and updates that write a subset of a binding.
Going forward this is a general outline for how we would like to evolve core_validation.
That is, we'd like to move the functionality of the checks into reasonable classes and
just have core_validation call into those classes to do the majority of the work.
|
|
|
|
|
|
|
|
This fixes a long-standing (day-1) defect in the swapchain layer (perhaps
cloned from another layer at the time?). Several unordered maps are used to
keep track of things. The layer was using the [] operator for both adding a
new entry to a map, and for looking up entries that should already be in a map.
This latter usage is where the bug is. If a handle is passed in that hasn't
been seen before, the use of the [] operator will add a new entry to the
map--one that hasn't been initialized. The new EnableWsiBeforeUse test caused
a crash in the swapchain layer when it used VK_NULL_HANDLE.
The new code uses the find() element-lookup function of the unordere map class,
and compares this to end(). If the found value is equal to end() (i.e. it
currently isn't in the map), NULL is used for the pointer (the desired behavior
in the swapchain layer).
Two new macros were used in order to keep the code minimal and consistent in
its use of find()/end().
|
|
The swapchain layer was attempting to test if the application gave a value for
a *Count variable (e.g. pSurfaceFormatCount for the
vkGetPhysicalDeviceSurfaceFormatsKHR() function) that was larger than what that
function returned previously (i.e. when the non-count variable was NULL).
However, the test was made after calling down the call-chain, which may modify
the value given by the application. This test is now made before calling down
the chain.
In addition, a new test is made that tries to ensure that the application did
call the function with the non-Count variable equal to NULL **before** calling
the function with a non-NULL non-Count variable.
|
|
Properties->Details on vulkan-1.dll will display valid
version and build information
Address:
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/473
|
|
Change-Id: Ia59e796dd6b7dd6acebb1e3e6b7dbbcbb4b23fed
|
|
Currently for the threading utils and parameter checker generator,
the script is hard-coded to write to the current directory. Add
an option to add a custom output directory.
Change-Id: Id1b72a934ead74d2f6c01ad4e581af83067d3f49
|
|
Original commit message:
Add some missing spaces where needed, hidden by string concatenation
|