platform/upstream/Vulkan-Tools.git
7 years agoloader: Fix loader_extensions codegen for name defs
Mark Lobodzinski [Mon, 27 Mar 2017 21:47:01 +0000 (15:47 -0600)]
loader: Fix loader_extensions codegen for name defs

Codegen attempted to infer name definitions instead of pulling from
the source XML, causing errors in new header updates.

Change-Id: I04e03b45dacf7c943b91e47f6ecffc82354c6f1b

7 years agolayers: Add pNext cycle/redundancy checks to PV
Mark Lobodzinski [Mon, 27 Mar 2017 17:52:02 +0000 (11:52 -0600)]
layers: Add pNext cycle/redundancy checks to PV

Change-Id: I06d311821ef0c10683ad8bdaf076231143cde22f

7 years agoexternals: Update GitHub master commit refs
Mike Weiblen [Mon, 27 Mar 2017 20:54:27 +0000 (14:54 -0600)]
externals: Update GitHub master commit refs

Update commit IDs pointing to external repos:
- glslang_revision
- spirv-tools_revision

Change-Id: I369caf0943c360234854d5ba25e42776417b0e6a

7 years agocube: Remove most DbgMsg usage the VK_GOOGLE_display_timing extension
Ian Elliott [Mon, 27 Mar 2017 20:38:52 +0000 (14:38 -0600)]
cube: Remove most DbgMsg usage the VK_GOOGLE_display_timing extension

The only DbgMsg messages left tell the user, if they use
"--display_timing", whether the functionality is actually being used, or
if the VK_GOOGLE_display_timing extension isn't available.

NOTE: When somebody wants to see all of the DbgMsg messages, they should
use "git revert" with this commit.

7 years agocube: GH1609: Use VK_GOOGLE_display_timing extension
Ian Elliott [Wed, 22 Mar 2017 14:31:27 +0000 (08:31 -0600)]
cube: GH1609: Use VK_GOOGLE_display_timing extension

Show how to use the VK_GOOGLE_display_timing extension (currently, only
available on the Android O release).  Other notes:

- There are many diagnostic DbgMsg()'s, which can help show the usage.
- This includes a port of the Vulkan CTS (dEQP) time code for use in
  cube.
- Added a "--display_timing" command-line option to turn on use of
  VK_GOOGLE_display_timing
- Compiles and runs on Windows, Linux, and Android, but the feature will
  only really be used on systems that support the extension.

7 years agolayers: VK_KHR_maintenance1 false positives
Mike Schuchardt [Tue, 21 Mar 2017 22:33:26 +0000 (16:33 -0600)]
layers: VK_KHR_maintenance1 false positives

Skip checks that no longer apply when VK_KHR_maintenance1 is enabled.

Change-Id: I84d0fe889d0e567045aeb7fa7463dd2ec0d56789

7 years agolayers: Expose core validation extension info
Mike Schuchardt [Tue, 21 Mar 2017 22:30:37 +0000 (16:30 -0600)]
layers: Expose core validation extension info

Change-Id: I94d854ad59d42ea4a0de0b76c7fb3829baf52abb

7 years agolayers: Remove obsolete error check from CV
Mark Lobodzinski [Fri, 24 Mar 2017 21:09:23 +0000 (15:09 -0600)]
layers: Remove obsolete error check from CV

Bad shader capability check is now in the spirv validator.

Change-Id: I3d96f935d0adb7081d6693cfc004ba215391054e

7 years agoexternals: Update GitHub master commit refs
Mike Weiblen [Thu, 23 Mar 2017 20:12:18 +0000 (14:12 -0600)]
externals: Update GitHub master commit refs

Update commit IDs to external repos:
- glslang_revision
- spirv-headers_revision
- spirv-tools_revision

Change-Id: I79aa68a65d7440e4223b38401eef9bbb8d5a959f

7 years agolayers: Consider depth+stencil formats to be both float and uint
Chris Forbes [Fri, 10 Mar 2017 02:01:52 +0000 (15:01 +1300)]
layers: Consider depth+stencil formats to be both float and uint

Depending on which aspect we will consume, these can be either type.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Convert fundamental type enum to bit field
Chris Forbes [Fri, 10 Mar 2017 01:58:08 +0000 (14:58 +1300)]
layers: Convert fundamental type enum to bit field

Some VkFormats can be consumed as multiple types -- specifically,
depth/stencil is either float or uint, depending on which aspect we
consume.

Convert to bitfield, and require intersection rather than equality.
While we're at it, drop out some weird special-casing for unknown
component types-- this is left over from when shader validation was much
less complete.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Removing redundant if in unique_objects
Arda Coskunses [Fri, 24 Mar 2017 17:00:52 +0000 (11:00 -0600)]
layers: Removing redundant if in unique_objects

Exact same if check performed multiple times.
Removing redundant one

Change-Id: Iff32a724e58a06b4a967ba2632e60cc5b4050238

7 years agolayers: Refactor ResolveRemainingLevelsLayers
Mark Lobodzinski [Thu, 23 Mar 2017 15:43:35 +0000 (09:43 -0600)]
layers: Refactor ResolveRemainingLevelsLayers

Simplified source and consolidated usage.

Change-Id: I662a94381f3b6119978a53308dc616e942259941

7 years agodemos: Wait for fences before destroying swapchain
Tony Barbour [Thu, 23 Mar 2017 19:25:36 +0000 (13:25 -0600)]
demos: Wait for fences before destroying swapchain

Addresses  GH #1048

Change-Id: Ie94796bcd13dc506e1b97c483763df9023567ac6

7 years agotests: Add test case for VkQueueFlags checks
Mike Schuchardt [Tue, 7 Mar 2017 21:40:28 +0000 (14:40 -0700)]
tests: Add test case for VkQueueFlags checks

Change-Id: I5917fb3fe0360e51cf88196bf5f7d0fe118940b9

7 years agolayers: Add VU enums to VkQueueFlag checks
Mike Schuchardt [Thu, 23 Feb 2017 22:57:37 +0000 (15:57 -0700)]
layers: Add VU enums to VkQueueFlag checks

Split validation of command pool queue flag checks into a dedicated
function and add valid usage error enums.

Change-Id: I4fc4e71d96b818c281ad310dd0d15bca508efb94

7 years agolayers: GH1592, Fix unique_objects DebugMarker Ext
Mark Lobodzinski [Thu, 16 Mar 2017 17:54:35 +0000 (11:54 -0600)]
layers: GH1592, Fix unique_objects DebugMarker Ext

CodeGen ignored these APIs as they contain handles which are embedded
in a structure and aliased. Added manual coverage.

Change-Id: I81cf1945981a8e0b69966a9d0e190e49ff728ea8

7 years agolayers: Add image handles to layout error output
Mark Lobodzinski [Wed, 22 Mar 2017 19:06:12 +0000 (13:06 -0600)]
layers: Add image handles to layout error output

Also fixed up validation tests to handle message formatting changes.

Change-Id: I8671ae531d473bebdc034c33edcd9617ab96b836

7 years agolayers: Fill in core_validation log_msg handles
Mark Lobodzinski [Wed, 22 Mar 2017 13:37:04 +0000 (07:37 -0600)]
layers: Fill in core_validation log_msg handles

Also changed all object handle zero casts to use TYPE_UNKNOWN.

Change-Id: I212fd9dd50a25dec98d1fbf46caa73401450c89f

7 years agolayers: Fill in buffer_validation log_msg handles
Mark Lobodzinski [Tue, 21 Mar 2017 22:41:45 +0000 (16:41 -0600)]
layers: Fill in buffer_validation log_msg handles

Also updated some C-style casts and added TYPE_UNKNOWN where
appropriate.

Change-Id: Ia9c1d013dd73c4f6785df6151ee71715e310187b

7 years agoloader: Add guard around cmake header include.
Jamie Madill [Tue, 21 Mar 2017 17:48:13 +0000 (13:48 -0400)]
loader: Add guard around cmake header include.

This allows non-cmake platforms to compile the loader. Use a define
named VULKAN_NON_CMAKE_BUILD to disable CMAKE-specific features.

Change-Id: I6f6d8731fe1be60fd138e9fe1006c913fb029b47

7 years agolayers: Deep copy pQueueFamilyIndicies
Peter Lohrmann [Fri, 17 Mar 2017 23:58:14 +0000 (16:58 -0700)]
layers: Deep copy pQueueFamilyIndicies

IMAGE_STATE/BUFFER_STATE classes did not make deep copies of the
createinfo.pQueueFamilyIndices array, which could cause invalid
warnings to be reported to the user.

Change-Id: I7ebda777de9decb0c532a4999f78573460197fd7

7 years agolayers: Fix uses of KHR ifdef to KHX in objecttracker
Jamie Madill [Tue, 21 Mar 2017 17:46:11 +0000 (13:46 -0400)]
layers: Fix uses of KHR ifdef to KHX in objecttracker

In a few places, we were using VK_USE_PLATFORM_WIN32_KHR instead of
VK_USE_PLATFORM_WIN32_KHX.

Change-Id: I579ea848868396b9c2877e43ca24780476e55919

7 years agolayers:Refactor image layout verify/set
Tobin Ehlis [Wed, 15 Mar 2017 18:18:31 +0000 (12:18 -0600)]
layers:Refactor image layout verify/set

VerifyImageLayout had a side effect of setting image layout state if
the layout had not been seen by the cmd buffer. This update moves the
code to set the layout outside of the verify function and instead puts
it into new SetLayout* functions that are now called in the appropriate
PreCallRecord* functions.

Note that the previous behavior caused a side effect where layouts
could be updated even when the call down the chain did not occur.
The updated behavior will always update the layout to what is passed
as the explicit layout for any image copy operations whenever the
call down the chain is made. This is desirable b/c if the layout
didn't match the app saw the error during the Validate* portion of
the call and if they chose to ignore it then validation should
reflect the layout state of the image that was set by the call.

Since the side effect mentioned above is no longer present, this change
includes an update to InvalidImageLayout test where a second call to
vkCmdCopyImage() is made in order to actually transition the initial
image layout state so that expected errors are correct going fwd.

7 years agolayers:Unify image layout validation functions
Tobin Ehlis [Tue, 14 Mar 2017 21:38:48 +0000 (15:38 -0600)]
layers:Unify image layout validation functions

VerifySourceImageLayout() and VerifyDestImageLayout() were nearly
identical so I generalized a couple of pieces and combined them in the
single VerifyImageLayout() function.

7 years agoheader: Update to 1.0.44 Vulkan version
Mark Lobodzinski [Tue, 21 Mar 2017 16:12:31 +0000 (10:12 -0600)]
header: Update to 1.0.44 Vulkan version

- updated include/vulkan/vulkan.h
- updated scripts/generator.py
- updated scripts/vk.xml
- updated layers json files
- updated tests json files
- updated include/vulkan/vulkan.hpp

Change-Id: I1d18921f75ec74484918be6cfdba394fc397d2f5

7 years agolayers: swapchain queue family count tracking
Mike Schuchardt [Fri, 10 Mar 2017 21:12:35 +0000 (14:12 -0700)]
layers: swapchain queue family count tracking

Add vkGetPhysicalDeviceQueueFamilyProperties2KHR as an alternate way get
queue family count.

Change-Id: Ie0efee916a1bf091eb34c8610eec3c73943db846

7 years agolayers: swapchain post call record refactor
Mike Schuchardt [Fri, 10 Mar 2017 21:59:10 +0000 (14:59 -0700)]
layers: swapchain post call record refactor

Change-Id: Id4063c82d9e592f982c59fb12c6d9f06a9e7b35a

7 years agodocs: LX666 - Typos in Docs
Mark Young [Mon, 20 Mar 2017 14:27:14 +0000 (08:27 -0600)]
docs: LX666 - Typos in Docs

Fix issue brought up by Masaki Takano in LunarXchange.

Change-Id: Ib6caa931decf5976e96bcd4629602b7f25b88001

7 years agolayers: Fix QueueBindSparse fence validation
Mark Lobodzinski [Fri, 17 Mar 2017 17:15:24 +0000 (11:15 -0600)]
layers: Fix QueueBindSparse fence validation

If bindInfoCount was 0 fence was not properly retired.

Change-Id: I2b6af38b0181d328eaf1bab2c2109f3492905aa0

7 years agolayers: Fix fence validation error in object_tracker
Mark Lobodzinski [Fri, 17 Mar 2017 16:52:57 +0000 (10:52 -0600)]
layers: Fix fence validation error in object_tracker

Change-Id: Id03f32f636cef14cb6d549d7c04b05cd5c814d52

7 years agolayers: Check use of CapabilityShaderDrawParameters against ext enable
Chris Forbes [Fri, 10 Mar 2017 03:48:51 +0000 (16:48 +1300)]
layers: Check use of CapabilityShaderDrawParameters against ext enable

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Pass whole layer_data down through more of SC
Chris Forbes [Fri, 10 Mar 2017 03:45:14 +0000 (16:45 +1300)]
layers: Pass whole layer_data down through more of SC

I know I'd done a bunch of work to reduce the dependency on layer_data
here before, but capability checking needs more broad access when
extensions gate capabilities. Adding yet another crazy parameter to the
intermediate functions just to avoid using layer_data here is silly.

Just plumb it all back through...

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Track if VK_KHR_shader_draw_parameters is enabled
Chris Forbes [Fri, 10 Mar 2017 03:21:55 +0000 (16:21 +1300)]
layers: Track if VK_KHR_shader_draw_parameters is enabled

We need to know this in order to determine whether the corresponding
shader capability is acceptable.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agonop: Clean up comments
Dave Houlton [Thu, 16 Mar 2017 19:18:15 +0000 (13:18 -0600)]
nop: Clean up comments

Change-Id: I392aba1398381205728aead48d6cfd10aa47ac90

7 years agolayers: Add VUs 1200&1201, and a test
Dave Houlton [Tue, 14 Mar 2017 17:31:20 +0000 (11:31 -0600)]
layers: Add VUs 1200&1201, and a test

Added 2 VU checks for aspectMask on image copy. Added
test CopyImageAspectMismatch to provoke these VUs, and
a handful of other aspect mask VUs previously done but
missing tests.

Change-Id: Ib9c3eb9d95a9295ec485bb14b4221d4198fa6904

7 years agolayers: Add VU 01185 and a test
Dave Houlton [Tue, 28 Feb 2017 20:16:02 +0000 (13:16 -0700)]
layers: Add VU 01185 and a test

Added check for valid usage 01185.  Added test
CopyImageSampleCountMismatch() to verify the check.

Change-Id: I51e76e0334bd4f1c0fe564f241646fc8b788da1e

7 years agobuild: Improve pkg-config to handle 64-bit distros
leigh123linux [Wed, 15 Mar 2017 09:59:36 +0000 (09:59 +0000)]
build: Improve pkg-config to handle 64-bit distros

Fixes #1582

Change-Id: I2f06a7016643f61d7e6341df20f355cb510350ab

7 years agolayers: Fix incorrect KHR/KHX ifdefs.
Jamie Madill [Thu, 16 Mar 2017 16:53:42 +0000 (12:53 -0400)]
layers: Fix incorrect KHR/KHX ifdefs.

In two places we were checking for the presence of the WIN32 KHR
define instead of the KHX define where the enums and methods are
defined.

Fixes #1593.

Change-Id: I0bf0c2e2ed734ed2c40a44c4cd7d468ba70ca9a4

7 years agoloader: Fix vkEnumeratePhysicalDeviceGroupsKHX
Mark Young [Sat, 11 Mar 2017 00:31:18 +0000 (17:31 -0700)]
loader: Fix vkEnumeratePhysicalDeviceGroupsKHX

vkEnumeratePhysicalDeviceGroupsKHX was not properly generating the
physical device information or groups.  Several changes resolve
most of the issue, however, I'm still seeing issues when certain
layers enabled.

Change-Id: Id8d4553da25491a3d0a97e8d44e21340b41bc09c

7 years agotests: Fix ImageLayerUnsupportedFormat errors
Jeremy Hayes [Tue, 14 Mar 2017 20:04:19 +0000 (14:04 -0600)]
tests: Fix ImageLayerUnsupportedFormat errors

Fix ImageLayerUnsupportedFormat unexpected errors.

Change-Id: I7dd4f2b9bae69885abf5031a6257ee3f6fad21fb

7 years agobuild: Fix potentially uninitialized VS2015 warning
Jamie Madill [Wed, 15 Mar 2017 20:17:46 +0000 (16:17 -0400)]
build: Fix potentially uninitialized VS2015 warning

This fixes the a few occurences in demos, the loader and a test.
It also adds the warning to the always-on list so it will prevent
future regressions.

Fixes #1587.

Change-Id: I26f69e977b57749a3ab4ddb548ada95384131edc

7 years agolayers: Fix CTS BufferView UpdateTemplate crash
Mark Lobodzinski [Wed, 15 Mar 2017 19:13:49 +0000 (13:13 -0600)]
layers: Fix CTS BufferView UpdateTemplate crash

Change-Id: I2d03265b465ffc869f52ca85e6ad23301424a8d7

7 years agodemos: Select alpha based on capabilities in cube
Tony Barbour [Tue, 14 Mar 2017 14:55:46 +0000 (08:55 -0600)]
demos: Select alpha based on capabilities in cube

Change-Id: I44e3654ee8d2f1b127284ae5f66ca75cb9ff54a7

7 years agodemos:Add cube option --validate-checks-disabled
Tobin Ehlis [Tue, 14 Mar 2017 17:29:01 +0000 (11:29 -0600)]
demos:Add cube option --validate-checks-disabled

Added option to cube demo "--validate-checks-disabled".
This option will use the VK_EXT_validation_flags extension to cause
validation to skip all validation flags that have a flag.
This is meant to provide a basic test for the VK_EXT_validation_flags
extension and find any obvious bugs/crashes.

7 years agolayers:Connect VK_EXT_validation_flags
Tobin Ehlis [Tue, 14 Mar 2017 17:22:50 +0000 (11:22 -0600)]
layers:Connect VK_EXT_validation_flags

Add support for VK_EXT_validation_flags in core_validation.
The only enum currently supported is VK_VALIDATION_CHECK_ALL_EXT which
disables all existing flags in validation. Note that most checks are
still not guarded by flags so that option will only disable the checks
that are guarded by flags.

In testing this I found a bug with AllocateDescriptorSets() where
common state was not updated with the flag enabled so this includes a
fix for that issue as well.

7 years agobuild: Add uninstall target for Linux
Karl Schultz [Tue, 14 Mar 2017 23:11:24 +0000 (17:11 -0600)]
build: Add uninstall target for Linux

Change-Id: I0addef3265b5a2b5ec7b902d9c0086725a2ebb15

7 years agobuild: Add pkgconfig file for the Vulkan loader
Karl Schultz [Fri, 10 Mar 2017 21:58:10 +0000 (14:58 -0700)]
build: Add pkgconfig file for the Vulkan loader

Fixes #757
On Linux, the build configures a vulkan.pc pkgconfig
file, writing it to <build_dir>/loader.  The make 'install'
target then installs this file along with the others so that
it can be found with pkg-config.  Then, issuing:
$ pkg-config --libs --cflags vulkan
emits compilation flags for vulkan programs.

Since retrieving the header version from vulkan.h was needed in
order to put the Version in the pc file, this commit also uses
the header version to specify the SO version, so it no longer needs
to be changed for every release.

Change-Id: If83c17bfbb59f2ee05d5f86f5e957fc11871546b

7 years agotests: Negative tests for VU 00303-00308
Mike Weiblen [Wed, 8 Mar 2017 05:18:40 +0000 (22:18 -0700)]
tests: Negative tests for VU 00303-00308

Add VU testing to VkLayerTest/InvalidBarriers() test case.

Add some comments.

Add getter method to vktestbinding.h

Change-Id: Ib7f3a0f9a54b6612e2082e2160a671fb12aae687

7 years agolayers: Implement VU 00303-00308
Mike Weiblen [Wed, 8 Mar 2017 05:18:27 +0000 (22:18 -0700)]
layers: Implement VU 00303-00308

Implement Valid Usages 00303-00308 with new function
ValidateBarrierLayoutToImageUsage() which verifies an
ImageMemoryBarrier's old/new ImageLayouts are compatible with its
Image's ImageUsageFlags.

Rename ValidateImageLayouts() to ValidateBarriersToImages().

Rename some variables:
- internal vars to use Google style.
- vars passed verbatim from Vulkan to use Vulkan names.

Fix issues revealed in layer tests due to these new checks:
- 2 new Unexpected messages in VkLayerTest.
- 1 failing VkPositiveTest.

Update VU database for check_implemented = Y.

Change-Id: I8723f99d515fbea707299b4d1fcf33a4da6b7b0b

7 years agoMerge pull request #1578 from KhronosGroup/stroyan_loader_json_init
Mike Stroyan [Tue, 14 Mar 2017 22:26:24 +0000 (16:26 -0600)]
Merge pull request #1578 from KhronosGroup/stroyan_loader_json_init

loader: Initialize json_version

7 years agoheader: Update to 1.0.43 header version
Mark Lobodzinski [Tue, 14 Mar 2017 16:12:43 +0000 (10:12 -0600)]
header: Update to 1.0.43 header version

  - updated include/vulkan/vulkan.h
  - updated scripts/cgenerator.py
  - updated scripts/vk.xml
  - updated layers json files
  - updated tests json files
  - updated loader SOVERSION
  - updated include/vulkan/vulkan.hpp
  - updated parameter_validation.cpp with new APIs
  - updated object_tracker.cpp with new APIs

Change-Id: I1fd812cb376d5cddee5ab4acf2e4f8fe6d33b761

7 years agolayers: Remove deprecated KHX extension from OT/PV
Mark Lobodzinski [Tue, 14 Mar 2017 16:31:48 +0000 (10:31 -0600)]
layers: Remove deprecated KHX extension from OT/PV

Deleted references to GetPhysicalDeviceImageFormateProperties2KHX
and GetPhysicalDeviceProperties2KHX from object_tracker and
parameter_validation.

Change-Id: I83e29bae8302dad6f774886d8472451220b426d2

7 years agolayers: Fix round tripping uint32_t through int
bungeman [Tue, 14 Mar 2017 17:23:41 +0000 (13:23 -0400)]
layers: Fix round tripping uint32_t through int

Commit 25afc3c "Suppress VC++ 2017 signed/unsigned warning" fixed
issue #1395. However, it did so by static_cast-ing a value back to a
type it already had been. Instead, just avoid round tripping the
'uint32_t' through 'int'.

7 years agoexternals: Update GitHub master commit refs
Mike Weiblen [Tue, 14 Mar 2017 20:14:36 +0000 (14:14 -0600)]
externals: Update GitHub master commit refs

Update glslang_revision, spirv-headers_revision, and spirv-tools_revision
to latest.

Change-Id: Ic14152242a7c3fb7aa1f86730472cddc7c927865

7 years agolayers: Add PV Maintenance1 negative viewport check
Mark Lobodzinski [Thu, 9 Mar 2017 18:54:48 +0000 (11:54 -0700)]
layers: Add PV Maintenance1 negative viewport check

Negative viewport offsets are now allowed if the Maintenance1 extension
is enabled.

Change-Id: Ifb080ba71d688f431a0d12a9018d746f28377a15

7 years agoloader: Initialize json_version
Mike Stroyan [Tue, 14 Mar 2017 19:09:12 +0000 (13:09 -0600)]
loader: Initialize json_version

Fields of json_version were left uninitialized if file_format_version
in a layer json file was incomplete.  Initialize them to 0.

7 years agotests: Fix DSBufferInfo unexpected errors
Jeremy Hayes [Thu, 9 Mar 2017 21:39:45 +0000 (14:39 -0700)]
tests: Fix DSBufferInfo unexpected errors

Change-Id: I594243d7879ed9999571c4f185724ba42d2ed7b6

7 years agolayers: Add missing format specifier to CV
Mark Lobodzinski [Tue, 14 Mar 2017 15:32:05 +0000 (09:32 -0600)]
layers: Add missing format specifier to CV

Change-Id: Ie2fb0a861d30153af631960d444db1ff93584f41

7 years agodemos: Remove tabs from cube.c
Tony Barbour [Mon, 13 Mar 2017 21:29:35 +0000 (15:29 -0600)]
demos: Remove tabs from cube.c

Change-Id: I6ec4465d52db8f3b6d41a13d3238957a41a6ea1f

7 years agolayers: Add depthBiasClamp device feature checks
Mark Lobodzinski [Mon, 13 Mar 2017 21:10:23 +0000 (15:10 -0600)]
layers: Add depthBiasClamp device feature checks

Change-Id: I61e23e3c41a89763c9b65a2b5d7dbf92f015fa24

7 years agolayers: Add sparseResidencyAliased feature check
Mark Lobodzinski [Mon, 13 Mar 2017 15:45:07 +0000 (09:45 -0600)]
layers: Add sparseResidencyAliased feature check

Change-Id: I173c3d6e696e674c7a791838f6921763f03d1660

7 years agolayers: Add sparseResidencyBuffer feature check
Mark Lobodzinski [Mon, 13 Mar 2017 15:35:01 +0000 (09:35 -0600)]
layers: Add sparseResidencyBuffer feature check

Change-Id: I53afd9b76957f1c955f3068a4d1ff99f0cc5f543

7 years agolayers: Add sparseBinding device feature checks
Mark Lobodzinski [Mon, 13 Mar 2017 15:32:45 +0000 (09:32 -0600)]
layers: Add sparseBinding device feature checks

Change-Id: If1145276554ad8dda2839aa5bfc0b3c796873482

7 years agolayers: Add enabled_features accessor function
Mark Lobodzinski [Mon, 13 Mar 2017 15:25:44 +0000 (09:25 -0600)]
layers: Add enabled_features accessor function

Change-Id: I509c06794b9301c3b0dcc3ed5ad6e688eac6194d

7 years agolayers: Add textureCompressionBC feature check
Mark Lobodzinski [Wed, 1 Mar 2017 23:19:36 +0000 (16:19 -0700)]
layers: Add textureCompressionBC feature check

Change-Id: I4eca8c73a1cc2549402b436f8634fa9e72b9b9ce

7 years agolayers: Add textureCompressionASTC_LDR feature check
Mark Lobodzinski [Wed, 1 Mar 2017 23:17:39 +0000 (16:17 -0700)]
layers: Add textureCompressionASTC_LDR feature check

Change-Id: I862b2e188e0e253890aa9e0fad8f97914e004c0a

7 years agolayers: Add textureCompressionETC2 feature check
Mark Lobodzinski [Wed, 1 Mar 2017 23:15:02 +0000 (16:15 -0700)]
layers: Add textureCompressionETC2 feature check

Change-Id: I13408cd02beda7c4f91a6e9424fa0d1109461b6d

7 years agolayers: Add compressed texture query utils
Mark Lobodzinski [Wed, 1 Mar 2017 23:09:07 +0000 (16:09 -0700)]
layers: Add compressed texture query utils

These functions help to identify compressed formats categories.

Change-Id: Ia21da00924eb1f5c6f4a5310676e056899c340af

7 years agolayers: Validate samplerAnisotropy device feature
Mark Lobodzinski [Wed, 1 Mar 2017 22:52:49 +0000 (15:52 -0700)]
layers: Validate samplerAnisotropy device feature

Change-Id: I8b1262c34612870b9c8ebb1f62e7d6755219606f

7 years agolayers: Finish multiViewport dev feature validation
Mark Lobodzinski [Wed, 1 Mar 2017 22:45:52 +0000 (15:45 -0700)]
layers: Finish multiViewport dev feature validation

Change-Id: I58397785e7b73099d2a890246207075dae643652

7 years agolayers: Add alphaToOne device feature validation
Mark Lobodzinski [Wed, 1 Mar 2017 22:01:45 +0000 (15:01 -0700)]
layers: Add alphaToOne device feature validation

Change-Id: I1633cf7a8a5ebeed797cdb5373e5eb2533ce6887

7 years agolayers: Validate the depthBounds device feature
Mark Lobodzinski [Wed, 1 Mar 2017 21:39:38 +0000 (14:39 -0700)]
layers: Validate the depthBounds device feature

Change-Id: I27aa9d678f9e7ce90db325f2a7f7aa215741c8c9

7 years agolayers: Validate depthClamp device feature
Mark Lobodzinski [Wed, 1 Mar 2017 21:16:17 +0000 (14:16 -0700)]
layers: Validate depthClamp device feature

Change-Id: I61a1c8511b2b142ddf178fbf74654aaad80964bf

7 years agolayers: Add drawIndirectFirstInstance feature TODOs
Mark Lobodzinski [Wed, 1 Mar 2017 20:58:47 +0000 (13:58 -0700)]
layers: Add drawIndirectFirstInstance feature TODOs

Change-Id: Iba54a78bc72ef169faeb6ce3e92b392c738e0bbe

7 years agolayers: Validate device feature multiDrawIndirect
Mark Lobodzinski [Tue, 28 Feb 2017 21:18:04 +0000 (14:18 -0700)]
layers: Validate device feature multiDrawIndirect

Change-Id: Iaf9daa2bc1e0fe301fb28b6901af2687c232d9a8

7 years agolayers: Validate dualSrcBlend device feature
Mark Lobodzinski [Tue, 28 Feb 2017 21:06:44 +0000 (14:06 -0700)]
layers: Validate dualSrcBlend device feature

Change-Id: I64984412ad993f2d75095023c3b0eea57b78228e

7 years agolayers: Validate imageCubeArray device feature
Mark Lobodzinski [Tue, 28 Feb 2017 20:45:20 +0000 (13:45 -0700)]
layers: Validate imageCubeArray device feature

Change-Id: Ie1bdcc06c71a7ef8a0fbc5d576403f4b1c6e1e75

7 years agoheaders: Add missing include to vk_icd.h
Yamakaky [Mon, 13 Mar 2017 15:06:49 +0000 (11:06 -0400)]
headers: Add missing include to vk_icd.h

7 years agolayers: Add GetNextValidBinding function to CV
Mark Lobodzinski [Fri, 10 Mar 2017 16:14:00 +0000 (09:14 -0700)]
layers: Add GetNextValidBinding function to CV

Change-Id: Ifaa7aea1c7569ffaf5d417a1cd5caadaa38c96b0

7 years agolayers: Move desc set helper to descriptorset module
Mark Lobodzinski [Thu, 9 Mar 2017 23:24:13 +0000 (16:24 -0700)]
layers: Move desc set helper to descriptorset module

Change-Id: I695cf51b6fa27df7585582f545c0077efb9fd432

7 years agolayers: Move update_template temp structure creation
Mark Lobodzinski [Thu, 9 Mar 2017 22:31:42 +0000 (15:31 -0700)]
layers: Move update_template temp structure creation

Change-Id: Ib24bfc08114b8bdded7df0e69bfe3ea531e9df20

7 years agolayers: #1522 #1523 Fix VK_REMAINING_* resolve
Petr Kraus [Sun, 12 Mar 2017 13:00:50 +0000 (14:00 +0100)]
layers: #1522 #1523 Fix VK_REMAINING_* resolve

ResolveRemainingLevelsLayers() modified a copy instead of the live data.
Fixes issues #1522 and #1523

7 years agolayers: Don't call driver if skip in PipelineBarrier
Tony Barbour [Thu, 9 Mar 2017 20:05:51 +0000 (13:05 -0700)]
layers: Don't call driver if skip in PipelineBarrier

Change-Id: I9af6a641bc6e00f8ed3f1ea4cdf4f05321ecee6d

7 years agobuild: Increase reloc table size for mips64el
Radovan Birdic [Fri, 10 Mar 2017 20:20:00 +0000 (20:20 +0000)]
build: Increase reloc table size for mips64el

Fixes #1554: Fix build fails for mips64el

7 years agolayers: Fix template_update errors in CV
Mark Lobodzinski [Wed, 8 Mar 2017 18:50:51 +0000 (11:50 -0700)]
layers: Fix template_update errors in CV

Tied UpdateDescriptorSetWithTemplate into UpdateDescriptorSet
validation.

Change-Id: I00fdd9b90f99b34bb7119eb9c8dd433571f22f1d

7 years agolayers: Add UpdateTemplate Ext APIs to CV
Mark Lobodzinski [Tue, 7 Mar 2017 23:37:16 +0000 (16:37 -0700)]
layers: Add UpdateTemplate Ext APIs to CV

Added GPA hooks stub functions, and enables for four new extension
APIs for VK_KHR_descriptor_update_template.

Change-Id: Ifb8b3104030d3ff3da3af85039e85bb84f828872

7 years agoloader: Set pointer to NULL
Mark Young [Thu, 9 Mar 2017 21:17:40 +0000 (14:17 -0700)]
loader: Set pointer to NULL

Cleanup enabled extension array pointer passed down to driver.
If the loader overrode the create info struct, the pointer
could be garbage if the enabled extension count was 0.  Now,
make sure it is NULL.

Change-Id: I558d768e786892e7afc44f58b4173a2b8db3deee

7 years agoloader: Use secure_getenv only when necessary
Mark Young [Thu, 9 Mar 2017 18:39:41 +0000 (11:39 -0700)]
loader: Use secure_getenv only when necessary

secure_getenv should only be used on something that is security
sensitive.  Certain environment variable settings do not fall
into that category.  So, only use it when necessary.

Change-Id: Ib8b8dc1a1528a2f67f7cdc25051be078292ee19a

7 years agoloader: Update secure_getenv check
Mark Young [Thu, 9 Mar 2017 17:41:25 +0000 (10:41 -0700)]
loader: Update secure_getenv check

The previous check was against the compiler, not against the libc.
Implement the check in CMake and generate a new header file which
defines appropriate defines (loader_cmake_config.h).

Change-Id: I2ae0e8d482fb4ce13089128157c11d18b0c178b9

7 years agospelling: Fix spelling errors
Mark Young [Wed, 8 Mar 2017 20:38:35 +0000 (13:38 -0700)]
spelling: Fix spelling errors

Fix some spelling errors (caught by VS2017 spelling extension) and
a few floating func defs that are no longer valid.

Change-Id: Ifd9394227dfe3b3255c27429dadaf405433232d2

7 years agoloader: Update secure_getenv usage
Mark Young [Wed, 8 Mar 2017 17:11:52 +0000 (10:11 -0700)]
loader: Update secure_getenv usage

Use secure_getenv always if it's available.  If it's not available,
fall back to getenv (because some libc's, like musl, don't export
secure_getenv).

Change-Id: I0cae57e1048dcbbadbdd9cc71cc17d51706161a0

7 years agolayers: Set depth to 1 in ci for swapchain images
Tony Barbour [Tue, 7 Mar 2017 23:06:55 +0000 (16:06 -0700)]
layers: Set depth to 1 in ci for swapchain images

Change-Id: I64e99f99737e26e284722bcc0ce3dc9518e64438

7 years agoUse nproc instead of ncpu
Ciro Santilli [Tue, 7 Mar 2017 08:00:31 +0000 (08:00 +0000)]
Use nproc instead of ncpu

The command is more widely available in Linux since it is part of Coreutils.

7 years agolayers: Fix parameter validation
Mark Young [Tue, 7 Mar 2017 20:09:00 +0000 (13:09 -0700)]
layers: Fix parameter validation

An earlier change clobbered part of a parameter validation change.

Change-Id: Ica28e79c17f094637e3a12c44dd25c5283c586ef

7 years agolayers: Improve UpdateTemplate variable names
Mark Lobodzinski [Mon, 6 Mar 2017 23:18:19 +0000 (16:18 -0700)]
layers: Improve UpdateTemplate variable names

Change-Id: I8e0d26b795fc9f2a2634f4de823967d3f16b15d9

7 years agolayers: Parse extension buffer to unwrap handles
Mark Lobodzinski [Mon, 6 Mar 2017 16:00:21 +0000 (09:00 -0700)]
layers: Parse extension buffer to unwrap handles

The UpdateDescriptorSetWithTemplate extension API contains a
parameter which is a buffer containing Vulkan objects. To get this
through to the driver using the UniqueObjects layer, these handles
must get unwrapped.

Change-Id: I91f573f696eafc00957cbff502aaa8ce96c4e1ba

7 years agolayers: Create desc_update_template map for new objs
Mark Lobodzinski [Fri, 3 Mar 2017 17:28:21 +0000 (10:28 -0700)]
layers: Create desc_update_template map for new objs

Store unique_objects DescriptorUpdateTemplate data in a map
for parsing UpdateTempate buffers.

Change-Id: Iab0d95a1aa2f309a3d33c8859b16543f98ca549c

7 years agolayers: Move DescriptorUpdateTemplate functions
Mark Lobodzinski [Fri, 3 Mar 2017 15:40:16 +0000 (08:40 -0700)]
layers: Move DescriptorUpdateTemplate functions

In unique_objects, moved these functions from being auto-generated to
being manually written.

Change-Id: Iae7ccac0ad51d57826104bd0532742a098c673ce

7 years agoscripts: Allow safe_structs to handle KHR extensions
Mark Lobodzinski [Mon, 6 Mar 2017 15:59:14 +0000 (08:59 -0700)]
scripts: Allow safe_structs to handle KHR extensions

Deep copies are needed for some of the new extensions.

Change-Id: I7e77fe30a87129aa720225ae16eb87cdba8e626e