aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-05-09layers: Add parameter_validation namespaceDustin Graves
Add parameter_validation namespace for utility functions. Namespace will be extended to include core layer functions in a future update. Change-Id: I0929f5caacbf3e1b4509f051ea020566cce44e3e
2016-05-09tests: Add InvalidImageLayout testsTobin Ehlis
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.
2016-05-09core_validation: avoid invalid GIPA call in vkCreateDeviceChia-I Wu
Save VkInstance in layer_data so that we query vkCreateDevice with a valid instance.
2016-05-09core_validation: handle device commands in GetInstanceProcAddrChia-I Wu
Per commit 5bf16c33b9c1f38fc467d94716f276620a265327, extension check is bypassed in GetInstanceProcAddr for VK_KHR_swapchain functions.
2016-05-09core_validation: no interface functions in layer functionsChia-I Wu
Move handling of interface functions in core_validation::GetInstanceProcAddr to v0's vkGetInstanceProcAddr.
2016-05-09core_validation: refactor GetInstanceProcAddrChia-I Wu
Split command intercepting out to intercept_core_instance_command. Assert that instance is valid if intercept_core_instance_command returns nullptr.
2016-05-09core_validation: add intercept_khr_swapchain_commandChia-I Wu
It returns the function pointers for all intercepted VK_KHR_swapchain commands. Call intercept_khr_swapchain_command from GetDeviceProcAddr.
2016-05-09core_validation: add intercept_core_device_commandChia-I Wu
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.
2016-05-09core_validation: improve EnumerateDeviceExtensionPropertiesChia-I Wu
Call down the next layer unless pLayerName is core_validation.
2016-05-09core_validation: add core_validation::global_layerChia-I Wu
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.
2016-05-09core_validation: drop vk prefix for layer functionsChia-I Wu
Drop VK_LAYER_EXPORT as well.
2016-05-09core_validation: put layer functions into a namespaceChia-I Wu
Put all layer fucntions/data into core_validation namespace. I had to add some wrappers to make everything work.
2016-05-09core_validation: move vkEnumerate*Properties aroundChia-I Wu
Move them toward the end of the file.
2016-05-09layers: Properly set secondary cmd buffer inherited items.Mark Young
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
2016-05-09layers: Fix usage flags validation of CreateImageViewChris Forbes
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>
2016-05-09layers: Fix logical negate to bitwise negate in access flags checkingChris Forbes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-05-06layers: Correct object_tracker section in validation details docMark Lobodzinski
Change-Id: If113a338674655b339e76d3bb14e50be3796f168
2016-05-06layers: Fix object_tracker warnings in Android and Win32 buildsMark Lobodzinski
Change-Id: If937c4c5aca0dc274aa67a9b52b99909723f082c
2016-05-06layers: Fix object_tracker handling of pool-related validation failuresMark Lobodzinski
Return codes weren't plumbed through, failures caused layer crashes. Change-Id: If258d449a420d33b6c72dc5c289d77c7215f2c2f
2016-05-06tests: Round out object-tracker layer validation testsMark Lobodzinski
Change-Id: I6aad451a44cf2053b078eca98adca6b72acbd0a0
2016-05-06layers: Correct and/or remove obsolete object_tracker error enumsMark Lobodzinski
Change-Id: I6f759890749fb17226e00d28ab8391dc7cc0e80c
2016-05-06layers: ObjectTracker dead code eliminationMark Lobodzinski
Change-Id: I3244f8da58a7f150ebfa772a7c131422f75d0d8b
2016-05-06layers: Remove 'using namespace std' in object_trackerMark Lobodzinski
Change-Id: Ic1ab57e5b4192ed98df8c7e6fc8c225aff631fd8
2016-05-06doc: allow layers to ignore pAllocatorChia-I Wu
2016-05-06layers: GH494 Add constructors for IMAGE and BUFFER nodesTobin Ehlis
Add proper constructors for IMAGE_NODE and BUFFER_NODE classes and correctly initialize all of their data members. Change-Id: I6c9d4a3ba6f3ef8e569de55793de9d6f7fd406b1
2016-05-06layers: Fix param check debug report levelDustin Graves
Change VkFlags and enumeration debug report levels from WARNING to ERROR. Change-Id: I06bf454c77dee2cd46db29cd1ffcb67febfba666
2016-05-06layers: Add missing vkCmdSetStencil param checksDustin Graves
Add missing parameter validation for vkCmdSetStencil* functions. Change-Id: Ib2d2527341815412bc441427ba1dbf6d3826f3c6
2016-05-05layers: Fix core_validation issues GH103 and GH240Mark Young
Perform pipeline sample and attachment count validation at draw time instead of vkCmdNextSubpass() time. Also validate that an active renderpass exists. Change-Id: I912947287eef29d532519220750c3a93a3554565
2016-05-05layers: Further descriptorSet cleanup fixesTobin Ehlis
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.
2016-05-05layers: Correctly invalidate cmd buffers when descriptor pool cleared/freedTobin Ehlis
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.
2016-05-05layers: Fix descriptorSet cleanup bugsTobin Ehlis
When we deleted DescriptorSet* objects we weren't removing them from the setMap.
2016-05-05layers: Migrate VerifyUpdateConsistency to DescriptorSetLayout classTobin Ehlis
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.
2016-05-05layers: Store layout bindings_ by value instead of ptrTobin Ehlis
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.
2016-05-05layers: Kill unused shadowUpdateNode()Tobin Ehlis
No longer needed with migration to DescriptorSet class.
2016-05-05layers: Fix stale comments in core_validationTobin Ehlis
2016-05-05layers: Remove unused IsUpdated(uint32_t) from DescriptorSet classTobin Ehlis
All of the functionality that I thought I would need this for is contained in the ValidateDrawState() function.
2016-05-05layers: Removed unused full_update_ from DescriptorSet classTobin Ehlis
I originally added this thinking it would be useful but currently unused and not correctly tracked so just killing it.
2016-05-05layers: Remove use of map at() function from descriptor_set classTobin Ehlis
2016-05-05layers: Clean up access to descriptors_ vectorTobin Ehlis
Migrate a number of unneccessary .at() calls to just use [] operator. Also replace push_back() calls at descriptor creation time with emplace_back().
2016-05-05layers: Kill SET_NODE construct and just use DescriptorSet classTobin Ehlis
Migrated setMap to just use DescriptorSet class natively. SET_NODE was just wrapping that class but that's not necessary so killing extra indirection.
2016-05-05layers: Rearchitect Descriptor Set validation codeTobin Ehlis
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.
2016-05-05layers: Clear cmdbufs and prior fences after processed in decrement.Michael Lentine
2016-05-05docs: Add contrib info and linkKarl Schultz
2016-05-05docs: Elevate contrib info, add linkKarl Schultz
2016-05-05layers: #471 swapchin layer to use find() for map lookupsIan Elliott
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().
2016-05-05layers: Fix "count" tests in swapchain layer.Ian Elliott
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.
2016-05-05loader: added Windows resource file for vulkan-1.dllDavid Pinedo
Properties->Details on vulkan-1.dll will display valid version and build information Address: https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/473
2016-05-05layers: Skip actual call on validation error in vkCmdBlitImageTony Barbour
Change-Id: Ia59e796dd6b7dd6acebb1e3e6b7dbbcbb4b23fed
2016-05-05Add an output directory option to genvk.py.Jamie Madill
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
2016-05-05layers: #486 Add some missing spaces where needed ...baldurk
Original commit message: Add some missing spaces where needed, hidden by string concatenation