Chris Forbes [Sun, 17 Jan 2016 19:36:20 +0000 (08:36 +1300)]
layers: MR140, Remove some commented merge remnants
Mark Lobodzinski [Wed, 13 Jan 2016 17:23:15 +0000 (10:23 -0700)]
layers: LX257, Validate Uniform/Storage buffer offset alignments
Jon Ashburn [Mon, 18 Jan 2016 19:20:03 +0000 (12:20 -0700)]
loader: Return the loader created instance rather than from the instance chain
Fix's issue with layers that wrap instance.
Mark Young [Fri, 15 Jan 2016 16:01:11 +0000 (09:01 -0700)]
installer: Fix LunarXchange issue #287.
Apply David's fix to force the registry to be created.
Jon Ashburn [Fri, 15 Jan 2016 20:34:22 +0000 (13:34 -0700)]
layers: Fix json file for multi layer
Jon Ashburn [Fri, 15 Jan 2016 20:10:10 +0000 (13:10 -0700)]
laoder: Fix phys_dev to use unwrapped version in loader_CreateDevice
Chris Forbes [Fri, 15 Jan 2016 01:53:11 +0000 (14:53 +1300)]
layers: Add minimal actual analysis of interface blocks to DrawState
There's definitely still room for improvement here (SPIRV-Tools might have some stuff that will make some of these more complex module walks a little clearer); however, this adds enough support for interface blocks for us to generate all the same kinds of mismatch errors we were previously generating for loose inputs and outputs.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Thu, 14 Jan 2016 22:32:03 +0000 (11:32 +1300)]
layers: Fix mishandling of VI vs VS validation (Gitlab#69)
This wasn't quite correct. We'd end up trying to run it_a off beyond attribs.end(),
which is invalid and upsets the MS debug stdlib. This is most likely the root cause
of the weirdness that caused people to add _at_end, _first, etc to this function long ago,
so that can all disappear -- but for now, let's just deal with the actual bug.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 29 Dec 2015 21:52:16 +0000 (10:52 +1300)]
nulldrv: Initialize image format properties
Previously this was just left uninitialized. Image layer would then randomly fail image creation based on comparisons against junk.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 29 Dec 2015 21:51:01 +0000 (10:51 +1300)]
nulldrv: Add more proper support for ShaderModule objects
Again not OK to claim success but return junk rather than a proper handle. Fixes various layers exploding when running against nulldrv.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 29 Dec 2015 21:49:29 +0000 (10:49 +1300)]
nulldrv: Add minimal support for pipeline cache objects.
It's not really OK to claim success but leave junk in the caller's memory rather than a real handle. This prevents object tracker randomly exploding when running against the null driver.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 29 Dec 2015 21:48:06 +0000 (10:48 +1300)]
nulldrv: Claim that our supported image formats can be used as color attachments
Previously if an app would be unable to find any color renderable format, so only
an app that didn't bother (and wasn't running under validation) would get anywhere.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 29 Dec 2015 21:47:26 +0000 (10:47 +1300)]
nulldrv: Expose some present modes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 29 Dec 2015 21:45:47 +0000 (10:45 +1300)]
nulldrv: Expose some basic formats as presentable
Previously we just left whatever junk the caller had in this memory, which generally crashed a caller.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 29 Dec 2015 21:44:58 +0000 (10:44 +1300)]
nulldrv: Claim to support any WSI surface.
Previously this just left whatever junk the caller had, with unpredictable results.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 29 Dec 2015 21:43:16 +0000 (10:43 +1300)]
nulldrv: Initialize memory types mask
Previously apps would randomly succeed or fail to find a matching memory type based on whatever junk happened to be here. Instead, claim to support all memory types.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Jon Ashburn [Thu, 14 Jan 2016 22:11:55 +0000 (15:11 -0700)]
layers: gitlab #62, object_tracker allows NULL semaphore in AcquireNextImage
GregF [Wed, 13 Jan 2016 21:25:26 +0000 (14:25 -0700)]
spirv-tools: update version due to build problems seen by norbert
Jon Ashburn [Thu, 14 Jan 2016 20:51:55 +0000 (13:51 -0700)]
loader: Fix bad memory ref and CreateInstance fail don't write ouptut
Gitlab #58
CreateInstance shouldn't update output parameter on failure.
Tony Barbour [Thu, 14 Jan 2016 17:40:40 +0000 (10:40 -0700)]
Change api_version to 1.0.1 in json files
From 0.210.0
Mark Lobodzinski [Thu, 14 Jan 2016 17:15:37 +0000 (10:15 -0700)]
layers: Gitlab #71, Fix copy/paste error in mem_tracker
Tobin Ehlis [Thu, 14 Jan 2016 16:35:02 +0000 (09:35 -0700)]
nulldrv: MR131, Update api_version in nulldrv json file
Chris Forbes [Thu, 14 Jan 2016 02:57:46 +0000 (15:57 +1300)]
layers: MR130, Handle VK_WHOLE_SIZE properly in mem_tracker:initializeAndTrackMemory
VK_WHOLE_SIZE is ~0ull. If this were passed as `size`, we'd try to allocate ~1ull
bytes, and then memset them all to 0xb. This tends to explode.
Tobin Ehlis [Wed, 13 Jan 2016 21:45:14 +0000 (14:45 -0700)]
layers: MR129, Remove incorrect asserts from param_checker and object_tracker
For apps that run with multiple instances, it's perfectly valid to have instances
remaining at DestroyInstace() time so removing that assert from param_checker.
Also, the assert appears to have been cut-and-pasted into DestroyDevice of both
param_checker and object_tracker. The same logic applies for apps that use
multiple devices. Running vulkancts with layers enabled found these issues.
Jon Ashburn [Wed, 13 Jan 2016 19:51:43 +0000 (12:51 -0700)]
loader: Add support for implicit layer device extensions enumeration
Partial fix for Bugzilla #15367. Need to do similar things for instance
extensions.
Conflicts:
loader/loader.c
Jon Ashburn [Tue, 12 Jan 2016 16:55:14 +0000 (09:55 -0700)]
loader: Fix so unwrapped instance gets used for layer instance extension dispatch
Conflicts:
loader/trampoline.c
David Pinedo [Wed, 13 Jan 2016 23:22:19 +0000 (16:22 -0700)]
Windows RT Installer: Fix layer reg entry setup, no layers we being installed
Jon Ashburn [Wed, 13 Jan 2016 19:55:12 +0000 (12:55 -0700)]
demos: Remove the message box dialog for errors in vulkaninfo
Mark Lobodzinski [Wed, 13 Jan 2016 17:36:44 +0000 (10:36 -0700)]
demos: Fix vulkaninfo version reporting error
David Pinedo [Tue, 12 Jan 2016 23:14:53 +0000 (16:14 -0700)]
Windows RT Installer: add buildno to version
Chris Forbes [Tue, 12 Jan 2016 20:29:31 +0000 (09:29 +1300)]
layers: MR128, Don't complain about declarations without Builtin or Location
This is a stopgap until we have proper interface block analysis landed.
For now, this just suppresses the false positives. A correct SPIRV
module will not hit this path for anything other than interface blocks.
Conflicts:
layers/draw_state.cpp
Chris Forbes [Thu, 17 Dec 2015 04:10:19 +0000 (17:10 +1300)]
layers: MR128, Fix mismatched new[]/delete in validate_pipeline_shaders
In draw_state layer.
Chris Forbes [Thu, 17 Dec 2015 04:07:15 +0000 (17:07 +1300)]
layers: MR128, Revert "layers: Work around Windows release build crash in cube"
This reverts commit
470d0226d222ac1532a88e5c5f0b78b7a391f7ce.
Conflicts:
layers/draw_state.cpp
Mark Lobodzinski [Tue, 12 Jan 2016 20:18:44 +0000 (13:18 -0700)]
layers: LX273, Fix accessMask validation for depth/stencil input attachments
When using an imageView of a depth/stencil image to populate a descriptor set,
the aspectMask must only include one bit and selects whether the imageView is
used for depth reads or stencil reads.
GregF [Tue, 12 Jan 2016 19:57:45 +0000 (12:57 -0700)]
spirv-tools: update version for SDK 1.0 IHV
Jon Ashburn [Tue, 12 Jan 2016 18:33:33 +0000 (11:33 -0700)]
header: move to version 1.0.1
Jon Ashburn [Tue, 12 Jan 2016 16:55:14 +0000 (09:55 -0700)]
loader: Fix so unwrapped instance gets used for layer instance extension dispatch
Tony Barbour [Tue, 12 Jan 2016 18:16:52 +0000 (11:16 -0700)]
layers: Remove extra subpass increment in draw state
Jeremy Hayes [Tue, 12 Jan 2016 16:30:00 +0000 (09:30 -0700)]
loader: update linux version to 1.
Mark Lobodzinski [Mon, 11 Jan 2016 16:46:09 +0000 (09:46 -0700)]
layers: Gitlab 65, Add image layout extension enum to paramchecker validation
Mark Lobodzinski [Mon, 11 Jan 2016 23:50:30 +0000 (16:50 -0700)]
layers: Fix image layer format mutability validation
Tobin Ehlis [Mon, 11 Jan 2016 20:18:40 +0000 (13:18 -0700)]
layers: MR127, Update DrawState handling of non-updated descriptors
At CmdBindDescriptorSets() time, only warn on non-updated descriptor if that descriptor is not empty.
At draw time, if a descriptor is being used and it has not been updated, trigger an error.
Jon Ashburn [Mon, 11 Jan 2016 21:21:31 +0000 (14:21 -0700)]
loader: Update README.md for ICD<->loader interface
Jon Ashburn [Mon, 11 Jan 2016 21:41:35 +0000 (14:41 -0700)]
loader: Fix old ICD interface to not use vkGetInstanceProcAddr(NULL,)
GregF [Mon, 11 Jan 2016 21:03:24 +0000 (14:03 -0700)]
glslang: upgrade glslang version for SDK 1.0 IHV
Jon Ashburn [Mon, 11 Jan 2016 20:24:16 +0000 (13:24 -0700)]
header: Move to version 1.0.0 from 0.222
Whitespace only change.
Jon Ashburn [Mon, 11 Jan 2016 20:12:43 +0000 (13:12 -0700)]
misc: Move to Vulkan header version 0.222
Norbert Nopper [Mon, 11 Jan 2016 07:55:57 +0000 (08:55 +0100)]
layers: Gitlab 126, Fix for swapchain layer which was checking wrong pointer
Mark Lobodzinski [Fri, 8 Jan 2016 18:07:56 +0000 (11:07 -0700)]
layers: LX264, Validate immutable format bit in image layer
Mark Young [Fri, 8 Jan 2016 00:16:39 +0000 (17:16 -0700)]
Fixes: Fixed compiler warning about &
Someone checked in a bitwise & instead of a boolean comparison &&.
Mark Young [Thu, 7 Jan 2016 22:41:43 +0000 (15:41 -0700)]
Fixes: More compilation warning fixes
This fixes the main issues with VkBool32 versus bool.
Mark Lobodzinski [Fri, 8 Jan 2016 21:52:49 +0000 (14:52 -0700)]
layers: Gitlab 41 & 61, Fix invalid descriptor dereferences in helper codegen
Descriptor type arrays should only be dereferenced depending on the specified
descriptorType parameter. Caused crashes in api_dump.
Norbert Nopper [Fri, 8 Jan 2016 17:35:19 +0000 (18:35 +0100)]
layers: MR124, Fix semaphore ordering validation in mem tracker layer
Mark Lobodzinski [Fri, 8 Jan 2016 00:26:05 +0000 (17:26 -0700)]
layers: LX263, Validate minimum imageArrayLayers value in swapchain layer
Jon Ashburn [Thu, 7 Jan 2016 23:13:06 +0000 (16:13 -0700)]
layers: Fix unique_object gpa function; no intercept of func without an
NDO
Also fix bug in list of KHR functions for table.
Mark Lobodzinski [Tue, 5 Jan 2016 23:38:09 +0000 (16:38 -0700)]
layers: LX256, Suppress warnings on pre-signaled fences in MemTracker
Jon Ashburn [Thu, 7 Jan 2016 22:21:14 +0000 (15:21 -0700)]
misc: make sure host memory alignment is a power of two
Use sizeof(int) as a default generally. Is that reasonable?
Tobin Ehlis [Tue, 5 Jan 2016 17:33:58 +0000 (10:33 -0700)]
layers: MR123, Improved ObjectTracker codegen
Updated ObjectTracker to correctly generate the required permutations of validate_<object>()
functions. This removed some hand-coded functions from the header. Updated the codegen for
ObjectTracker to use improved dict from UniqueObjects that eliminates repeated "if" and
"for" blocks. Also updated valid null object checking to limit valid null object cases
to appropriate API calls.
Ian Elliott [Thu, 7 Jan 2016 17:55:02 +0000 (10:55 -0700)]
swapchain: MR122, queueFamilyIndexCount must be > 1 for CONCURRENT
This was clarified via "<validity>" language in the "vk.xml" file. It is the
case for VkBufferCreateInfo::queueFamilyIndexCount, and MR 995 will make it
consistent for VkSwapchainCreateInfoKHR::queueFamilyIndexCount.
Mike Stroyan [Thu, 7 Jan 2016 17:05:21 +0000 (10:05 -0700)]
layers: MR121, Use _BitScanForward for u_ffs on windows
The linux ffs function scans from least-significant-bit.
To match that, u_ffs on windows should use _BitScanForward instead of
_BitScanReverse.
Mark Lobodzinski [Thu, 7 Jan 2016 20:18:42 +0000 (13:18 -0700)]
layers: Output function names for deferred memory validation checks
Michael Lentine [Thu, 7 Jan 2016 01:17:59 +0000 (19:17 -0600)]
layers: MR119, Defer validation until command buffer has been submitted
Conflicts:
layers/mem_tracker.cpp
Jon Ashburn [Thu, 7 Jan 2016 18:53:56 +0000 (11:53 -0700)]
misc: Remove the unique_objects layer from being enabled in tests and demos
Tobin Ehlis [Wed, 6 Jan 2016 15:48:41 +0000 (08:48 -0700)]
tests: Fix a couple of test bugs revealed by unique_objects layer
Tobin Ehlis [Tue, 5 Jan 2016 23:34:59 +0000 (16:34 -0700)]
layers: UniqueObject updates based on review
Remove all of the DebugReport stuff, this layer doesn't use it.
Update some corner cases to make sure objects are correctly restored.
Tobin Ehlis [Tue, 5 Jan 2016 16:46:03 +0000 (09:46 -0700)]
layers: Updated UniqueObjects with improved codegen
Updated UniqueObjects object-use data struct so that generated code is much cleaner and handles a few of the more complex functions that were previously hand-coded. New data struct eliminates repeat "if" and "for" blocks.
Tobin Ehlis [Tue, 8 Dec 2015 17:50:10 +0000 (10:50 -0700)]
layers: Add UniqueObjects layer to wrap objects in unique ptr
This layer should sit at the BOTTOM of the layer stack (closest to the driver, furthest from the app). It interecpts all created non-dispatchable-objects and wraps them in a struct, returning that struct ptr up the chain.
For all API calls that use NDOs, this layer will unwrap them, and overwrite the wrapped handle with the actual handle before passing it down. Then, after calling down to the driver, the layer will re-overwrite the NDO handles with the original, wrapped handle.
When an NDO object is destroyed, the actual handle is passed down, then the wrap struct object is destroyed.
David Pinedo [Thu, 7 Jan 2016 18:12:23 +0000 (11:12 -0700)]
update_external_sources: backed out last commit, broke win64 build
Tobin Ehlis [Wed, 6 Jan 2016 17:27:47 +0000 (10:27 -0700)]
layers: Minor fixes to draw_state for new semaphore checks
Conflicts:
layers/vk_validation_layer_details.md
Michael Lentine [Wed, 6 Jan 2016 16:05:48 +0000 (10:05 -0600)]
layers: MR118, Add validation for semaphore ordering
Conflicts:
layers/draw_state.cpp
layers/draw_state.h
Michael Lentine [Tue, 29 Dec 2015 22:05:27 +0000 (16:05 -0600)]
layers: MR109, Fix second command buffer validation
Conflicts:
layers/draw_state.cpp
Mark Lobodzinski [Thu, 7 Jan 2016 17:04:02 +0000 (10:04 -0700)]
layers: MR108, Merge related updates and fixes
Also removed obsolete query test case from vkbase test
Michael Lentine [Tue, 29 Dec 2015 20:12:11 +0000 (14:12 -0600)]
layers: MR108, Validate get queries
Conflicts:
layers/draw_state.cpp
Jon Ashburn [Thu, 7 Jan 2016 16:46:26 +0000 (09:46 -0700)]
icd: Use new loader interface for finding ICD entry points Remove library exports on all Vulkan entry points but vk_icdGetInstanceProcAddr.
Jon Ashburn [Thu, 7 Jan 2016 16:44:27 +0000 (09:44 -0700)]
loader: Find ICD entrypoints via vk_icdGetInstanceProcAddr first in ICD library
Also support prior method (now deprecated) of looking up vkGetInstanceProcAddr.
But now other globals are gotten from GetInstanceProcAddr calls.
Mark Young [Thu, 7 Jan 2016 16:48:47 +0000 (09:48 -0700)]
Fixes: Fixed more Visual Studio warnings which appeared with the merge
Some new warnings popped up with the latest merge.
Mark Young [Wed, 6 Jan 2016 23:17:03 +0000 (16:17 -0700)]
Fixes: Fixed a missing file change with Visual Studio warnings.
Fixed more Visual Studio warnings so we have a clean compilation.
Mark Young [Wed, 6 Jan 2016 21:26:04 +0000 (14:26 -0700)]
Fixes: Fixed Visual Studio warnings during compilation.
Changes to properly detect proper Visual Studio and fix build warnings.
Mark Young [Wed, 6 Jan 2016 22:58:55 +0000 (15:58 -0700)]
Fixes: Automatically detect Visual Studio version on Windows
Automatically detect and use the correct version of Visual Studio/MSBuild for Cmake.
Karl Schultz [Thu, 7 Jan 2016 16:03:40 +0000 (11:03 -0500)]
Added X server DRI3 config info for Ubuntu 14.04.3 LTS.
David Pinedo [Thu, 7 Jan 2016 03:30:34 +0000 (20:30 -0700)]
draw_state layer: add validateAndIncrementResources return value
David Pinedo [Wed, 6 Jan 2016 23:34:27 +0000 (16:34 -0700)]
Bump Windows ABI to 1
Mark Lobodzinski [Wed, 6 Jan 2016 22:26:17 +0000 (15:26 -0700)]
layers: Update layer details doc for new validation errors
Michael Lentine [Mon, 28 Dec 2015 16:17:32 +0000 (10:17 -0600)]
layers: MR107, Verify that clear is not used when first use is shader read
Conflicts:
layers/mem_tracker.h
Mark Lobodzinski [Wed, 6 Jan 2016 21:58:59 +0000 (14:58 -0700)]
layers: MR82, merge-related fixes
Michael Lentine [Sat, 31 Oct 2015 00:57:32 +0000 (17:57 -0700)]
layers: MR82, Add lifetime validation for buffers to DrawState
Conflicts:
layers/draw_state.cpp
layers/draw_state.h
Mark Lobodzinski [Wed, 6 Jan 2016 19:56:29 +0000 (12:56 -0700)]
layers: LX259, Clarify draw_state accessMask warnings
Ian Elliott [Wed, 6 Jan 2016 00:41:43 +0000 (17:41 -0700)]
Swapchain: Reconcile MD file with Swapchain layer.
Conflicts:
layers/vk_validation_layer_details.md
Ian Elliott [Tue, 5 Jan 2016 22:00:26 +0000 (15:00 -0700)]
Bug 15392 (Swapchain): Don't check VkPresentInfoKHR's waitSemaphoreCount & pWaitSemaphores
The VkPresentInfoKHR's waitSemaphoreCount may be zero and pWaitSemaphores may
be NULL. These are optional values.
Ian Elliott [Tue, 5 Jan 2016 21:41:45 +0000 (14:41 -0700)]
Swapchain: Use an INFO instead of an ERROR for when pNext is non-NULL.
This is a compromise. Currently, this is an error situation. However, another
extension could be added that uses pNext, and then if the Swapchain layer isn't
updated, a false-error situation could occur. By using an INFO message, the
user is still alerted of the possibility of a problem, but won't be annoyed in
the case of a new extension.
Ian Elliott [Tue, 5 Jan 2016 21:28:32 +0000 (14:28 -0700)]
Swapchain: Change way p*Count is checked--make sure not bigger than should be.
Ian Elliott [Tue, 5 Jan 2016 21:11:03 +0000 (14:11 -0700)]
Swapchain: Only check that queueFamilyIndexCount is greater than 0.
From review feedback. We're not sure, and so we won't check that it is greater
than 1.
Ian Elliott [Tue, 5 Jan 2016 21:03:16 +0000 (14:03 -0700)]
Swapchain: Update my authorship to include Google.
Ian Elliott [Tue, 5 Jan 2016 20:06:48 +0000 (13:06 -0700)]
Swapchain: No longer validate VkSwapchainKHR (object_track will do) ...
Actually, leave one VkSwapchainKHR check in. This is checking the
pCreateInfo->oldSwapchain value, which I'm not sure object_track will look
for). Can remove this later, if object_track does check this.
Ian Elliott [Tue, 5 Jan 2016 20:00:50 +0000 (13:00 -0700)]
Swapchain: No longer validate VkDevice (object_track will do).
Ian Elliott [Tue, 5 Jan 2016 19:51:03 +0000 (12:51 -0700)]
Swapchain: No longer validate VkPhysicalDevice (object_track will do).
Ian Elliott [Tue, 5 Jan 2016 19:18:50 +0000 (12:18 -0700)]
Swapchain: No longer validate VkInstance (object_track will do).
Ian Elliott [Tue, 5 Jan 2016 19:03:06 +0000 (12:03 -0700)]
Swapchain: Remove tracking/validation of VkSurfaceKHR object.
The object_track layer will do this.
Ian Elliott [Tue, 5 Jan 2016 18:24:56 +0000 (11:24 -0700)]
Bug 15383 (Swapchain): Treat VkSurfaceKHR as opaque--don't look inside it.
Ian Elliott [Mon, 4 Jan 2016 21:10:30 +0000 (14:10 -0700)]
Swapchain: Track/use enablement of the WSI platform extensions.
The old code either wasn't checking, or was using the enablment of the surface
extension instead of the correct platform extension