| Age | Commit message (Collapse) | Author |
|
Gets rid of a memory leak, and simplifies the code.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
This isn't cheap.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
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>
|
|
- 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>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Now that Core Validation tracks the acquisition state of every swapchain
image, we can do this.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
This is necessary for moving the image ownership stuff across from
swapchain
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
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
|
|
|
|
Use direct output to SPIRV file names to prevent collisions.
|
|
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.
|
|
One cmake test was looking at ImageMagick_MagickWand_INCLUDE_DIR
instead of ImageMagick_Magick++_INCLUDE_DIR
|
|
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.
|
|
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>
|
|
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>
|
|
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>
|
|
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
|
|
|
|
These are needed downstream in VulkanTools for Android support.
|
|
|
|
|
|
It doesn't appear that this ever worked.
|
|
|
|
|
|
|
|
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.
|
|
And throttle using fences
Change-Id: I13cd622f9a401fdb44bf7b74343589b70e340b77
|
|
|
|
|
|
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
|
|
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.
|
|
Fixes #663
For vkUpdateDescriptorSets() calls that include an image, verify that memory is bound to the image.
|
|
Better use of auto and killing some unneeded code.
|
|
Flag error if an in-use image is destroyed.
Also clean up a couple minor issues related to binding objects to command buffer.
|
|
At DestroyRenderPass() time verify that renderPass is not in-use.
|
|
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().
|
|
Add DestroyImageView time, make sure imageView is not in use.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
Decrement in-use in a single location via ptr to BASE_NODE for each bound object.
|
|
Simplify code with a single error call and in_use increment based on common
base class.
|
|
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>
|
|
This does the same thing in both places.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Change-Id: Ia3456405add6ea35b9cc774b2247e6f7d9a80768
|
|
To favor finding a queue that supports both graphics and present
Change-Id: I0223b0973b4244c006ade31c6515f149f9696ff8
|