Chris Forbes [Thu, 29 Sep 2016 01:35:09 +0000 (14:35 +1300)]
layers: Wire up INCONSISTENT_ALLOCATOR object tracker error
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Thu, 29 Sep 2016 00:51:10 +0000 (13:51 +1300)]
layers: Track whether any object was created with a custom allocator
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 07:01:14 +0000 (20:01 +1300)]
layers: Hold device dispatch table by value too
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 06:54:31 +0000 (19:54 +1300)]
layers: Hold instane dispatch table by value
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 06:35:49 +0000 (19:35 +1300)]
layers: Rename my_data->instance_data
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 06:14:25 +0000 (19:14 +1300)]
layers: Split CV device and instance data
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 05:06:20 +0000 (18:06 +1300)]
layers: Move queue_family_properties into PHYSICAL_DEVICE_STATE
This isn't instance-wide.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 04:57:18 +0000 (17:57 +1300)]
layers: Dont pretend this is phy_dev_data in
GetPhysicalDeviceQueueFamilyProperties
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 04:55:48 +0000 (17:55 +1300)]
layers: Get rid of remaining use of single physical_device_state in
instance
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 04:44:52 +0000 (17:44 +1300)]
layers: Store ptr from device data to instance data
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 04:42:38 +0000 (17:42 +1300)]
layers: Pull enabled_features out into layer_data, rename for clarity
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 04:36:32 +0000 (17:36 +1300)]
layers: Stop pretending phys devices have their own layer_data
They don't -- the dispatch key is the same as the instance.
EnumeratePhysicalDevices just made a mess if there were multiple
physical devices in the system.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 04:21:20 +0000 (17:21 +1300)]
layers: Rename my_data -> instance_data in EnumeratePhysicalDevices
Makes it clearer what this is.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 04:18:42 +0000 (17:18 +1300)]
layers: Use member initialization for CV state
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 03:28:53 +0000 (16:28 +1300)]
layers: Delete some dead structs in CV
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 02:28:49 +0000 (15:28 +1300)]
layers: Get rid of duplication of logic op test between PV and CV
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 3 Oct 2016 01:12:59 +0000 (14:12 +1300)]
layers: Use safe_VkSwapchainCreateInfoKHR in CV
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Karl Schultz [Mon, 3 Oct 2016 17:15:26 +0000 (11:15 -0600)]
layers: Clean up layer settings file comments.
Normalize and clean up internal documentation for the
vk_layer_settings.txt file.
No logic or behavior changes.
Change-Id: Iceb45efb50bcb670b099027980244cc1e2358643
Raul Tambre [Sat, 1 Oct 2016 10:20:32 +0000 (13:20 +0300)]
Fix CMake modules not being added correctly
This allows this project to be more easily included as a
sub-project of another project.
Change-Id: I098f26707f17d20353c91a4adb7bfb83d90a99fa
Karl Schultz [Fri, 30 Sep 2016 19:32:16 +0000 (13:32 -0600)]
build: gh52-CMake changes to enable make install on Linux
See BUILD.md for details.
Change-Id: Ide1f635a57b57af384d9d1baac20c2256629f812
Maciej Jesionowski [Fri, 30 Sep 2016 13:14:52 +0000 (15:14 +0200)]
loader: gh971 Fix double free on physical devices
Change-Id: I97428dd579217340586809577eb64277ed4bb2cd
Mark Lobodzinski [Thu, 29 Sep 2016 21:01:28 +0000 (15:01 -0600)]
layers: Add VK_NV_external_memory_win32 ext to PV
Added GetMemoryWin32HandleNV function for this extension to the
parameter validation layer.
Change-Id: Ib1b870ab2b0433a19fcdca6bb6e0bffbeda74a13
Mark Lobodzinski [Wed, 28 Sep 2016 20:04:29 +0000 (14:04 -0600)]
layers: Add VK_NV_external_memory_caps ext to PV
Added GetPhysicalDeviceExternalImageFormatPropertiesNV API for the
VK_NV_external_memory_capabilities extension to parameter_validation.
Change-Id: I5011fcf33efffc8c432cde03e2ae4957766488b4
Mark Lobodzinski [Wed, 28 Sep 2016 19:51:51 +0000 (13:51 -0600)]
layers: Add debug marker extension support to PV
Added parameter validation for Debug Marker functions SetObjectTag,
SetObjectName, Begin, and Insert.
Change-Id: I4e95b350a822fe296cbd750ea228a7d98e29241a
Karl Schultz [Thu, 29 Sep 2016 22:11:35 +0000 (16:11 -0600)]
layers: gh965 Reading undefined memory is now a warning
Change-Id: I03d021784649f4dbdced4dc34bcf39e7c7a0cfac
Lenny Komow [Thu, 29 Sep 2016 20:16:59 +0000 (14:16 -0600)]
header: Move vulkan.hpp to version 1.0.28
Mark Lobodzinski [Thu, 29 Sep 2016 21:35:07 +0000 (15:35 -0600)]
layers: Updated vulkan.py for changed extension def
Change-Id: I9d52e7a3104d21fdd355292d6f17076cd719d2e4
Mark Lobodzinski [Tue, 27 Sep 2016 19:08:15 +0000 (13:08 -0600)]
layers: Fix thread/PV codegen for new notation
Embedded parameter length variables are now specified in vk.xml as
being separated by '::' instead of '->'.
Change-Id: I53befe20912d7d7ee628f6819dbd013bcd2a9414
Mark Lobodzinski [Tue, 27 Sep 2016 14:59:49 +0000 (08:59 -0600)]
layers: Whitelisted new extensions for 1.0.28
Change-Id: Ife1621716ec9593de3ca528d071b707515acb8c2
Mark Lobodzinski [Tue, 27 Sep 2016 14:27:59 +0000 (08:27 -0600)]
loader: Move SOVERSION to version 1.0.28
Change-Id: I4e011b3b37f805fde1100cf519042ea242c680d0
Mark Lobodzinski [Tue, 27 Sep 2016 14:27:08 +0000 (08:27 -0600)]
layers: Move Windows json files to version 1.0.28
s Please enter the commit message for your changes. Lines starting
Change-Id: I292aba8b4b4df46d60e3c8d4752e5fb9ccee1217
Mark Lobodzinski [Tue, 27 Sep 2016 14:26:40 +0000 (08:26 -0600)]
layers: Move Linux json files to version 1.0.28
Change-Id: I51e3624312bd83a0b6f440638088ef362d7f7ee5
Mark Lobodzinski [Tue, 27 Sep 2016 14:25:27 +0000 (08:25 -0600)]
header: Move vk.xml to version 1.0.28
Change-Id: If860d6d0df348fc758f3b59429523cd5ee2db95f
Mark Lobodzinski [Thu, 29 Sep 2016 16:47:27 +0000 (10:47 -0600)]
header: Move vk_platform.h to version 1.0.28
Change-Id: I3bc47016e3be0c9870f05254b02718099d990eaf
Mark Lobodzinski [Tue, 27 Sep 2016 14:23:59 +0000 (08:23 -0600)]
header: Move vulkan.h to version 1.0.28
Change-Id: I346877d18a2600e114ebee844fb5b5055c0ea5c5
Chris Forbes [Wed, 28 Sep 2016 02:19:39 +0000 (15:19 +1300)]
layers: Complain about subpass mismatch between CB and pipeline
Fixes #933.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 27 Sep 2016 04:14:46 +0000 (17:14 +1300)]
layers: Use cmd buffer as src object in callback
One less TODO.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Cody Northrop [Thu, 29 Sep 2016 19:55:08 +0000 (13:55 -0600)]
demos: Remove tri from Android build
Tony Barbour [Thu, 29 Sep 2016 17:36:49 +0000 (11:36 -0600)]
demos: Set srcAccessMask correctly for present barriers
Change-Id: I58cd90304ad4bd4e3c5c1622002bbc46fcf66cd9
Mark Lobodzinski [Thu, 29 Sep 2016 16:26:36 +0000 (10:26 -0600)]
cmake: Fix whitespace
Change-Id: Ia2d35a87c14c0c73bc26588694b398e04a191203
Karl Schultz [Wed, 28 Sep 2016 00:38:02 +0000 (18:38 -0600)]
build: gh27 Allow builds in paths with spaces
Add quotes around shell var expansions in the update_external_sources scripts.
For Windows, remove the cmake directives to add a linker option for the DEF
files. These were redundant with the DEF files getting added via the
cmake add_library() directive. They were also causing difficult-to-fix
problems with paths that have spaces in them.
Change-Id: I741bac31bbf27deae59031b6aa916c6ab48383a6
Tobin Ehlis [Wed, 28 Sep 2016 20:25:44 +0000 (14:25 -0600)]
layers: Added flags for in_use checks
Added object_in_use flag to disable all in_use checks.
Added destroy_buffer_view flag to disable validation checks at
DestroyBufferView() time.
Tobin Ehlis [Wed, 28 Sep 2016 20:01:13 +0000 (14:01 -0600)]
layers: Update DestroyBufferView to use Pre/Post paradigm
Add PreCallValidate* and PostCallRecord* functions to DestroyBufferView
according to long-term core_validation architecture plans.
Tobin Ehlis [Wed, 28 Sep 2016 13:12:28 +0000 (07:12 -0600)]
layers: Add binding between cmd buffer and bufferView
For a texel descriptor update, add binding between bufferView and the
command buffer as well as between underlying buffer and command buffer.
Tobin Ehlis [Mon, 26 Sep 2016 23:38:00 +0000 (17:38 -0600)]
layers: Add in-use detection for VkBufferView
When VkBufferView is destroyed, flag error if in-use and mark any
bound cmd buffers as invalid.
Tony Barbour [Wed, 21 Sep 2016 20:38:50 +0000 (14:38 -0600)]
demos: Remove tri demo
Removing tri demo for maintenance reasons. Cube should be the demo
to go to for examples of good Vulkan
Change-Id: I4442a1882b5c168cfe88501eccc41a554ae4d026
Tobin Ehlis [Tue, 27 Sep 2016 23:42:58 +0000 (17:42 -0600)]
layers: Add bool to guard command buffer state check
This is the first check-in demonstrating the boolean model to allow validation
checks to be disabled. Going forward we'd like to guard all checks in such
bools which can then be set based on VkValidationCheckEXT enum values passed
in at vkCreateInstance() time.
In the course of adding this noticed a bug where instance_state was not getting
initialized in device layer_data at CreateDevice time. Fixed this bug.
Tobin Ehlis [Tue, 27 Sep 2016 19:10:33 +0000 (13:10 -0600)]
layers: Indicate correct source for validateCommandBufferState() error
Fixes #982
Instead of hard-coding vkQueueSubmit, take a parameter to clarify if the error
originates from vkQueueSubmit() or vkCmdExecuteCommands()
Cody Northrop [Tue, 27 Sep 2016 17:48:14 +0000 (11:48 -0600)]
docs: Add CubeWithLayers to Android section
Cody Northrop [Tue, 27 Sep 2016 16:50:57 +0000 (10:50 -0600)]
demos: Clean up logging for Android
Cody Northrop [Tue, 27 Sep 2016 03:05:00 +0000 (21:05 -0600)]
demos: Enable validation for Android cube
Cody Northrop [Mon, 26 Sep 2016 23:53:00 +0000 (17:53 -0600)]
demos: Add APK with layers to cube
Jan-Harald Fredriksen [Wed, 28 Sep 2016 10:10:24 +0000 (12:10 +0200)]
loader: gh989 - Fix incorrect array index
An inner array loop was using an incorrect index to access the
appropriate layer in instance extension validation.
Change-Id: I27606fb32049bb531131ca29357d79491e3f96a7
Robert Bragg [Tue, 27 Sep 2016 20:10:23 +0000 (21:10 +0100)]
demos: s/X11_INCLUDE_DIRS/X11_INCLUDE_DIR/ typo
Signed-off-by: Robert Bragg <robert.bragg@intel.com>
Chris Forbes [Mon, 26 Sep 2016 23:03:31 +0000 (12:03 +1300)]
layers: Convert RENDER_PASS_NODE::pCreateInfo to use safe struct
Gets rid of a memory leak, and simplifies the code.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 26 Sep 2016 23:03:04 +0000 (12:03 +1300)]
layers: Don't accidentally copy safe_VkFramebufferCreateInfo
This isn't cheap.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 26 Sep 2016 21:54:58 +0000 (10:54 +1300)]
layers: Don't add VK_SUBPASS_EXTERNAL edges to subpass DAG.
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>
Chris Forbes [Mon, 26 Sep 2016 04:04:41 +0000 (17:04 +1300)]
layers: Trim out some more old MT renderpass junk
- 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>
Chris Forbes [Mon, 26 Sep 2016 02:23:32 +0000 (15:23 +1300)]
layers: Remove unnecessary constructors from new _STATE classes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Mon, 26 Sep 2016 02:18:57 +0000 (15:18 +1300)]
layers: Tweak naming of enums moved from SwapChain to CV
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Thu, 22 Sep 2016 06:34:20 +0000 (18:34 +1200)]
layers: Move image-not-acquired etc from swapchain to core validation
Now that Core Validation tracks the acquisition state of every swapchain
image, we can do this.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Thu, 22 Sep 2016 05:11:06 +0000 (17:11 +1200)]
layers: Add tracking of acquired state to Core Validation
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Thu, 22 Sep 2016 04:49:47 +0000 (16:49 +1200)]
layers: Add IMAGE_NODE::acquired flag
This is necessary for moving the image ownership stuff across from
swapchain
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Thu, 22 Sep 2016 04:40:27 +0000 (16:40 +1200)]
layers: Move ACQUIRE_NO_SYNC check from Swapchain to Core Validation
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Mark Young [Mon, 26 Sep 2016 17:38:46 +0000 (11:38 -0600)]
loader: gh971 EnumPhysDev return VK_INCOMPLETE
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
Mike Stroyan [Wed, 21 Sep 2016 17:19:07 +0000 (11:19 -0600)]
build: Enable parallel windows build
Mike Stroyan [Thu, 22 Sep 2016 20:55:16 +0000 (14:55 -0600)]
build: Make windows build of demos parallel build safe
Use direct output to SPIRV file names to prevent collisions.
Mike Stroyan [Fri, 16 Sep 2016 15:45:14 +0000 (09:45 -0600)]
build: Fix parallel build of layers
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.
Mike Stroyan [Tue, 20 Sep 2016 15:08:18 +0000 (09:08 -0600)]
build: Fix ImageMagick_Magick++ search
One cmake test was looking at ImageMagick_MagickWand_INCLUDE_DIR
instead of ImageMagick_Magick++_INCLUDE_DIR
Mike Stroyan [Tue, 20 Sep 2016 15:05:28 +0000 (09:05 -0600)]
build: UNSET cache variables for FIND_IMAGEMAGICK_API
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.
Chris Forbes [Thu, 22 Sep 2016 02:55:13 +0000 (14:55 +1200)]
layers: Remove spurious using BASE_NODE::*.
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>
Chris Forbes [Thu, 22 Sep 2016 06:53:59 +0000 (18:53 +1200)]
layers: Get rid of some junk in RENDER_PASS_NODE::ctor
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>
Chris Forbes [Thu, 22 Sep 2016 06:51:58 +0000 (18:51 +1200)]
layers: Explicitly delete IMAGE_NODE, BUFFER_NODE copy constructors
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>
Alex Smith [Fri, 23 Sep 2016 11:18:51 +0000 (12:18 +0100)]
layers: Fix VerifyCopyUpdateContents on combined image sampler descriptors
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
Józef Kucia [Fri, 23 Sep 2016 10:45:04 +0000 (12:45 +0200)]
layers: Prevent reading uninitialized "count" when validating array parameters
Cody Northrop [Thu, 22 Sep 2016 20:39:16 +0000 (14:39 -0600)]
android: Add Android and C++ support to a couple files
These are needed downstream in VulkanTools for Android support.
Cody Northrop [Thu, 22 Sep 2016 19:55:49 +0000 (13:55 -0600)]
demos: Enable arm64 build of Smoke
Cody Northrop [Thu, 22 Sep 2016 19:42:22 +0000 (13:42 -0600)]
demos: Update Smoke permissions for trace/replay
Cody Northrop [Thu, 22 Sep 2016 17:08:37 +0000 (11:08 -0600)]
demos: Fix Smoke build for Android
It doesn't appear that this ever worked.
Cody Northrop [Thu, 22 Sep 2016 15:42:23 +0000 (09:42 -0600)]
demos: Update gradle properties for smoke
Cody Northrop [Thu, 22 Sep 2016 14:18:52 +0000 (08:18 -0600)]
demos: Update smoke build script to be automatable
Cody Northrop [Thu, 22 Sep 2016 19:32:04 +0000 (13:32 -0600)]
toolchain: Use multiple processes to build glslang
Tobin Ehlis [Thu, 22 Sep 2016 16:52:00 +0000 (10:52 -0600)]
layers: Distinguish never-bound from un-bound memory cases
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.
Tony Barbour [Wed, 21 Sep 2016 19:10:56 +0000 (13:10 -0600)]
demos: Change cube to use FIFO present mode
And throttle using fences
Change-Id: I13cd622f9a401fdb44bf7b74343589b70e340b77
Cody Northrop [Thu, 22 Sep 2016 13:41:08 +0000 (07:41 -0600)]
demos: Update Android documentation
Cody Northrop [Thu, 22 Sep 2016 13:32:22 +0000 (07:32 -0600)]
demos: Give Cube and Tri distinct app names
Cody Northrop [Thu, 22 Sep 2016 13:22:28 +0000 (07:22 -0600)]
demos: Clean up APK creation for cube and tri
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
Tobin Ehlis [Wed, 21 Sep 2016 21:09:45 +0000 (15:09 -0600)]
layers: Clean up no memory bound checks
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.
Tobin Ehlis [Wed, 21 Sep 2016 15:19:15 +0000 (09:19 -0600)]
layers: Verify memory is bound to images used to update descriptors
Fixes #663
For vkUpdateDescriptorSets() calls that include an image, verify that memory is bound to the image.
Tobin Ehlis [Thu, 22 Sep 2016 13:30:05 +0000 (07:30 -0600)]
layers: A few minor clean-ups from code review
Better use of auto and killing some unneeded code.
Tobin Ehlis [Wed, 21 Sep 2016 20:28:42 +0000 (14:28 -0600)]
layers: Add in-use check at DestroyImage() time
Flag error if an in-use image is destroyed.
Also clean up a couple minor issues related to binding objects to command buffer.
Tobin Ehlis [Mon, 19 Sep 2016 20:20:37 +0000 (14:20 -0600)]
layers: Add in-use check for renderPass
At DestroyRenderPass() time verify that renderPass is not in-use.
Tobin Ehlis [Mon, 19 Sep 2016 20:02:58 +0000 (14:02 -0600)]
layer: Add in-use validation for imageView
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().
Tobin Ehlis [Mon, 19 Sep 2016 19:10:37 +0000 (13:10 -0600)]
layers: Add in-use check for imageView
Add DestroyImageView time, make sure imageView is not in use.
Tobin Ehlis [Wed, 14 Sep 2016 21:26:09 +0000 (15:26 -0600)]
layers: Add binding for framebuffer children
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.
Tobin Ehlis [Wed, 14 Sep 2016 17:21:55 +0000 (11:21 -0600)]
layers: Add support code to handle in_use for missing objects
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.
Tobin Ehlis [Wed, 14 Sep 2016 14:12:08 +0000 (08:12 -0600)]
layers: Update BufferView state tracking
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.
Tobin Ehlis [Wed, 14 Sep 2016 14:02:49 +0000 (08:02 -0600)]
layers: Update ImageView state 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.
Tobin Ehlis [Wed, 14 Sep 2016 13:01:11 +0000 (07:01 -0600)]
layers: Clean up in-use decrement for bound objects
Decrement in-use in a single location via ptr to BASE_NODE for each bound object.
Tobin Ehlis [Wed, 14 Sep 2016 12:55:51 +0000 (06:55 -0600)]
layers: Clean up in-use increment for bound objects
Simplify code with a single error call and in_use increment based on common
base class.