aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-09-27layers: Convert RENDER_PASS_NODE::pCreateInfo to use safe structChris Forbes
Gets rid of a memory leak, and simplifies the code. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Don't accidentally copy safe_VkFramebufferCreateInfoChris Forbes
This isn't cheap. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Don't add VK_SUBPASS_EXTERNAL edges to subpass DAG.Chris Forbes
We don't use them, and handling them safely complicates other code that works with the DAG. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Trim out some more old MT renderpass junkChris Forbes
- RENDER_PASS_NODE::attachments[i].attachment was always i. - This whole structure is noise; we can use the VkAttachmentDescription directly. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Remove unnecessary constructors from new _STATE classesChris Forbes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Tweak naming of enums moved from SwapChain to CVChris Forbes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Move image-not-acquired etc from swapchain to core validationChris Forbes
Now that Core Validation tracks the acquisition state of every swapchain image, we can do this. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Add tracking of acquired state to Core ValidationChris Forbes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Add IMAGE_NODE::acquired flagChris Forbes
This is necessary for moving the image ownership stuff across from swapchain Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-27layers: Move ACQUIRE_NO_SYNC check from Swapchain to Core ValidationChris Forbes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-26loader: gh971 EnumPhysDev return VK_INCOMPLETEMark Young
vkEnumeratePhysicalDevices should return VK_INCOMPLETE if the following conditions are met: a) pPhysicalDeviceCount < number of physical devices available b) pPhysicalDevices != NULL The code was actually in place, but was not getting hit. Change-Id: I725fec5e57239f990590d9e447bb057ebc3502a1
2016-09-26build: Enable parallel windows buildMike Stroyan
2016-09-26build: Make windows build of demos parallel build safeMike Stroyan
Use direct output to SPIRV file names to prevent collisions.
2016-09-26build: Fix parallel build of layersMike Stroyan
Change layer dependencies to prevent collisions of scripts creating headers. Use dependency on one custom target for each group of headers built by a custom command. The layers json targets need to depend on the layers targets. They expect to copy into a directory created by those targets. Make dependency of vk_safe_struct.cpp indirect through generate_vk_layer_helpers. That will wait for a single build of the generated files.
2016-09-26build: Fix ImageMagick_Magick++ searchMike Stroyan
One cmake test was looking at ImageMagick_MagickWand_INCLUDE_DIR instead of ImageMagick_Magick++_INCLUDE_DIR
2016-09-26build: UNSET cache variables for FIND_IMAGEMAGICK_APIMike Stroyan
The way that the ImageMagick component search calls find_path multiple times with the same variable but different names does not expect old cache values in the variable.
2016-09-26layers: Remove spurious using BASE_NODE::*.Chris Forbes
Inheritance is all public (except for FRAMEBUFFER_NODE, which ought to have been), and there's no template inheritance involved, so these didn't do anything interesting. Fix FRAMEBUFFER_NODE to publicly inherit BASE_NODE, and drop the noise everywhere. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-26layers: Get rid of some junk in RENDER_PASS_NODE::ctorChris Forbes
Many moons ago, ShaderChecker used this state. Now, it digs directly in the CreateInfo, so there are no clients. Nuke it. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-26layers: Explicitly delete IMAGE_NODE, BUFFER_NODE copy constructorsChris Forbes
Previously we defined copy constructors that would almost certainly lead to bugs if these objects were copied (they copied the atomic values, etc). The layer doesn't copy these, just disallow it. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-23layers: Fix VerifyCopyUpdateContents on combined image sampler descriptorsAlex Smith
A missing break at the end of the ImageSampler case results in falling through to the Image case, leading to spurious validation errors such as: vkUpdateDescriptorsSets() failed copy update from Descriptor Set 0x108 to Descriptor Set 0x137 with error: Attempted copy update to image descriptor failed due to: Invalid VkImageView: 0x100000000
2016-09-23layers: Prevent reading uninitialized "count" when validating array parametersJózef Kucia
2016-09-23android: Add Android and C++ support to a couple filesCody Northrop
These are needed downstream in VulkanTools for Android support.
2016-09-23demos: Enable arm64 build of SmokeCody Northrop
2016-09-23demos: Update Smoke permissions for trace/replayCody Northrop
2016-09-23demos: Fix Smoke build for AndroidCody Northrop
It doesn't appear that this ever worked.
2016-09-23demos: Update gradle properties for smokeCody Northrop
2016-09-23demos: Update smoke build script to be automatableCody Northrop
2016-09-23toolchain: Use multiple processes to build glslangCody Northrop
2016-09-22layers: Distinguish never-bound from un-bound memory casesTobin Ehlis
Fixes #964 Added special MEMORY_UNBOUND handle (0xF..FE) that indicates that memory bound to an object has been freed. When attempting to bind memory or checking for bound memory, distinguish the never-bound case from the memory un-bound case. For sparse binding case allow for memory to be re-bound. Update tests to account for new error messages. There's a sliver of exposure here if an actual memory handle is MEMORY_UNBOUND. We could remove that exposure by never having unique_objects return MEMORY_UNBOUND as a handle. I believe the exposure is small enough that we don't need to do that, but am open to other opinions.
2016-09-22demos: Change cube to use FIFO present modeTony Barbour
And throttle using fences Change-Id: I13cd622f9a401fdb44bf7b74343589b70e340b77
2016-09-22demos: Update Android documentationCody Northrop
2016-09-22demos: Give Cube and Tri distinct app namesCody Northrop
2016-09-22demos: Clean up APK creation for cube and triCody Northrop
Instead of moving manifest files, run the following commands: android update project -s -p . -t "android-23" ant -buildfile cube debug ant -buildfile tri debug And the APKs can coexist: ./cube/bin/NativeActivity-debug.apk ./tri/bin/NativeActivity-debug.apk
2016-09-22layers: Clean up no memory bound checksTobin Ehlis
When memory is freed make sure to clear bindings in associated objects. Also clean up reporting of no memory bound errors. Old assumption was that no memory had every been bound, but it's also possible to hit such errors if the bound memory was freed prior to operation of interest. In descriptor error cases where no memory is bound, add a final error string as clarification since descriptor errors are built up of multiple strings with details from each function call in the tree.
2016-09-22layers: Verify memory is bound to images used to update descriptorsTobin Ehlis
Fixes #663 For vkUpdateDescriptorSets() calls that include an image, verify that memory is bound to the image.
2016-09-22layers: A few minor clean-ups from code reviewTobin Ehlis
Better use of auto and killing some unneeded code.
2016-09-22layers: Add in-use check at DestroyImage() timeTobin Ehlis
Flag error if an in-use image is destroyed. Also clean up a couple minor issues related to binding objects to command buffer.
2016-09-22layers: Add in-use check for renderPassTobin Ehlis
At DestroyRenderPass() time verify that renderPass is not in-use.
2016-09-22layer: Add in-use validation for imageViewTobin Ehlis
Bind imageView from a descriptor to the command buffer at CmdBindDescriptorSets time and check for an in-use imageView at DestroyImageView time. Also use new AddCommandBufferBindingImageView() helper to bind children of framebuffer in AddFrameBufferBinding().
2016-09-22layers: Add in-use check for imageViewTobin Ehlis
Add DestroyImageView time, make sure imageView is not in use.
2016-09-22layers: Add binding for framebuffer childrenTobin Ehlis
When BeginCommandBuffer and CmdBeginRenderPass are called, need to bind not only the framebuffer, but all of the framebuffer's children objects to the command buffer. This includes the imageViews that are in the attachments as well as their children and the renderpass. Added this binding and included IMAGE_VIEW_STATE* in framebuffer attachment struct for simplicity when creating binding.
2016-09-22layers: Add support code to handle in_use for missing objectsTobin Ehlis
Add case block to in-use Increment/Decrement functions to handle the missing object types that may be bound to a command buffer. The actual bindings for these missing types will be added in a future commit. Here are the types that were added: VkBufferView VkImageView VkDescriptorPool VkCommandPool VkFramebuffer VkRenderPass VkDeviceMemory Also added new error enums for all of these type except RENDERPASS which already had an appropriate error enum. Unify object BASE_NODE look-up for removeCommandBufferBinding() and DecrementBoundResources() to use common GetStateStructPtrFromObject() function. Finally, had to update the state-wrapping class for DescriptorPool, DeviceMemory and RenderPass to derive from BASE_NODE so that in_use can be tracked.
2016-09-22layers: Update BufferView state trackingTobin Ehlis
Create BUFFER_VIEW_STATE class to hold VkBufferViewCreateInfo and update related state tracking. This class derives from BASE_NODE in preparation for tracking in_use for BufferViews consistent to other object in_use tracking.
2016-09-22layers: Update ImageView state trackingTobin Ehlis
Create IMAGE_VIEW_STATE class to hold VkImageViewCreateInfo and update related state tracking. This class derives from BASE_NODE in preparation for tracking in_use for ImageViews consistent to other object in_use tracking.
2016-09-22layers: Clean up in-use decrement for bound objectsTobin Ehlis
Decrement in-use in a single location via ptr to BASE_NODE for each bound object.
2016-09-22layers: Clean up in-use increment for bound objectsTobin Ehlis
Simplify code with a single error call and in_use increment based on common base class.
2016-09-22layers: Fix tracking of WSI fence retirementChris Forbes
Previously we'd note that the fence wasn't submitted to a queue, and so never call RetireWorkOnQueue, which is the only thing that marked the fence as retired. In the WSI fence case, we still aren't doing any tracking of completion of the WSI operation (we should! image ownership is easily fouled up!) but we can at least retire the fence. Fixes #954. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-22layers: Extract RetireFence helper from WaitForFences/GetFenceStatus.Chris Forbes
This does the same thing in both places. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-09-20demos: Use ownership barriers for separate queues in cubeTony Barbour
Change-Id: Ia3456405add6ea35b9cc774b2247e6f7d9a80768
2016-09-20demos: Use queue search from spec exampleTony Barbour
To favor finding a queue that supports both graphics and present Change-Id: I0223b0973b4244c006ade31c6515f149f9696ff8