platform/upstream/Vulkan-Tools.git
8 years agolayers: Use tmp callback for msgs during vk{Create|Destroy}Instance().
Ian Elliott [Thu, 28 Apr 2016 15:08:13 +0000 (09:08 -0600)]
layers: Use tmp callback for msgs during vk{Create|Destroy}Instance().

This is implements some relatively-new functionality of the VK_EXT_debug_report
extension.  An application can pass VkDebugReportCallbackCreateInfoEXT structs
on the pNext chain given to vkCreateInstance(), in order to setup one or more
callbacks that can be used during vk{Create|Destroy}Instance().  These special,
"temporary callbacks" allow messages (e.g. errors) to be logged during the time
when the debug_report extension is normally not setup.

A set of utilities copy VkDebugReportCallbackCreateInfoEXT structs from the
pNext chain given to vkCreateInstance().  These utilities are used by the
validation layers that may have messages (e.g. errors) during
vk{Create|Destroy}Instance().

8 years agolayers: Fix -Wunused-result warning for vasprintf
Chris Forbes [Thu, 28 Apr 2016 02:27:19 +0000 (14:27 +1200)]
layers: Fix -Wunused-result warning for vasprintf

In case of allocation failure, glibc's vasprintf doesn't make any
guarantees about the ptr -- the return value is the only way to handle
this safely.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add copy constructors and initializers for safe_* structs
Tobin Ehlis [Tue, 26 Apr 2016 20:17:19 +0000 (14:17 -0600)]
layers: Add copy constructors and initializers for safe_* structs

Any safe struct for which default copy constructor was incorrect was
broken (anything with embedded ptrs). This change fixes that by adding
correct copy constructors. Also had to add initializers that can take
object ptrs in order for copy constructor code to work.

8 years agoFix android build for CV -> spirv-tools dep
Chris Forbes [Wed, 27 Apr 2016 22:09:11 +0000 (10:09 +1200)]
Fix android build for CV -> spirv-tools dep

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Integrate SPIRV-Tools validator
Chris Forbes [Sun, 3 Apr 2016 22:48:35 +0000 (10:48 +1200)]
layers: Integrate SPIRV-Tools validator

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: link core_validation against spirv-tools
Chris Forbes [Sun, 3 Apr 2016 21:52:11 +0000 (09:52 +1200)]
layers: link core_validation against spirv-tools

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agodemos: Acquire WSI image before changing layout
Tony Barbour [Tue, 26 Apr 2016 17:13:48 +0000 (11:13 -0600)]
demos: Acquire WSI image before changing layout

Change-Id: I1606bd92bcabb40156f8745b58596ae8f1ec429d

8 years agolayers: Emit safe_*::ptr() members to eliminate some cast noise
Chris Forbes [Wed, 27 Apr 2016 02:00:44 +0000 (14:00 +1200)]
layers: Emit safe_*::ptr() members to eliminate some cast noise

These casts were annoying noise, and uncheckable. Move them into the
generator where we know the one type that makes sense.

Drop spurious reinterpret_cast of stage create info to itself -- it's
all raw types once the root pCreateInfo is unwrapped.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add missing compute stage sType check
Dustin Graves [Mon, 25 Apr 2016 21:54:16 +0000 (15:54 -0600)]
layers: Add missing compute stage sType check

The parameter_validation code generator was only generating sType checks
for pointers to structures.  There is one case where a non-pointer struct
parameter needs to be validated: the VkComputePipelineCreateInfo::stage
member of the vkCreateComputePipelines pCreateInfos parameter.  The code
generator has been updated to handle this case.

Change-Id: I1e695fcc875574eae94912ceb6338428d7ed8b49

8 years agoupdate README to refer to COPYRIGHT.txt
Jon Ashburn [Tue, 26 Apr 2016 23:00:03 +0000 (17:00 -0600)]
update README to refer to COPYRIGHT.txt

Change-Id: I32685ef02c245557315a3e44c65eb8c8cf62f9f4

8 years agoloader: update doc to remove sentence allowing layers to skip
Jon Ashburn [Tue, 26 Apr 2016 18:02:58 +0000 (12:02 -0600)]
loader: update doc to remove sentence allowing layers to skip
using app provided allocation callbacks

Change-Id: Ib293934b4574864a78f975aba52c9aa5c0a24779

8 years agolayers: Update layer README file for clarity and bugfixes
Mark Lobodzinski [Tue, 26 Apr 2016 22:02:19 +0000 (16:02 -0600)]
layers: Update layer README file for clarity and bugfixes

Change-Id: I544f72fde8cbbe4d57679c692887fd262073374f

8 years agolayers: Android DescriptorSetLayout class build fixes
Tobin Ehlis [Tue, 26 Apr 2016 22:00:56 +0000 (16:00 -0600)]
layers: Android DescriptorSetLayout class build fixes

8 years agolayers: Add interface to get descriptor type from layout's global index
Tobin Ehlis [Tue, 26 Apr 2016 19:09:51 +0000 (13:09 -0600)]
layers: Add interface to get descriptor type from layout's global index

We match up dynamic descriptor offsets one at a time so added an interface
to get descriptor type from the global index in addition to the original
pBinding index. This allows us to iterate over all of the descriptors in a
set and easily grab their type.

8 years agolayers: Fix object lifetime bugs in DescriptorSetLayout
Tobin Ehlis [Tue, 26 Apr 2016 17:06:05 +0000 (11:06 -0600)]
layers: Fix object lifetime bugs in DescriptorSetLayout

Incomplete copy construction of DescriptorSetLayout and safe_* types
causes embedded pointers (such as pImmutableSamplers) to become invalid
before they should. Fixing this for now by moving DescriptorSetLayout
and its embedded safe_* struct to ptrs within their containers and
explicitly deleting.

8 years agowinrtinstaller: update license
David Pinedo [Tue, 26 Apr 2016 17:30:13 +0000 (11:30 -0600)]
winrtinstaller: update license

8 years agolayers: Break out VkDescriptorSetLayout code into its own class
Tobin Ehlis [Thu, 21 Apr 2016 20:19:26 +0000 (14:19 -0600)]
layers: Break out VkDescriptorSetLayout code into its own class

This is the start of a refactor to pull code out of core_validation.cpp
into its own separate classes. I'm starting with descriptor set code as
it isolates reasonably well and it's old and could use some updating anyway.

For this first piece I've broken VkDescriptorSetLayout into its own
class currently called DescriptorSetLayout. I don't know if that's a great
name as it's close to VkDescriptorSetLayout, so I'm open to changing it.
Provided a brief class description in comment in new file descriptor_sets.h.

I made the class interfaces based on what other code is currently using.
I'm planning to pull more descriptor set code into its own classes and I
anticipate that will cause some flux in the class interfaces until most
of the work is done.

8 years agoloader: ghlvl#180 Support a ICD interface version negotiation
Jon Ashburn [Mon, 25 Apr 2016 17:09:37 +0000 (11:09 -0600)]
loader: ghlvl#180 Support a ICD interface version negotiation

Change-Id: I2e5c3717dd7fa86992f617bcc0f93de8ba60759e

8 years agoloader: update spec doc for ICD interface versioning
Jon Ashburn [Fri, 22 Apr 2016 20:40:07 +0000 (14:40 -0600)]
loader: update spec doc for ICD interface versioning

Change-Id: I7c149a4542623e537b44720766006652abe33948

8 years agojson: Update to version 11.
Karl Schultz [Mon, 25 Apr 2016 16:52:21 +0000 (10:52 -0600)]
json: Update to version 11.

Change-Id: Ifcdd5423ab03110326897dd9cda272eda05acc01

8 years agolayers: GH384 Fix to correctly recognize immutable samplers
Tobin Ehlis [Fri, 22 Apr 2016 15:16:20 +0000 (09:16 -0600)]
layers: GH384 Fix to correctly recognize immutable samplers

Actual fix this time. If a binding is immutable samplers
skip over it when verifying descriptor bindings.

8 years agoMerge pull request #342 from KhronosGroup/update_toolchain_20160414
greg-lunarg [Fri, 22 Apr 2016 20:28:25 +0000 (14:28 -0600)]
Merge pull request #342 from KhronosGroup/update_toolchain_20160414

toolchain: Bump everything to pull in required SPIR-V tools revision

8 years agotoolchain: Bump everything to pull in required SPIR-V tools revision
Cody Northrop [Thu, 14 Apr 2016 17:18:30 +0000 (11:18 -0600)]
toolchain: Bump everything to pull in required SPIR-V tools revision

Encompasses pull request #261 from Chris.

Also gets things building again reflecting upstream changesi, mainly
HLSL libs for glslang.

Desktop build/test results w/ update_external_sources.sh/bat
 Windows on Skylake: _run_all_tests.ps1, demos with --validate
 Ubuntu on Skylake: vk_layer_validation_tests, cube --validate

Android build/test results w/ update_external_sources_android.sh/bat:
 Windows: VkLayerValidationTests pass
 OSX: VkLayerValidationTests pass
 Ubuntu: VkLayerValidationTests pass

8 years agoheader: Update to version 1.0.11
Jon Ashburn [Fri, 22 Apr 2016 14:49:39 +0000 (08:49 -0600)]
header: Update to version 1.0.11

No functional change.

Change-Id: I190a2af5de66686f070b093bf7bd1459afb9da64

8 years agodoc: remove rules on vkEnumerate*Properties for layers
Chia-I Wu [Fri, 22 Apr 2016 00:12:19 +0000 (08:12 +0800)]
doc: remove rules on vkEnumerate*Properties for layers

8 years agodoc: formalize the current loader-layer interface
Chia-I Wu [Tue, 19 Apr 2016 22:23:24 +0000 (06:23 +0800)]
doc: formalize the current loader-layer interface

Expand the section "Discovery of layer entry points" into "Layer Library
Interface".  In general, the new section defines an interface that allows
a loader to discover and insert layers while staying compliant.  Other
sections have additional guidelines for layers to follow.

8 years agodemos/smoke: Fix validation errors in push-constants mode.
Karl Schultz [Thu, 21 Apr 2016 22:45:12 +0000 (16:45 -0600)]
demos/smoke:  Fix validation errors in push-constants mode.

Change-Id: I48e736ef1c777af831d7e888c8ac6e1647d1f6b2

8 years agolayers: Reorder to prevent Null deref; add test
Karl Schultz [Thu, 21 Apr 2016 21:57:51 +0000 (15:57 -0600)]
layers: Reorder to prevent Null deref; add test

Found by running Hologram with validation and push constants
using args "-p -v".
Hologram is issuing a memory barrier in the push constants
mode.  This will be fixed in Hologram, but validation should
not be crashing.

Change-Id: I1e76c3fca0152fc3bf8c1de3db3b044f650c202f

8 years agoloader: fix LX475
Jeremy Hayes [Thu, 21 Apr 2016 19:19:41 +0000 (13:19 -0600)]
loader: fix LX475

Silently ignore VK_NULL_HANDLE in DestroyInstance/Device.

Change-Id: I96305088db75932b6f3f824852db9c72b8352120

8 years agolayers: Add fix for lx172 to catch invalid line widths.
Mark Young [Thu, 31 Mar 2016 20:56:43 +0000 (14:56 -0600)]
layers: Add fix for lx172 to catch invalid line widths.

Validate line wdith in both vkCreateGraphicsPipelines and in
vkCmdSetLineWidth.  Also, add a warning in vkCmdSetLineWidth
if the user calls it but doesn't enable dynamic line width.

Also, updated demos to fix missing lineWidth setting as well.

Change-Id: I62118da9cb5282fcc22b1506e9be2db82b5f4a40

8 years agolayers: Fix cmd buffer tracking.
Michael Lentine [Thu, 21 Apr 2016 04:01:26 +0000 (23:01 -0500)]
layers: Fix cmd buffer tracking.

8 years agolayers: Cleanup core_validation fence tracking
Tobin Ehlis [Mon, 18 Apr 2016 21:45:20 +0000 (15:45 -0600)]
layers: Cleanup core_validation fence tracking

There were two separate mechanisms for tracking fence state in core_validation.
This change removes the last[Retired|Submitted]Id per queue method.
We also no longer over-write the fence createInfo to track fence state, but
just use the needsSignaled bool for all fence state tracking.
Finally, there was a validation test/check flagging an error if an
unsignaled fence was reset, but this is valid based on the spec so removed
the check and changed test to be a positive test expected to pass.

8 years agolayers: Consider #locations consumed by large VkFormats
Chris Forbes [Thu, 21 Apr 2016 03:00:58 +0000 (15:00 +1200)]
layers: Consider #locations consumed by large VkFormats

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Consider element type bit width for #locations consumed.
Chris Forbes [Thu, 21 Apr 2016 02:46:48 +0000 (14:46 +1200)]
layers: Consider element type bit width for #locations consumed.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agodemos: Add xlib wsi path to cube
Tony Barbour [Tue, 19 Apr 2016 16:57:58 +0000 (10:57 -0600)]
demos: Add xlib wsi path to cube

Change-Id: I8df42b71a40318b6d46a6b65cc9d8060a8f912a8

8 years agoloader: ghlvl 361, Simplify library resource handling
Jon Ashburn [Wed, 20 Apr 2016 19:21:17 +0000 (13:21 -0600)]
loader: ghlvl 361, Simplify library resource handling

Layer and ICD libraries are opened and closed as needed. No ref counting,
no knowledge of if a library contains multiple layers or ICDs.

Change-Id: Ie88b671cd1671187a42d3d838d20e3af1afc67cc

8 years agoandroid: Unify source used for build.gradle
Cody Northrop [Wed, 20 Apr 2016 01:01:55 +0000 (19:01 -0600)]
android: Unify source used for build.gradle

In previous commit we modified build.gradle to be cross platform,
so we can stop using the windows specific version.

8 years agogradle: Workaround for clang on Windows problems
Cody Northrop [Tue, 19 Apr 2016 20:55:13 +0000 (14:55 -0600)]
gradle: Workaround for clang on Windows problems

Use gcc instead if building on Windows.

8 years agopython: Update script to include all platforms when generating ifdef code
Cody Northrop [Tue, 19 Apr 2016 16:37:36 +0000 (10:37 -0600)]
python: Update script to include all platforms when generating ifdef code

This commit cleans up the platform detection code that was emitting some
(but not all) ifdef wrappers around platform specific code.  It changes
the logic to wrap all the functions that are platform specific.  This
allows us to use these generated files on multiple platforms, not just
the platform is was generated on.

8 years agolayers: Fix for clearing layouts and cmdbuffers.
Michael Lentine [Wed, 20 Apr 2016 16:39:50 +0000 (11:39 -0500)]
layers: Fix for clearing layouts and cmdbuffers.

8 years agolayers: Add handle NULL checks to codegen
Dustin Graves [Tue, 19 Apr 2016 00:33:21 +0000 (18:33 -0600)]
layers: Add handle NULL checks to codegen

Add support for validating that required handle parameters are not
specified as VK_NULL_HANDLE to the parameter validation layer's code
generator.
 - Add new parameter validation utility functions to validate required
   handles and arrays of handles.
 - Add new parameter validation layer entrypoints for functions that
   previously had no parameters to validate.
 - Add handle validation logic to the parameter validation code generator.

Change-Id: I7a5680954245db4c1b12587f78e30e17c3903d6c

8 years agolayers: Add missing 64bpc formats to get_format_type
Chris Forbes [Wed, 20 Apr 2016 02:22:07 +0000 (14:22 +1200)]
layers: Add missing 64bpc formats to get_format_type

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Fix get_format_type for VK_FORMAT_A8R8G8B8_{S,U}INT_PACK32
Chris Forbes [Wed, 20 Apr 2016 02:16:10 +0000 (14:16 +1200)]
layers: Fix get_format_type for VK_FORMAT_A8R8G8B8_{S,U}INT_PACK32

Fixes GH #330.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: block members do not express extra array level in member type
Chris Forbes [Wed, 20 Apr 2016 01:34:27 +0000 (13:34 +1200)]
layers: block members do not express extra array level in member type

Fixes GH #377.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: GH384 Fix descriptor update check for immutable samplers
Tobin Ehlis [Tue, 19 Apr 2016 14:15:03 +0000 (08:15 -0600)]
layers: GH384 Fix descriptor update check for immutable samplers

If a descriptor is an immutable sampler of type VK_DESCRIPTOR_TYPE_SAMPLER
then it doesn't need to be explicitly updated so don't flag errors in this case.

8 years agowinrtinstaller: change formatting in RT rtf license
David Pinedo [Wed, 20 Apr 2016 02:34:59 +0000 (20:34 -0600)]
winrtinstaller: change formatting in RT rtf license

8 years agowinrtinstaller: formatting of license files, make them more readable
David Pinedo [Tue, 19 Apr 2016 22:16:50 +0000 (16:16 -0600)]
winrtinstaller: formatting of license files, make them more readable

8 years agowinrtinstaller: fix COPYRIGHT.txt filename
David Pinedo [Tue, 19 Apr 2016 19:36:49 +0000 (13:36 -0600)]
winrtinstaller: fix COPYRIGHT.txt filename

8 years agowinrtinstaller: get LICENSE.txt file from LVL
David Pinedo [Tue, 19 Apr 2016 18:52:10 +0000 (12:52 -0600)]
winrtinstaller: get LICENSE.txt file from LVL

8 years agodemos: Fix paths in gradle file.
Michael Lentine [Tue, 19 Apr 2016 14:27:01 +0000 (09:27 -0500)]
demos: Fix paths in gradle file.

8 years agomisc: Update licenses to Apache 2.0
Jon Ashburn [Tue, 19 Apr 2016 17:30:31 +0000 (11:30 -0600)]
misc: Update licenses to Apache 2.0

Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97

8 years agolayers: LX468, Prevent bad core_validation error message
Mark Lobodzinski [Tue, 12 Apr 2016 16:41:59 +0000 (10:41 -0600)]
layers: LX468, Prevent bad core_validation error message

Properly track commandBuffer/FrameBuffer references.

Change-Id: Ibbc078b582b204bee26cdc510575c57023cf9d6b

8 years agoUpdate typo in doc
ttyio [Sun, 10 Apr 2016 14:09:44 +0000 (22:09 +0800)]
Update typo in doc

8 years agolayers: Fix object_tracker bugs
Tobin Ehlis [Mon, 18 Apr 2016 21:40:59 +0000 (15:40 -0600)]
layers: Fix object_tracker bugs

A couple of bugs in object_tracker hand-coded sections that MarkY tracked down.
In DestroyInstance case we were attempting to delete wrong map key.
Then, for vkDestroyCommandPool we were using wrong function to clean-up the
command buffers in that pool which would result in occassional crashes.

8 years agodoc: fix typos in doc
David Pinedo [Mon, 18 Apr 2016 22:59:59 +0000 (16:59 -0600)]
doc: fix typos in doc

8 years agolayers: Make logicOp param validation conditional
Dustin Graves [Sat, 16 Apr 2016 00:06:14 +0000 (18:06 -0600)]
layers: Make logicOp param validation conditional

- Only validate that VkPipelineColorBlendStateCreateInfo::logicOp is
  a valid VkLogicOp enumeration value when
  VkPipelineColorBlendStateCreateInfo::logicOpEnable is set to VK_TRUE.
- Remove redundant VkPipelineColorBlendStateCreateInfo validation (hand
  written code replaced by generated code).

Change-Id: I075c58342678219c5ed1dd5c401e0da2cea53232

8 years agolayers: Improved generated struct validation code
Dustin Graves [Thu, 14 Apr 2016 21:03:31 +0000 (15:03 -0600)]
layers: Improved generated struct validation code

Improvements to the parameter validation code generator, primarily to
eliminate string concatenations performed when processing structs.  A
validation function was being produced for each struct, which received a
string specifying the name of the struct parameter.  This string was then
concatenated with the names of the struct members.  The struct validation
code is no longer in a separate function, and a single string containing
the full names of each struct member (eg. pCreateInfo->pApplicationInfo)
is created at code generation time.

Change-Id: I2800bfbc26247e4e4c6f8c885c0e7c4b8b3776a2

8 years agolayers: Simplify generated param validation code
Dustin Graves [Mon, 11 Apr 2016 22:06:25 +0000 (16:06 -0600)]
layers: Simplify generated param validation code

- Remove unnecessary conditional checks for input vs. output parameters
  from the generated C++ code.
- Split some generator code into smaller functions.

Change-Id: I32e47d417ab884e5cc0fc7af40cb5657b39c176d

8 years agolayers: core_validation - use std mutex
Jeremy Hayes [Wed, 13 Apr 2016 22:20:24 +0000 (16:20 -0600)]
layers: core_validation - use std mutex

Change-Id: I88af1e86c0ef93dbeab303977b8190ad1968c00d

8 years agolayers: swapchain - use std mutex
Jeremy Hayes [Wed, 13 Apr 2016 17:57:20 +0000 (11:57 -0600)]
layers: swapchain - use std mutex

Change-Id: I2c5584a5d36edc097b061db2e49fba2505bd1d65

8 years agolayers: object_tracker - use std mutex
Jeremy Hayes [Wed, 13 Apr 2016 16:54:17 +0000 (10:54 -0600)]
layers: object_tracker - use std mutex

Change-Id: I5f9ed9dc92daccaada895808e3fea3189ef81212

8 years agolayers: threading - use std mutex
Jeremy Hayes [Tue, 12 Apr 2016 19:48:52 +0000 (13:48 -0600)]
layers: threading - use std mutex

Change-Id: I773ea148807e5b634ad021ea58b001cd3d1bad87

8 years agolayers: image - use std mutex
Jeremy Hayes [Fri, 8 Apr 2016 15:53:54 +0000 (09:53 -0600)]
layers: image - use std mutex

Change-Id: Ie132289c0e601397f54b06c1ef758c65b712f906

8 years agolayers: Correctly remove secondary cmd buffers from in-flight
Tobin Ehlis [Thu, 14 Apr 2016 18:22:03 +0000 (12:22 -0600)]
layers: Correctly remove secondary cmd buffers from in-flight

Secondary command buffers are considered executing, or "in-flight"
at the time they're bound into a primary command buffer. This leads
to a couple of corner case bugs if the primary command buffer is
never submitted on a queue. This change fixes those bugs:

1. If a secondary cmd buffer is being freed and is in the global
in-flight set, remove it if associated primary is not in-flight
2. When a primary cmd buffer is reset, remove its secondary
cmd buffers from in-flight

8 years agolayers: Fix vkResetDescriptorPool
Tobin Ehlis [Fri, 15 Apr 2016 17:59:39 +0000 (11:59 -0600)]
layers: Fix vkResetDescriptorPool

When we reset descriptor pool, need to remove the allocated
descriptors from setMap and free them.

8 years agoRevert "loader: Temp workaround to add WSI surface extensions enumerated."
Jon Ashburn [Fri, 15 Apr 2016 22:24:44 +0000 (16:24 -0600)]
Revert "loader: Temp workaround to add WSI surface extensions enumerated."

This reverts commit 884065fcd89540dca9a710389641bf1c39cedce0.

8 years agoRevert "loader: temp workaround for advertising linux wsi surface extensions"
Jon Ashburn [Fri, 15 Apr 2016 22:24:12 +0000 (16:24 -0600)]
Revert "loader: temp workaround for advertising linux wsi surface extensions"

This reverts commit 23b248d32c943c136589e679e1fcc3444488d906.

8 years agolayers: Update JSON files to 1.0.10
Jon Ashburn [Fri, 15 Apr 2016 22:02:07 +0000 (16:02 -0600)]
layers: Update JSON files to 1.0.10

Change-Id: I2020999bac6090fe40688f977f15c9818b828cf4

8 years agoheader: Update to 1.0.10 header
Jon Ashburn [Fri, 15 Apr 2016 21:51:08 +0000 (15:51 -0600)]
header: Update to 1.0.10 header
No functional changes.

Change-Id: Ia57a172a2ab0c7e082ad30aef64354cd1427b528

8 years agoloader: Remove the default directory paths for ICDs and layers
Jon Ashburn [Fri, 15 Apr 2016 19:19:43 +0000 (13:19 -0600)]
loader: Remove the default directory paths for ICDs and layers

These are not needed since rely on OSes library loader to figure out default path.

Change-Id: Ide5eec4ed4301c51de7dc9171f7e040deb1878e7

8 years agodocs: Add libx11-dev to linux build dependencies
Karl Schultz [Fri, 15 Apr 2016 19:04:05 +0000 (13:04 -0600)]
docs: Add libx11-dev to linux build dependencies

8 years agoloader: Run clang-format
Jon Ashburn [Fri, 15 Apr 2016 15:25:03 +0000 (09:25 -0600)]
loader: Run clang-format

Last several commits to loader weren't run through it.

Change-Id: I512b2df75c7831ee6433e4c60c6664db85184584

8 years agolayers: Fix 32-bit VS2013 build
Dustin Graves [Thu, 14 Apr 2016 23:29:20 +0000 (17:29 -0600)]
layers: Fix 32-bit VS2013 build

Change reinterpret_cast<uint64_t> to reinterpret_cast<uint64_t&> for
unique_objects generated and static code.

Change-Id: I8be5680063ce8a26b58c444e59cb325c4cf6e98b

8 years agoloader: `Remove the ICD and Layers search path for Windows
Piers Daniell [Thu, 14 Apr 2016 22:57:06 +0000 (16:57 -0600)]
loader: `Remove the ICD and Layers search path for Windows

This makes it more like Linux which leaves it up to the system
LoadLibrary() call to find the .dll as specified in the .json files.
Hard-coding "C:" or any other search path creates the possibility of
picking up the wrong .dll. The LoadLibrary() implementation does the
right thing.

Change-Id: I58cbdf230a1e86481067efb4aec03447ee55f1ff

8 years agoloader: dont free and reallocate physical devices
Jeannot Breton [Tue, 12 Apr 2016 20:46:20 +0000 (15:46 -0500)]
loader: dont free and reallocate physical devices

Change-Id: I68ac2681b7c4923213c65dc720f54d81a36c99ef

8 years agolayers: Fix lx474 by adding image extent = 0 validation check.
Mark Young [Mon, 11 Apr 2016 20:26:49 +0000 (14:26 -0600)]
layers: Fix lx474 by adding image extent = 0 validation check.

Check only the valid dimensions for the imageType provided in
the create info.

Change-Id: I11d484caf1085b7b0ae4a402453b5fdcadd7b67d

8 years agolayers: Overhaul unique_objects
Tobin Ehlis [Wed, 13 Apr 2016 18:59:43 +0000 (12:59 -0600)]
layers: Overhaul unique_objects

Unique objects now uses a 64-bit counter as the unique handle returned
to the app. It stores an internal mapping of handles to actual object
ptrs that are used for all non-dispatchable objects. This virtually
eliminates the possibility of having a repeat handle as objects
are created and destroyed.

All counter increments and map accesses are protected by a mutex.

8 years agodemos: Init var in tri.c
Tobin Ehlis [Wed, 13 Apr 2016 18:59:08 +0000 (12:59 -0600)]
demos: Init var in tri.c

8 years agolayers: Remove error when only implicit dependencies are used.
Michael Lentine [Thu, 14 Apr 2016 19:46:28 +0000 (14:46 -0500)]
layers: Remove error when only implicit dependencies are used.

8 years agolayers: Validate ONE_TIME_SUBMIT for secondary cmd buffers
Tobin Ehlis [Thu, 14 Apr 2016 21:44:20 +0000 (15:44 -0600)]
layers: Validate ONE_TIME_SUBMIT for secondary cmd buffers

Previously were only validating *_ONE_TIME_SUBMIT_BIT for primary cmd buffers.
After clarification on spec, moving the check so it will also hit secondary
command buffers.

8 years agolayers: Update core_validation to fix lx265.
Mark Young [Mon, 11 Apr 2016 20:11:46 +0000 (14:11 -0600)]
layers: Update core_validation to fix lx265.

Tobin discovered an issue with my previous change.  This resolves
the issue with the blend state targeting only a specific subpass
and verifying the subpass attachment count matches the blend
attachment count.

Change-Id: Iacdd880dde32267da095a3e9baa9e8eb66fdc760

8 years agolayers: lx464 Add drawtime validation of bound buffer memory.
Mark Young [Mon, 11 Apr 2016 23:45:37 +0000 (17:45 -0600)]
layers: lx464 Add drawtime validation of bound buffer memory.

Add a drawtime check to validate that storage or uniform buffers
have valid memory bound to them at draw time before using.

Change-Id: Ia0a07f221dfcb2ea4315e4f52ee04d7cdda22cf7

8 years agolayers: lx465 update core_validation image layout warning.
Mark Young [Mon, 11 Apr 2016 22:53:53 +0000 (16:53 -0600)]
layers: lx465 update core_validation image layout warning.

If sub-resource data is present, print out that info as part of
the error message when the image layout is incorrect.

Change-Id: Ibd4d95e22d846b823b5c76986e8646624c109bc6

8 years agoloader: Added some missing function entry points to loader_icd_init_entrys.
Petros Bantolas [Thu, 14 Apr 2016 11:50:42 +0000 (12:50 +0100)]
loader: Added some missing function entry points to loader_icd_init_entrys.

KHR_surface, KHR_display extension functions were not exposed properly.
Specifically, added LOOKUP_GIPA entries for:

* GetPhysicalDeviceDisplayPropertiesKHR
* GetDisplayModePropertiesKHR
* CreateDisplayPlaneSurfaceKHR
* GetPhysicalDeviceDisplayPlanePropertiesKHR
* GetDisplayPlaneSupportedDisplaysKHR
* CreateDisplayModeKHR
* GetDisplayPlaneCapabilitiesKHR
* DestroySurfaceKHR

Added missing function declaration DestroySurfaceKHR in loader_icd
struct.

Checking if KHR_surface extension is enabled before proceeding in the
terminator_CreateDisplayPlaneSurfaceKHR definition.

Change-Id: I0599efddedc5064859ae1f4e52bdbbf8788d5c12

8 years agolayers: LX466. Resolution of "Typo in validation layer", human spell checker invoked
Mark Mueller [Thu, 14 Apr 2016 17:01:58 +0000 (11:01 -0600)]
layers: LX466. Resolution of "Typo in validation layer", human spell checker invoked

8 years agolayers: Fix windows build
Mark Lobodzinski [Thu, 14 Apr 2016 17:30:32 +0000 (11:30 -0600)]
layers: Fix windows build

VkObjects should be cast to uint64_t by using 'reinterpret_cast<uint64_t &>'

Change-Id: I403efdf389dad61c373df40c5fa1fbed7cf96abd

8 years agolayers: GH337 Track fence from vkQueueBindSparse
Tobin Ehlis [Thu, 14 Apr 2016 13:02:43 +0000 (07:02 -0600)]
layers: GH337 Track fence from vkQueueBindSparse

Correctly update fence tracking for vkQueueBindSparse() call.

8 years agolayers: replace remaining set with unordered_set
Chris Forbes [Wed, 13 Apr 2016 22:34:17 +0000 (10:34 +1200)]
layers: replace remaining set with unordered_set

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: only construct stringstreams in error paths
Chris Forbes [Wed, 13 Apr 2016 22:30:01 +0000 (10:30 +1200)]
layers: only construct stringstreams in error paths

These are actually stupidly expensive to construct -- with most of the
cost going to the contained std::locale.

Added up to about 6% of profile on my machine in `smoke -s` with
VK_LAYER_LUNARG_core_validation enabled.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Validate correct vkSetEvent() use
Tobin Ehlis [Wed, 13 Apr 2016 22:18:28 +0000 (16:18 -0600)]
layers: Validate correct vkSetEvent() use

Make sure vkSetEvent() is not called on an event that's in use
by and in-flight cmd buffer. Such use violates queue forward progress.

8 years agolayers: Change access bit checks to warnings.
Michael Lentine [Wed, 13 Apr 2016 22:12:57 +0000 (17:12 -0500)]
layers: Change access bit checks to warnings.

8 years agolayers: Include all 4 Linux WSI interfaces
Tony Barbour [Tue, 12 Apr 2016 19:35:51 +0000 (13:35 -0600)]
layers: Include all 4 Linux WSI interfaces

Change-Id: I20b0d64c90e6da940f45b31abf0330b2a415655d

8 years agolayers: Update typo in comment
ttyio [Sun, 10 Apr 2016 14:07:28 +0000 (22:07 +0800)]
layers: Update typo in comment

8 years agolayers: Fix comment indentation & remove tabs
Tobin Ehlis [Wed, 13 Apr 2016 21:15:09 +0000 (15:15 -0600)]
layers: Fix comment indentation & remove tabs

8 years agolayers: cv: get rid of device-scoped current renderpass tracking
Chris Forbes [Wed, 13 Apr 2016 04:56:05 +0000 (16:56 +1200)]
layers: cv: get rid of device-scoped current renderpass tracking

This was completely redundant to the (correct) CB-scoped renderpass
tracking, and only served to break things when different threads
simultaneously recorded command buffers.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Fix vkCreateDescriptorPool max allocation sizes for each type
Norbert Nopper [Tue, 12 Apr 2016 23:08:36 +0000 (01:08 +0200)]
layers: Fix vkCreateDescriptorPool max allocation sizes for each type

VkDescriptorPoolSize array can contain more than one of same VkDescriptorType

8 years agoRevert "layers: LX459,GH#99,#100, Fix semaphore reference count"
Tobin Ehlis [Wed, 13 Apr 2016 20:36:16 +0000 (14:36 -0600)]
Revert "layers: LX459,GH#99,#100, Fix semaphore reference count"

This reverts commit 541bb5afc50581e7c765fc5c05400540369f0044.

Reverting this as the original issue is still present and being worked on
so restoring original state until correct fix is complete.

8 years agolayers: Clean up semaphore state in core_validation
Tobin Ehlis [Tue, 12 Apr 2016 16:49:41 +0000 (10:49 -0600)]
layers: Clean up semaphore state in core_validation

No need to have 3 semaphore states. Killed SemaphoreState struct and
updated all the code to just use the "signaled" bool.

Also minor clean-up of queueMap destroy code.

8 years agolayers: Cleanup of various cmd buffer functions in core_validation
Tobin Ehlis [Mon, 11 Apr 2016 22:39:29 +0000 (16:39 -0600)]
layers: Cleanup of various cmd buffer functions in core_validation

Killed some mem_tracker functions that were doing redundant work.
Removed some calls to checkCBCompleted that were superceded by
validateCommandBuffersNotInUse() calls.
Clarified some "my_data" vars as "dev_data."

8 years agolayers: Cleanup core_validation physical device properties structs
Tobin Ehlis [Mon, 11 Apr 2016 20:49:55 +0000 (14:49 -0600)]
layers: Cleanup core_validation physical device properties structs

Pull physical device memory properties into layer_data and make sure it's
correctly populated at vkCreateDevice() time.
Clarify a few ambiguous "my_data" variables as "dev" or "instance".
Rename physical device properties to be lower case. This is the start of
a slow move to unify code on common standard with lowercase variable names.