Mark Young [Wed, 7 Sep 2016 14:50:32 +0000 (08:50 -0600)]
loader: Cleanup 1.0.25 extension work
Remove adding extensions from being exported from loader by
default. Add in logic to only export entry points if extensions
are enabled.
Change-Id: I56e0c673925869e0d4482ee401ea19e43a05267f
Arda Coskunses [Wed, 7 Sep 2016 18:31:35 +0000 (12:31 -0600)]
layers: correct typo vkExternalMemoryHandleTypeFlagsNV
Change-Id: Ifb9a7c7a2ff46580b85a07fa92d8cd44f95e1ce6
Tobin Ehlis [Wed, 7 Sep 2016 02:40:29 +0000 (20:40 -0600)]
layers: Rename pCB to cb_node
Just updating functions as I touch them to avoid too much noise.
Tobin Ehlis [Wed, 7 Sep 2016 02:37:39 +0000 (20:37 -0600)]
layers: Print framebuffer object type
Distinguish "framebuffer" object type from "buffer" when printing
object type for output messages.
Tobin Ehlis [Wed, 7 Sep 2016 02:37:01 +0000 (20:37 -0600)]
layers: Add cmd buffer binding for fb images
Fixes #915
When binding framebuffer to command buffer, we need to also bind the
underlying images. Then, if images are destroyed, the cmd buffer
will correctly be marked as invalid and an error will be flagged if
an attempt to submit the cmd buffer is made.
Lenny Komow [Wed, 7 Sep 2016 15:18:38 +0000 (09:18 -0600)]
header: Bump vulkan.hpp to 1.0.26
Mark Young [Tue, 6 Sep 2016 20:45:06 +0000 (14:45 -0600)]
build: gh850 support msys
When we detect msys as a platform, we should behave as if it is
a Win32 system. Otherwise, the build will be broken in the msys
shell.
Change-Id: I088f954ca968c9ce21bc7bbe7bfaa7732dd82a73
Chris Forbes [Wed, 7 Sep 2016 02:08:31 +0000 (14:08 +1200)]
layers: Add error for CmdEndRenderPass before reaching final subpass
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Wed, 7 Sep 2016 01:52:28 +0000 (13:52 +1200)]
layers: Make CmdEndRenderPass more careful about side effects on failure
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 6 Sep 2016 23:44:08 +0000 (11:44 +1200)]
layers: add error to CmdNextSubpass if stepping beyond last subpass
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 6 Sep 2016 23:43:52 +0000 (11:43 +1200)]
layers: Make CmdNextSubpass more careful about side effects on failure
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Tobin Ehlis [Wed, 7 Sep 2016 00:46:55 +0000 (18:46 -0600)]
layers: Add MEMTRACK_INVALID_MEM_REGION error
Add new enum value "MEMTRACK_INVALID_MEM_REGION" to track case when a
region of an allocation bound to an image or buffer is not valid due
to the memory not being correctly updated.
This was previously aliased to USAGE_FLAG case which was masking the fact
that there are no tests written for this invalid mem region case.
Tobin Ehlis [Wed, 7 Sep 2016 00:12:07 +0000 (18:12 -0600)]
layers: Clarify invalid memory message
Fixes #906
When reporting an invalid memory region, include the object type and
handle that is bound to that region.
Mark Lobodzinski [Tue, 6 Sep 2016 22:32:34 +0000 (16:32 -0600)]
loader: Bump SOVERSION to 1.0.26
Change-Id: Ibe1378fe08686a88ae95dd1484c69ca71e2de6d3
Mark Lobodzinski [Tue, 6 Sep 2016 22:31:43 +0000 (16:31 -0600)]
layers: Move Windows json files to version 1.0.26
Change-Id: I8fb17f80ef3e83d04aa4868b3442a19a13feff8f
Mark Lobodzinski [Tue, 6 Sep 2016 22:30:58 +0000 (16:30 -0600)]
layers: Move Linux json files to version 1.0.26
Change-Id: Ia42d6867ba4a2c6bae4eae522c3f65d5a87567bd
Mark Lobodzinski [Tue, 6 Sep 2016 22:29:05 +0000 (16:29 -0600)]
header: Move vk.xml to verison 1.0.26
Change-Id: Ie2bc2b5c15c4bad19083081727c88647113e3725
Mark Lobodzinski [Tue, 6 Sep 2016 22:21:40 +0000 (16:21 -0600)]
header: Move vulkan.h to version 1.0.26
Note that part of these changes were made in a previous commit
that reversed the ValidationFlags changes.
Change-Id: I11cccfaa79e6dfa9e8ed276608612d56386f893a
Mark Young [Tue, 6 Sep 2016 19:53:03 +0000 (13:53 -0600)]
loader: Clean up failure handling in loader
The terminator_CreateInstance had a few extra things I wanted to
clean up.
Change-Id: Ia9246a44c3233f7f1b41289f6917ac107b8cf3a2
Mark Young [Tue, 6 Sep 2016 15:53:45 +0000 (09:53 -0600)]
loader: gh901 Fix loader w multiple ICDs
When an ICD failed during CreateInstance time, the loader needs
to remove the ICD from the list of available ICDs.
Change-Id: Id27a971e401ec9475b9488bdd95298e0f509f6b7
Karl Schultz [Tue, 6 Sep 2016 16:26:09 +0000 (10:26 -0600)]
layers: Use actual enum type name in err msg
Change-Id: I4e7933349068984d7c99577158b6ff272e1d5282
Lenny Komow [Fri, 2 Sep 2016 20:05:45 +0000 (14:05 -0600)]
winsdk: Fix releases showing as older than alphas
Mark Young [Fri, 2 Sep 2016 17:45:00 +0000 (11:45 -0600)]
loader: Clean up loader_init_generic_list
Modify loader_init_generic_list so that it returns with count
and capacity of 0 if an error occurs.
Change-Id: I916f0dc0bf54a7897cf375bec0647f0379db1d0a
Mark Young [Fri, 2 Sep 2016 17:41:28 +0000 (11:41 -0600)]
loader: Rename DevExt to dev_ext
Make a quick change to conform a structure element to the coding
standard.
Change-Id: Icbf168b1ab451dcc4847a0c2c17d0cb40c0197b8
Mark Young [Fri, 2 Sep 2016 17:39:26 +0000 (11:39 -0600)]
loader: Modify loader_make_version
Modified loader_make_version to match the way we calculate the
version in other places.
Change-Id: Ia15e71fcfc0690836ed8ce1a3e9b6911988b57ff
Karl Schultz [Fri, 2 Sep 2016 17:13:16 +0000 (11:13 -0600)]
build: Restore default symbol visibility to layers/tests
Layer tests broke with a previous commit to fix CXX
flags inheritance. This commit repairs the problem.
Change-Id: Id54cfb737f32b6f11a4146225cc22e0b155ba2ba
Karl Schultz [Fri, 2 Sep 2016 16:17:05 +0000 (10:17 -0600)]
build: gh672 Fix CMake CXX_FLAGS inheritance
Some sub-projects were overwriting CMAKE_CXX_FLAGS instead of
inheriting from the parent. This keeps any user settings outside
or above the top CMakeLists.txt file from reaching these sub-projects.
These fixes include preserving the inheritance, adding extra flags
to turn off warnings (mostly in autogen code) because the top
level turns on Wall, and trivial code fixes to avoid the need to
add a setting to turn off a warning for those trivial fixes.
These changes should have no impact on Windows.
Change-Id: I0c3c175cb5058f26a259ee3f4fde9fdaf3e6b00d
Jeff Juliano [Fri, 2 Sep 2016 12:24:25 +0000 (08:24 -0400)]
use "exit /b", not "exit"
"exit" terminates the cmd shell that invoked this script.
"exit /b" terminates only this bat script.
Change-Id: I1207545944ac2809c8f45a70f37e88cbdbc80aac
James Jones [Thu, 18 Aug 2016 22:41:19 +0000 (23:41 +0100)]
Fix VK_NV_external_memory_capabilities support
-Need to init the instance function pointer
-The function should gracefully fall back on
drivers that don't support it.
Change-Id: I15b0c68028c8f5ad3b07342e255dbb4c37bb6f0a
Mark Young [Thu, 1 Sep 2016 19:43:04 +0000 (13:43 -0600)]
docs: Fix "Cautions" title
GitHub Markdown doesn't support the sub-section we tried to use.
Instead, make this plain text, underlined and bolded.
Change-Id: Id20275c79f06b59c39ab9a9d118ddcbea6110ffa
Mark Young [Thu, 25 Aug 2016 20:54:58 +0000 (14:54 -0600)]
loader: gh851 wrap debug report callbacks
Allow layers to wrap the debug report callbacks so they can
enable more messaging than the application, but also filter
the items returned.
Change-Id: I3fe8feecfa1838869de8a7338ff610e5ebca2e61
Endre Oma [Thu, 1 Sep 2016 15:56:41 +0000 (17:56 +0200)]
header: fix vulkan.hpp detection of 64-bit arch
The generator that produced vulkan.hpp for 1.0.25 seemed to ignore the 64-bit architecture test, thereby breaking 64-bit builds.
The macro VK_DEFINE_NON_DISPATCHABLE_HANDLE is always defined according to vulkan.h.
Chris Forbes [Wed, 31 Aug 2016 19:58:14 +0000 (12:58 -0700)]
layers: Fix reporting of multiple allowed image view types
This isn't the problem we were hitting in #890, but we'd produce a misleading message if multiple bits were allowed
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Wed, 31 Aug 2016 19:00:35 +0000 (12:00 -0700)]
layers: Don't spuriously produce an error if there are no view type bits set
Previously we'd complain about any input attachment, since we don't constrain
its view type at all.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Wed, 31 Aug 2016 18:59:48 +0000 (11:59 -0700)]
layers: Impose singlesample/multisample constraints on input attachment descriptors
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Mark Young [Thu, 1 Sep 2016 15:18:45 +0000 (09:18 -0600)]
loader: Update script names with correct ext name
lunarg_debug_report is now called ext_debug_report.
Change-Id: Ieceb323ac0a05def2f49ae399460b02b1e245639
Mark Young [Fri, 1 Jul 2016 21:18:27 +0000 (15:18 -0600)]
loader: gh888 Add KHR/EXT extensions in vulkan.h
Add the KHR_display_swapchain device extension to the loader
and the core_validation layers. This fulfills the work required in
JIRA LOAD-7 and gh 90.
Add debug_marker to the extension list.
Change-Id: I1fb70e5d44bc8c1f70fd6d1cfbd106a155081b25
Ian Elliott [Wed, 31 Aug 2016 20:08:44 +0000 (14:08 -0600)]
Add new text to discuss wrapping of objects, including cautions.
This describes the process of wrapping and unwrapping objects, and provides
some cautions about the dangers of layers wrapping objects
(e.g. incompatibilities with unsupported extensions).
Lenny Komow [Wed, 31 Aug 2016 21:03:49 +0000 (15:03 -0600)]
header: Update vulkan.hpp to 1.0.25
Mark Lobodzinski [Wed, 31 Aug 2016 15:31:29 +0000 (09:31 -0600)]
loader: Fixed some types and comments
Change-Id: I66a5745a948c6677895950fdd48395afd5152ad7
Mark Lobodzinski [Mon, 29 Aug 2016 21:36:23 +0000 (15:36 -0600)]
loader: Add support for NV device extension
Added vkGetMemoryWin32HandleNV from the VK_NV_external_memory_win32
extension to the loader.
Change-Id: If6a959f126cc48ebf2608ed6e113e2883deae871
Mark Lobodzinski [Mon, 29 Aug 2016 20:54:34 +0000 (14:54 -0600)]
loader: Add support for AMD device extension
Added vkCmdDrawIndirectCountAMD and vkCmdDrawIndexedIndirectCountAMD
from the VK_AMD_draw_indirect_count extension to the loader.
Change-Id: I4e1810dd6efcc54291a35d1ce9a15e59830689f3
Mark Lobodzinski [Mon, 29 Aug 2016 20:21:14 +0000 (14:21 -0600)]
loader: Add support for NV instance extension
Added vkGetPhysicalDeviceExternalImageFormat API from the
VK_NV_external_memory_capabilities extension to the loader.
Change-Id: Ib87df7bae333d7944a4e181556bc2f99e1e19416
Mark Lobodzinski [Mon, 29 Aug 2016 18:14:55 +0000 (12:14 -0600)]
layers: Update dispatch tables for new 1.0.25 APIs
Change-Id: I001583402bc99f923a776b238a82db5a60398f03
Mark Lobodzinski [Mon, 29 Aug 2016 17:56:02 +0000 (11:56 -0600)]
layers: Update vulkan.py for new extension APIs
Added extension protos and update extension lists for
VK_AMD_draw_indirect_count, VK_NV_external_memory_capabilities,
and VK_NV_external_memory_win32 new for header version 1.0.25.
Change-Id: Ifac0a2b4b7e36a8f907622e002ec419cc7c54f87
Mark Lobodzinski [Mon, 29 Aug 2016 15:22:21 +0000 (09:22 -0600)]
loader: Bump SOVERSION to 1.0.25
Change-Id: I90a667a45cb02fb582fc59cbe0725ac633780d2d
Mark Lobodzinski [Mon, 29 Aug 2016 15:21:24 +0000 (09:21 -0600)]
layers: Move windows json files to version 1.0.25
Change-Id: I063b38477237c9cd7966131361c44f859fc0d485
Mark Lobodzinski [Mon, 29 Aug 2016 15:20:07 +0000 (09:20 -0600)]
layers: Move linux json files to version 1.0.25
Change-Id: Ice0f12ffea3c4702b9ea288fbe0e155a810185f5
Mark Lobodzinski [Tue, 30 Aug 2016 20:11:39 +0000 (14:11 -0600)]
header: Remove ValidationFlags changes from vk.xml
The validation_flags features will be moved into an extension.
Change-Id: I05e0642c253f0c39361049b3677cdd037cb2a9ef
Mark Lobodzinski [Mon, 29 Aug 2016 15:17:23 +0000 (09:17 -0600)]
header: Move vk.xml to version 1.0.25
Change-Id: I7f24c5a5cbfa00e3f8bc331b63fb26c8912da2dd
Mark Lobodzinski [Mon, 29 Aug 2016 15:16:59 +0000 (09:16 -0600)]
header: Move vk_platform.h to version 1.0.25
Change-Id: I71d8609bbd75af5832923c94e0fee9f1b2b0fcac
Mark Lobodzinski [Tue, 30 Aug 2016 20:11:18 +0000 (14:11 -0600)]
header: Remove ValidationFlags changes from vulkan.h
The validation_flags features will be moved into an extension.
Change-Id: I435e75da8d8917f876e5bc904922cda26a87845a
Mark Lobodzinski [Mon, 29 Aug 2016 15:02:13 +0000 (09:02 -0600)]
header: Move vulkan.h to version 1.0.25
Change-Id: I2ad2c33c720f992953e8d5886dc2c55ad789fe83
Mark Young [Wed, 31 Aug 2016 17:53:26 +0000 (11:53 -0600)]
doc: Update loaderandlayerinterface
Added more information about layer wrapping, specifically requiring
support for extensions.
Change-Id: Ie60952f41c976b8e0245810c550b133dc5843097
Lenny Komow [Wed, 31 Aug 2016 16:41:19 +0000 (10:41 -0600)]
winsdk: Correct installer log renaming
Mark Mueller [Thu, 25 Aug 2016 21:43:30 +0000 (15:43 -0600)]
docs: GH428 Update doc for sync validation test cases
Change-Id: I101b66f6413b82e54ebc3931dc740695921a57bf
Mark Mueller [Wed, 24 Aug 2016 16:42:17 +0000 (10:42 -0600)]
layers: GH428 Adding skip_call to DestroySemaphore
Use skip_call return from log_msg callback to decide
whether or not to pass the call to lower layers.
Change-Id: I96090539e9001bbda32533055b143c872d88e4bf
Lenny Komow [Wed, 31 Aug 2016 15:45:46 +0000 (09:45 -0600)]
winsdk: Fix powershell error to say ConfigureRT
Lenny Komow [Wed, 31 Aug 2016 00:38:05 +0000 (18:38 -0600)]
winsdk: Remove rt installer using msvcr120.dll
Lenny Komow [Tue, 30 Aug 2016 22:43:39 +0000 (16:43 -0600)]
winsdk: Fix uninstall log not clearing old copies
Mark Lobodzinski [Tue, 30 Aug 2016 17:30:04 +0000 (11:30 -0600)]
layers: Fix Dota2 crash in Windows
Two issues, in_use was not initialized in SAMPLER_NODE and an invalid
access during resource tracking for SAMPLER_NODE and SET_NODE. This
occured during GetFenceStatus after a call to DestroySampler.
Change-Id: I7654a7c4a2677450097643422f44290be5dbac2a
Mark Lobodzinski [Fri, 26 Aug 2016 14:48:02 +0000 (08:48 -0600)]
layers: PR887, Add extension white-list
The unique_objects layer wraps objects -- layers that wrap objects
should output an error message if used with any extension that is
not explicitly supported by the layer. Added a whitelist of supported
extensions and error messages for unsupported extensions.
Change-Id: I9ce0acb22ddfa5b81e36c7e03fffad0777b5410d
Mark Lobodzinski [Fri, 26 Aug 2016 14:47:37 +0000 (08:47 -0600)]
layers: Add white-list helper to layer utils
Change-Id: Idfc67481589ea9698ab82501889680044fcf8276
Mark Lobodzinski [Fri, 26 Aug 2016 14:37:44 +0000 (08:37 -0600)]
layers: Add unique_objects to layer settings file
Enable config file control of debug output from the unique_objects
layer.
Change-Id: I31ac885743aa3b03b70b55329b3fea852db2cd27
Mark Lobodzinski [Fri, 26 Aug 2016 14:35:19 +0000 (08:35 -0600)]
layers: Add unique_objects to default layer config
Allows messages to be output from this layer in configurations with
no explicit output settings.
Change-Id: I17c604db7461ae10eedd0b3fb3f9440a6dc52eab
Mark Lobodzinski [Thu, 25 Aug 2016 20:49:38 +0000 (14:49 -0600)]
layers: Add debug report support to unique_objects
Change-Id: Ib276761a94e627c0e5504ca22737649c7722113c
Ian Elliott [Fri, 19 Aug 2016 09:46:58 +0000 (03:46 -0600)]
demos: Update some of the WSI code to match the spec example code
A pending Vulkan spec change contains updates to the WSI example code. This is
a coordinated, cosmetic change, that allows the example code and demo code to
more-closely match.
Mark Young [Fri, 26 Aug 2016 22:54:43 +0000 (16:54 -0600)]
build: update spirv and glslang revisions
Updated to more recent SPIRV, SPIRV_headers, and glslang commits.
This also required updating the overall build to use a new
library SPVRemapper.lib.
Change-Id: I47573be7a1fe62c519f504920590ceb6510a7a13
Mark Lobodzinski [Fri, 26 Aug 2016 21:06:31 +0000 (15:06 -0600)]
loader: Update SO version for 1.0.24 header
Change-Id: Ie159ffd434b98e5679e7645dc8dc4c913b26fa4f
Lenny Komow [Fri, 26 Aug 2016 20:10:08 +0000 (14:10 -0600)]
header: Update vulkan.hpp to 1.0.24
Mark Lobodzinski [Fri, 26 Aug 2016 17:31:25 +0000 (11:31 -0600)]
layers: Modify format queries for enums
As part of the 1.0.24 header updates, changed the format information
query functions to lookup via a map in order to handle non-sequential
format enums incorporated as part of an extension.
Change-Id: I558d710889c7e9f6878141a8213777afb1077c99
Mark Lobodzinski [Fri, 26 Aug 2016 16:25:27 +0000 (10:25 -0600)]
header: Update vk.xml to 1.0.24
Change-Id: I3825299492a89ea9d43f42052877e91bd2f8f76f
Mark Lobodzinski [Fri, 26 Aug 2016 16:19:57 +0000 (10:19 -0600)]
header: Update vk_platform.h to 1.0.24
Change-Id: Ic256fc2ae1214b26b32a3f61459235359cfd8249
Mark Lobodzinski [Fri, 26 Aug 2016 16:19:18 +0000 (10:19 -0600)]
header: Update vulkan.h to 1.0.24
Change-Id: I1114e34656061fb2de34649c63dd480ec6069d77
Tony Barbour [Fri, 26 Aug 2016 19:01:43 +0000 (13:01 -0600)]
layers: Allow input attachment usage in CreateImageView
Change-Id: Ic0bea63b6ec898e496ba124b57ad8b848bdd0b7d
Mark Lobodzinski [Fri, 26 Aug 2016 20:41:42 +0000 (14:41 -0600)]
layers: Update json files for 1.0.24 header
Change-Id: I151125e8cc140d41b533707eb1b28dbe9b63a914
Mark Young [Fri, 26 Aug 2016 20:14:47 +0000 (14:14 -0600)]
loader: Update resource context default version
The loader had a stale file version. This version gets replaced
as part of a standard SDK build, but we should have a unique
ID for a developer built loader. I updated it to have build 1111
and patch 2222 by default.
Change-Id: I70c3152b2ea5f29a072af94ca5f5a19227bbee67
Mark Young [Fri, 26 Aug 2016 19:22:31 +0000 (13:22 -0600)]
docs: Update README.md for Glslang issue
Update the README.md to have a note about updating your Nvidia
driver to resolve failures with the glslang hack removal.
Change-Id: Id1b71cc7baae90571bef624f07ff1c7511718b0c
Mark Young [Fri, 26 Aug 2016 17:50:50 +0000 (11:50 -0600)]
Revert "glslang/spirv: Update repo revisions"
This reverts commit
d6decaa8f78fba8746c55e9247add042b90b56fa.
Attempting to see if this is causing the newly encountered errors
on Nvidia Linux, or if it's related to the glslang issue that
was fixed and people just need to update drivers.
Mark Lobodzinski [Wed, 24 Aug 2016 13:53:27 +0000 (07:53 -0600)]
layers: Update layer details doc
For new sampleCount/Image tests
Change-Id: Ie857e56b38170e343486f2958a4d5afe7fcdcc12
Mark Lobodzinski [Tue, 23 Aug 2016 21:10:36 +0000 (15:10 -0600)]
layers: Add validation for image samplecounts
Check that an image's sampleCount is valid for BlitImage,
CopyImageToBuffer and CopyBufferToImage.
Change-Id: I5e012e35bd2eb87cd42798a0cacdb03ed64b3c3b
Mark Young [Fri, 26 Aug 2016 17:17:39 +0000 (11:17 -0600)]
glslang : Force update in update_external_sources
Linux's sh file didn't clobber previous external items synced.
This is having a problem with the previous changes which reverted
the glslang texel fetch patch, and then updated the revision.
Change-Id: I0e8e28d11fa40df00a5fb9164624f113b2adf084
Mark Young [Fri, 26 Aug 2016 15:04:24 +0000 (09:04 -0600)]
glslang/spirv: Update repo revisions
Update the SPIR-V Tools, SPIR-V Headers, and Glslang revisions
for the upcoming SDK.
Change-Id: I12d57d75691d1a0e40efd986247ecdb58bf0bf61
Mark Young [Fri, 26 Aug 2016 02:12:05 +0000 (20:12 -0600)]
glslang: Remove change to revert texel fetch fix.
Previously, we had to revert a texel fetch fix in glslang as
part of the update_external_sources.bat/sh due to a bug in the
certain drivers. The drivers have been fixed and released so
we can remove the change.
Change-Id: I018a0dbbc5fb27d7fbd91bc3073f0f5bef5cd346
Chris Forbes [Tue, 23 Aug 2016 01:04:34 +0000 (13:04 +1200)]
layers: return collect_* result containers rather than using & out
This is clearer at the call site, should be no slower in C++11+, and
complies with the style guide.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Tony Barbour [Thu, 25 Aug 2016 19:14:45 +0000 (13:14 -0600)]
demos: Restore Wayland compile behavior in cube
And document supported configurations
Change-Id: Ib6cdccf48c75373acfc2ebe625719360caa16657
Mun Gwan-gyeong [Sat, 20 Aug 2016 05:46:22 +0000 (14:46 +0900)]
demos: GH862 Fix build errors of demos (cube, vulkaninfo) on the wayland only window system
Change-Id: I76a36e3aad059356bcb69455702ade1cfec8b924
Signed-off-by: Mun Gwan-gyeong <elongbug@gmail.com>
Ian Elliott [Wed, 24 Aug 2016 17:30:45 +0000 (11:30 -0600)]
layers: GH849: Defend against poorly-written applications
A test application was written that didn't properly call some count-based query
commands. In this particular case, they always hard-coded the count variable
to 1 the 2nd time the query was called. The swapchain layer was only recording
the 1st count value in this case, and this caused a seg fault when the
vkCreateSwapchainKHR command validation code was run.
This commit better defends against such poorly-written applications, so that
the vkCreateSwapchainKHR command validation code won't seg fault. This
includes looking for VK_INCOMPLETE as a successful return code from the ICD.
Dustin Graves [Fri, 22 Jul 2016 19:20:44 +0000 (13:20 -0600)]
layers: Fix paramter_validation array name codegen
Replace std::string with ParameterName for the generated
parameter_validation layer code so that the parameter names
printed by the generated code contain the correct array
subscript values. Also updates the parameter_validation
tests to reflect the change to the printed names.
Issues-Addressed: GitHub #462
Change-Id: I3032e08052fc003ba066bbe613e5faf3ed049964
Dustin Graves [Fri, 22 Jul 2016 19:19:46 +0000 (13:19 -0600)]
layers: Fix parameter_validation array name format
Replace std::string with ParameterName for the parameter_validation
utility functions so that the parameter names printed by these
functions contain the correct array subscript values.
Issues-Addressed: GitHub #462
Change-Id: I09fc6a45e8e41ba28ef7d8fc44ce9e8874feefad
Dustin Graves [Fri, 22 Jul 2016 19:19:02 +0000 (13:19 -0600)]
layers: Add parameter name formatting class
Add a custom parameter name class with support for deferred
formatting of names containing array subscripts. The class
stores a format string and a vector of index values, and
performs string formatting when an accessor function is called
to retrieve the name string.
Change-Id: I941116a16b6fa19e63314cbeab33223e0fa072d3
Mark Lobodzinski [Wed, 24 Aug 2016 14:09:29 +0000 (08:09 -0600)]
loader: Fix build warning on Linux
Change-Id: Iae099e6edffacdfad010aebe099e8e13d2ef8510
Tobin Ehlis [Mon, 22 Aug 2016 16:10:43 +0000 (10:10 -0600)]
layers: Update descriptor binding to use an ordered map
When dealing with dynamic offsets, the binding numbers, and array indices within
a binding, are all sequential.
This is according to the spec "Descriptor Set Binding" section which states,
"...entries are ordered by the binding numbers in the descriptor set layouts; and
within a binding array, elements are in order."
This means when processing the binding numbers to validate the dynamic offsets at
draw time, we should do so in order to make sure that the sequential dynamic offset
index correctly correlates with the dynamic offset being processed.
Tobin Ehlis [Wed, 17 Aug 2016 23:00:07 +0000 (17:00 -0600)]
tests: Add InvalidCmdBufferDescriptorSetImageSamplerDestroyed test
This test hits 3 newly added checks of an invalid cmd buffer at submit time due to:
1. Bound descriptor set sampler being destroyed
2. Bound descriptor set image being destroyed
3. Bound descriptor set being destroyed
Tobin Ehlis [Wed, 17 Aug 2016 20:57:58 +0000 (14:57 -0600)]
tests: Add InvalidCmdBufferDescriptorSetBufferDestroyed test
This test creates a cmd buffer and binds a buffer-type descriptor set.
Then it detroys the buffer prior to submitting cmd buffer and verifies
that the cmd buffer is flagged as invalid.
Tobin Ehlis [Wed, 17 Aug 2016 19:33:44 +0000 (13:33 -0600)]
layers: Add cmd buffer binding for descriptor resources
This commit creates bindings between a cmd buffer and the images/buffers
and their memory allocations that are tied to that cmd buffer's active
descriptor slots (set/binding combination).
The active resources are anything that's in use during any of the draws
issued in the cmd buffer.
If any of the bound resources are deleted, the cmd buffer will become
invalid and an error will be issued on the next attempt to submit it.
Tobin Ehlis [Wed, 17 Aug 2016 19:12:19 +0000 (13:12 -0600)]
layers: Refactor functions to bing image/buffer to cmd buffer
The AddCommandBufferBinding[Image|Buffer]() functions both had an
unused parameter that was killed, and they both returned a bool
that was not needed so removed that too.
Also made layer_data* param const and put prototypes into
core_validation_types.h in prepration of using these functions
from the DescriptorSet class.
Tobin Ehlis [Wed, 17 Aug 2016 17:10:41 +0000 (11:10 -0600)]
layers: Add tracking between sampler and cmd buffer
Update SAMPLER_NODE to inherit from BASE_NODE and keep track of
cb_bindings for sampler.
At draw time, add any bindings between cmd buffer and samplers that
are connected to active descriptors.
At DestroySampler() time, set CB_INVALID for any cmd buffers in
cb_bindings.
Also includes some additional plumbing to prepare for connecting
images/buffers that are tied to descriptor sets to cmd buffers that
those sets are bound to.
Tobin Ehlis [Wed, 17 Aug 2016 15:49:13 +0000 (09:49 -0600)]
layers: Only bind active sets to cmd buffers
Don't create a binding between every set bound to a cmd buffer, but only
the sets that are verified active at draw time.
Gather up active descriptorset bindings in prepration of also binding the
resources from each individual active set to the cmd buffer.
Tobin Ehlis [Wed, 17 Aug 2016 13:55:55 +0000 (07:55 -0600)]
layers: Migrate PIPELINE_NODE to core_validation_types.h
Move PIPELINE_NODE struct to core_validation_types.h so that it's visible to
descriptorSet class. Update cmd buffer lastBound state to store ptr to
PIPELINE_NODE instead of VkPipeline which saves extra lookups.