platform/upstream/Vulkan-Tools.git
7 years agoRevert "build: Restore default symbol visibility to layers/tests"
Mike Stroyan [Tue, 27 Sep 2016 20:23:43 +0000 (14:23 -0600)]
Revert "build: Restore default symbol visibility to layers/tests"

This reverts commit dd96dd21b438d48aa78e9de60ad0c550c856cf29.

7 years agolayers: mark exported functions in layer utils
Mike Stroyan [Wed, 28 Sep 2016 15:42:28 +0000 (09:42 -0600)]
layers: mark exported functions in layer utils

This allows layers to hide many functions that don't need export.

7 years agolayers: Be careful about casts. ptr -> uint64_t& isnt right on 32bit.
Chris Forbes [Mon, 3 Oct 2016 21:08:31 +0000 (10:08 +1300)]
layers: Be careful about casts. ptr -> uint64_t& isnt right on 32bit.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agoMove vulkan.hpp to version 1.0.29
Mark Lobodzinski [Mon, 3 Oct 2016 14:31:34 +0000 (08:31 -0600)]
Move vulkan.hpp to version 1.0.29

Change-Id: I52f48c40290ff56df98d9eae3dfc3fe8748b5008

7 years agolayers: Update changed extension names for 1.0.29
Mark Lobodzinski [Mon, 3 Oct 2016 14:17:59 +0000 (08:17 -0600)]
layers: Update changed extension names for 1.0.29

Change-Id: Ifc3484471e8f1e7ca585055b243f0688e7dfd33c

7 years agolayers: Move SOVERSION to version 1.0.29
Mark Lobodzinski [Mon, 3 Oct 2016 14:15:08 +0000 (08:15 -0600)]
layers: Move SOVERSION to version 1.0.29

Change-Id: Ieb1befd5370d96404af8abf85bfed30fe43b5995

7 years agolayers: Move Linux json files to version 1.0.29
Mark Lobodzinski [Mon, 3 Oct 2016 14:14:32 +0000 (08:14 -0600)]
layers: Move Linux json files to version 1.0.29

Change-Id: Ibea474bc21a54251372f757d21a5cfb401876a35

7 years agolayers: Move Windows json files to version 1.0.29
Mark Lobodzinski [Mon, 3 Oct 2016 14:14:10 +0000 (08:14 -0600)]
layers: Move Windows json files to version 1.0.29

Change-Id: If3dbe050a7d8c9954ba1d7bc6aa29123a123a359

7 years agoheader: Move vk.xml to version 1.0.29
Mark Lobodzinski [Mon, 3 Oct 2016 14:13:08 +0000 (08:13 -0600)]
header: Move vk.xml to version 1.0.29

Change-Id: Iae35f784b40eeafe07e1cf1af96924bd151ecd59

7 years agoheader: Move vulkan.h to version 1.0.29
Mark Lobodzinski [Mon, 3 Oct 2016 14:09:38 +0000 (08:09 -0600)]
header: Move vulkan.h to version 1.0.29

Change-Id: I500e04c6545daa53d21b8cf552a922a0462d066c

7 years agolayers: Add VK_AMD_draw_indirect_count ext to OT
Mark Lobodzinski [Wed, 28 Sep 2016 18:58:00 +0000 (12:58 -0600)]
layers: Add VK_AMD_draw_indirect_count ext to OT

Added CmdDrawIndirectCountAMD and CmdDrawIndexedIndirectCountAMD APIs
for this extension to object_tracker.

Change-Id: I99fcadc9660316864666f86040e256a392565569

7 years agolayers: Add VK_NV_external_memory_win32 ext to OT
Mark Lobodzinski [Wed, 28 Sep 2016 18:53:27 +0000 (12:53 -0600)]
layers: Add VK_NV_external_memory_win32 ext to OT

Added GetMemoryWin32HandleNV API for this extension to object_tracker.

Change-Id: I94cc6a3928f90c6ff964f7a2e5cba9aa2548d653

7 years agolayers: Add VK_NV_external_memory_caps ext to OT
Mark Lobodzinski [Wed, 28 Sep 2016 18:48:56 +0000 (12:48 -0600)]
layers: Add VK_NV_external_memory_caps ext to OT

Added GetPhysicalDeviceExternalImageFormatPropertiesNV API for the
VK_NV_external_memory_capabilities extension to object_tracker.

Change-Id: I36ab9a1656dbecbb2384ee173359968ea8e454eb

7 years agolayers: Add debug marker extension support to OT
Mark Lobodzinski [Wed, 28 Sep 2016 18:45:29 +0000 (12:45 -0600)]
layers: Add debug marker extension support to OT

Added object_tracker checking for Debug Marker functions SetObjectTag,
SetObjectName, Begin, End, and Insert.

Change-Id: Ibc13192bed2003d176df97719c9162b90051b703

7 years agolayers: Fix ResetDescriptorPool in OT
Chris Forbes [Thu, 29 Sep 2016 05:47:50 +0000 (18:47 +1300)]
layers: Fix ResetDescriptorPool in OT

Previously this didn't bother to clean up the descriptor sets associated
with the pool.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Merge Validate{Non,}DispatchableObject in OT
Chris Forbes [Thu, 29 Sep 2016 01:58:08 +0000 (14:58 +1300)]
layers: Merge Validate{Non,}DispatchableObject in OT

Same deal.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Merge Create{Non,}DispatchableObject in OT
Chris Forbes [Thu, 29 Sep 2016 01:53:50 +0000 (14:53 +1300)]
layers: Merge Create{Non,}DispatchableObject in OT

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Combine Destroy{Non,}DispatchableObject
Chris Forbes [Thu, 29 Sep 2016 01:41:44 +0000 (14:41 +1300)]
layers: Combine Destroy{Non,}DispatchableObject

These did exactly the same thing, except for the slight wrinkle of
needing to cast to uint64_t & in the nondispatchable case to account for
MSVC crankiness. We can just do that always.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove allocator consistency check from swapchain
Chris Forbes [Thu, 29 Sep 2016 01:39:08 +0000 (14:39 +1300)]
layers: Remove allocator consistency check from swapchain

This is now covered by object_tracker

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Wire up INCONSISTENT_ALLOCATOR object tracker error
Chris Forbes [Thu, 29 Sep 2016 01:35:09 +0000 (14:35 +1300)]
layers: Wire up INCONSISTENT_ALLOCATOR object tracker error

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Track whether any object was created with a custom allocator
Chris Forbes [Thu, 29 Sep 2016 00:51:10 +0000 (13:51 +1300)]
layers: Track whether any object was created with a custom allocator

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Hold device dispatch table by value too
Chris Forbes [Mon, 3 Oct 2016 07:01:14 +0000 (20:01 +1300)]
layers: Hold device dispatch table by value too

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Hold instane dispatch table by value
Chris Forbes [Mon, 3 Oct 2016 06:54:31 +0000 (19:54 +1300)]
layers: Hold instane dispatch table by value

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Rename my_data->instance_data
Chris Forbes [Mon, 3 Oct 2016 06:35:49 +0000 (19:35 +1300)]
layers: Rename my_data->instance_data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Split CV device and instance data
Chris Forbes [Mon, 3 Oct 2016 06:14:25 +0000 (19:14 +1300)]
layers: Split CV device and instance data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move queue_family_properties into PHYSICAL_DEVICE_STATE
Chris Forbes [Mon, 3 Oct 2016 05:06:20 +0000 (18:06 +1300)]
layers: Move queue_family_properties into PHYSICAL_DEVICE_STATE

This isn't instance-wide.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Dont pretend this is phy_dev_data in
Chris Forbes [Mon, 3 Oct 2016 04:57:18 +0000 (17:57 +1300)]
layers: Dont pretend this is phy_dev_data in
GetPhysicalDeviceQueueFamilyProperties

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Get rid of remaining use of single physical_device_state in
Chris Forbes [Mon, 3 Oct 2016 04:55:48 +0000 (17:55 +1300)]
layers: Get rid of remaining use of single physical_device_state in
instance

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Store ptr from device data to instance data
Chris Forbes [Mon, 3 Oct 2016 04:44:52 +0000 (17:44 +1300)]
layers: Store ptr from device data to instance data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Pull enabled_features out into layer_data, rename for clarity
Chris Forbes [Mon, 3 Oct 2016 04:42:38 +0000 (17:42 +1300)]
layers: Pull enabled_features out into layer_data, rename for clarity

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Stop pretending phys devices have their own layer_data
Chris Forbes [Mon, 3 Oct 2016 04:36:32 +0000 (17:36 +1300)]
layers: Stop pretending phys devices have their own layer_data

They don't -- the dispatch key is the same as the instance.
EnumeratePhysicalDevices just made a mess if there were multiple
physical devices in the system.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Rename my_data -> instance_data in EnumeratePhysicalDevices
Chris Forbes [Mon, 3 Oct 2016 04:21:20 +0000 (17:21 +1300)]
layers: Rename my_data -> instance_data in EnumeratePhysicalDevices

Makes it clearer what this is.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Use member initialization for CV state
Chris Forbes [Mon, 3 Oct 2016 04:18:42 +0000 (17:18 +1300)]
layers: Use member initialization for CV state

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Delete some dead structs in CV
Chris Forbes [Mon, 3 Oct 2016 03:28:53 +0000 (16:28 +1300)]
layers: Delete some dead structs in CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Get rid of duplication of logic op test between PV and CV
Chris Forbes [Mon, 3 Oct 2016 02:28:49 +0000 (15:28 +1300)]
layers: Get rid of duplication of logic op test between PV and CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Use safe_VkSwapchainCreateInfoKHR in CV
Chris Forbes [Mon, 3 Oct 2016 01:12:59 +0000 (14:12 +1300)]
layers: Use safe_VkSwapchainCreateInfoKHR in CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Clean up layer settings file comments.
Karl Schultz [Mon, 3 Oct 2016 17:15:26 +0000 (11:15 -0600)]
layers: Clean up layer settings file comments.

Normalize and clean up internal documentation for the
vk_layer_settings.txt file.
No logic or behavior changes.

Change-Id: Iceb45efb50bcb670b099027980244cc1e2358643

7 years agoFix CMake modules not being added correctly
Raul Tambre [Sat, 1 Oct 2016 10:20:32 +0000 (13:20 +0300)]
Fix CMake modules not being added correctly

This allows this project to be more easily included as a
sub-project of another project.

Change-Id: I098f26707f17d20353c91a4adb7bfb83d90a99fa

7 years agobuild: gh52-CMake changes to enable make install on Linux
Karl Schultz [Fri, 30 Sep 2016 19:32:16 +0000 (13:32 -0600)]
build: gh52-CMake changes to enable make install on Linux

See BUILD.md for details.

Change-Id: Ide1f635a57b57af384d9d1baac20c2256629f812

7 years agoloader: gh971 Fix double free on physical devices
Maciej Jesionowski [Fri, 30 Sep 2016 13:14:52 +0000 (15:14 +0200)]
loader: gh971 Fix double free on physical devices

Change-Id: I97428dd579217340586809577eb64277ed4bb2cd

7 years agolayers: Add VK_NV_external_memory_win32 ext to PV
Mark Lobodzinski [Thu, 29 Sep 2016 21:01:28 +0000 (15:01 -0600)]
layers: Add VK_NV_external_memory_win32 ext to PV

Added GetMemoryWin32HandleNV function for this extension to the
parameter validation layer.

Change-Id: Ib1b870ab2b0433a19fcdca6bb6e0bffbeda74a13

7 years agolayers: Add VK_NV_external_memory_caps ext to PV
Mark Lobodzinski [Wed, 28 Sep 2016 20:04:29 +0000 (14:04 -0600)]
layers: Add VK_NV_external_memory_caps ext to PV

Added GetPhysicalDeviceExternalImageFormatPropertiesNV API for the
VK_NV_external_memory_capabilities extension to parameter_validation.

Change-Id: I5011fcf33efffc8c432cde03e2ae4957766488b4

7 years agolayers: Add debug marker extension support to PV
Mark Lobodzinski [Wed, 28 Sep 2016 19:51:51 +0000 (13:51 -0600)]
layers: Add debug marker extension support to PV

Added parameter validation for Debug Marker functions SetObjectTag,
SetObjectName, Begin, and Insert.

Change-Id: I4e95b350a822fe296cbd750ea228a7d98e29241a

7 years agolayers: gh965 Reading undefined memory is now a warning
Karl Schultz [Thu, 29 Sep 2016 22:11:35 +0000 (16:11 -0600)]
layers: gh965 Reading undefined memory is now a warning

Change-Id: I03d021784649f4dbdced4dc34bcf39e7c7a0cfac

7 years agoheader: Move vulkan.hpp to version 1.0.28
Lenny Komow [Thu, 29 Sep 2016 20:16:59 +0000 (14:16 -0600)]
header: Move vulkan.hpp to version 1.0.28

7 years agolayers: Updated vulkan.py for changed extension def
Mark Lobodzinski [Thu, 29 Sep 2016 21:35:07 +0000 (15:35 -0600)]
layers: Updated vulkan.py for changed extension def

Change-Id: I9d52e7a3104d21fdd355292d6f17076cd719d2e4

7 years agolayers: Fix thread/PV codegen for new notation
Mark Lobodzinski [Tue, 27 Sep 2016 19:08:15 +0000 (13:08 -0600)]
layers: Fix thread/PV codegen for new notation

Embedded parameter length variables are now specified in vk.xml as
being separated by '::' instead of '->'.

Change-Id: I53befe20912d7d7ee628f6819dbd013bcd2a9414

7 years agolayers: Whitelisted new extensions for 1.0.28
Mark Lobodzinski [Tue, 27 Sep 2016 14:59:49 +0000 (08:59 -0600)]
layers: Whitelisted new extensions for 1.0.28

Change-Id: Ife1621716ec9593de3ca528d071b707515acb8c2

7 years agoloader: Move SOVERSION to version 1.0.28
Mark Lobodzinski [Tue, 27 Sep 2016 14:27:59 +0000 (08:27 -0600)]
loader: Move SOVERSION to version 1.0.28

Change-Id: I4e011b3b37f805fde1100cf519042ea242c680d0

7 years agolayers: Move Windows json files to version 1.0.28
Mark Lobodzinski [Tue, 27 Sep 2016 14:27:08 +0000 (08:27 -0600)]
layers: Move Windows json files to version 1.0.28

s Please enter the commit message for your changes. Lines starting

Change-Id: I292aba8b4b4df46d60e3c8d4752e5fb9ccee1217

7 years agolayers: Move Linux json files to version 1.0.28
Mark Lobodzinski [Tue, 27 Sep 2016 14:26:40 +0000 (08:26 -0600)]
layers: Move Linux json files to version 1.0.28

Change-Id: I51e3624312bd83a0b6f440638088ef362d7f7ee5

7 years agoheader: Move vk.xml to version 1.0.28
Mark Lobodzinski [Tue, 27 Sep 2016 14:25:27 +0000 (08:25 -0600)]
header: Move vk.xml to version 1.0.28

Change-Id: If860d6d0df348fc758f3b59429523cd5ee2db95f

7 years agoheader: Move vk_platform.h to version 1.0.28
Mark Lobodzinski [Thu, 29 Sep 2016 16:47:27 +0000 (10:47 -0600)]
header: Move vk_platform.h to version 1.0.28

Change-Id: I3bc47016e3be0c9870f05254b02718099d990eaf

7 years agoheader: Move vulkan.h to version 1.0.28
Mark Lobodzinski [Tue, 27 Sep 2016 14:23:59 +0000 (08:23 -0600)]
header: Move vulkan.h to version 1.0.28

Change-Id: I346877d18a2600e114ebee844fb5b5055c0ea5c5

7 years agolayers: Complain about subpass mismatch between CB and pipeline
Chris Forbes [Wed, 28 Sep 2016 02:19:39 +0000 (15:19 +1300)]
layers: Complain about subpass mismatch between CB and pipeline

Fixes #933.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Use cmd buffer as src object in callback
Chris Forbes [Tue, 27 Sep 2016 04:14:46 +0000 (17:14 +1300)]
layers: Use cmd buffer as src object in callback

One less TODO.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agodemos: Remove tri from Android build
Cody Northrop [Thu, 29 Sep 2016 19:55:08 +0000 (13:55 -0600)]
demos: Remove tri from Android build

7 years agodemos: Set srcAccessMask correctly for present barriers
Tony Barbour [Thu, 29 Sep 2016 17:36:49 +0000 (11:36 -0600)]
demos: Set srcAccessMask correctly for present barriers

Change-Id: I58cd90304ad4bd4e3c5c1622002bbc46fcf66cd9

7 years agocmake: Fix whitespace
Mark Lobodzinski [Thu, 29 Sep 2016 16:26:36 +0000 (10:26 -0600)]
cmake: Fix whitespace

Change-Id: Ia2d35a87c14c0c73bc26588694b398e04a191203

7 years agobuild: gh27 Allow builds in paths with spaces
Karl Schultz [Wed, 28 Sep 2016 00:38:02 +0000 (18:38 -0600)]
build: gh27 Allow builds in paths with spaces

Add quotes around shell var expansions in the update_external_sources scripts.

For Windows, remove the cmake directives to add a linker option for the DEF
files.  These were redundant with the DEF files getting added via the
cmake add_library() directive.  They were also causing difficult-to-fix
problems with paths that have spaces in them.

Change-Id: I741bac31bbf27deae59031b6aa916c6ab48383a6

7 years agolayers: Added flags for in_use checks
Tobin Ehlis [Wed, 28 Sep 2016 20:25:44 +0000 (14:25 -0600)]
layers: Added flags for in_use checks

Added object_in_use flag to disable all in_use checks.
Added destroy_buffer_view flag to disable validation checks at
DestroyBufferView() time.

7 years agolayers: Update DestroyBufferView to use Pre/Post paradigm
Tobin Ehlis [Wed, 28 Sep 2016 20:01:13 +0000 (14:01 -0600)]
layers: Update DestroyBufferView to use Pre/Post paradigm

Add PreCallValidate* and PostCallRecord* functions to DestroyBufferView
according to long-term core_validation architecture plans.

7 years agolayers: Add binding between cmd buffer and bufferView
Tobin Ehlis [Wed, 28 Sep 2016 13:12:28 +0000 (07:12 -0600)]
layers: Add binding between cmd buffer and bufferView

For a texel descriptor update, add binding between bufferView and the
command buffer as well as between underlying buffer and command buffer.

7 years agolayers: Add in-use detection for VkBufferView
Tobin Ehlis [Mon, 26 Sep 2016 23:38:00 +0000 (17:38 -0600)]
layers: Add in-use detection for VkBufferView

When VkBufferView is destroyed, flag error if in-use and mark any
bound cmd buffers as invalid.

7 years agodemos: Remove tri demo
Tony Barbour [Wed, 21 Sep 2016 20:38:50 +0000 (14:38 -0600)]
demos: Remove tri demo

Removing tri demo for maintenance reasons.  Cube should be the demo
to go to for examples of good Vulkan

Change-Id: I4442a1882b5c168cfe88501eccc41a554ae4d026

7 years agolayers: Add bool to guard command buffer state check
Tobin Ehlis [Tue, 27 Sep 2016 23:42:58 +0000 (17:42 -0600)]
layers: Add bool to guard command buffer state check

This is the first check-in demonstrating the boolean model to allow validation
checks to be disabled. Going forward we'd like to guard all checks in such
bools which can then be set based on VkValidationCheckEXT enum values passed
in at vkCreateInstance() time.

In the course of adding this noticed a bug where instance_state was not getting
initialized in device layer_data at CreateDevice time. Fixed this bug.

7 years agolayers: Indicate correct source for validateCommandBufferState() error
Tobin Ehlis [Tue, 27 Sep 2016 19:10:33 +0000 (13:10 -0600)]
layers: Indicate correct source for validateCommandBufferState() error

Fixes #982

Instead of hard-coding vkQueueSubmit, take a parameter to clarify if the error
originates from vkQueueSubmit() or vkCmdExecuteCommands()

7 years agodocs: Add CubeWithLayers to Android section
Cody Northrop [Tue, 27 Sep 2016 17:48:14 +0000 (11:48 -0600)]
docs: Add CubeWithLayers to Android section

7 years agodemos: Clean up logging for Android
Cody Northrop [Tue, 27 Sep 2016 16:50:57 +0000 (10:50 -0600)]
demos: Clean up logging for Android

7 years agodemos: Enable validation for Android cube
Cody Northrop [Tue, 27 Sep 2016 03:05:00 +0000 (21:05 -0600)]
demos: Enable validation for Android cube

7 years agodemos: Add APK with layers to cube
Cody Northrop [Mon, 26 Sep 2016 23:53:00 +0000 (17:53 -0600)]
demos: Add APK with layers to cube

7 years agoloader: gh989 - Fix incorrect array index
Jan-Harald Fredriksen [Wed, 28 Sep 2016 10:10:24 +0000 (12:10 +0200)]
loader: gh989 - Fix incorrect array index

An inner array loop was using an incorrect index to access the
appropriate layer in instance extension validation.

Change-Id: I27606fb32049bb531131ca29357d79491e3f96a7

7 years agodemos: s/X11_INCLUDE_DIRS/X11_INCLUDE_DIR/ typo
Robert Bragg [Tue, 27 Sep 2016 20:10:23 +0000 (21:10 +0100)]
demos: s/X11_INCLUDE_DIRS/X11_INCLUDE_DIR/ typo

Signed-off-by: Robert Bragg <robert.bragg@intel.com>
7 years agolayers: Convert RENDER_PASS_NODE::pCreateInfo to use safe struct
Chris Forbes [Mon, 26 Sep 2016 23:03:31 +0000 (12:03 +1300)]
layers: Convert RENDER_PASS_NODE::pCreateInfo to use safe struct

Gets rid of a memory leak, and simplifies the code.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Don't accidentally copy safe_VkFramebufferCreateInfo
Chris Forbes [Mon, 26 Sep 2016 23:03:04 +0000 (12:03 +1300)]
layers: Don't accidentally copy safe_VkFramebufferCreateInfo

This isn't cheap.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Don't add VK_SUBPASS_EXTERNAL edges to subpass DAG.
Chris Forbes [Mon, 26 Sep 2016 21:54:58 +0000 (10:54 +1300)]
layers: Don't add VK_SUBPASS_EXTERNAL edges to subpass DAG.

We don't use them, and handling them safely complicates other code that
works with the DAG.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Trim out some more old MT renderpass junk
Chris Forbes [Mon, 26 Sep 2016 04:04:41 +0000 (17:04 +1300)]
layers: Trim out some more old MT renderpass junk

- RENDER_PASS_NODE::attachments[i].attachment was always i.
- This whole structure is noise; we can use the VkAttachmentDescription
  directly.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove unnecessary constructors from new _STATE classes
Chris Forbes [Mon, 26 Sep 2016 02:23:32 +0000 (15:23 +1300)]
layers: Remove unnecessary constructors from new _STATE classes

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Tweak naming of enums moved from SwapChain to CV
Chris Forbes [Mon, 26 Sep 2016 02:18:57 +0000 (15:18 +1300)]
layers: Tweak naming of enums moved from SwapChain to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move image-not-acquired etc from swapchain to core validation
Chris Forbes [Thu, 22 Sep 2016 06:34:20 +0000 (18:34 +1200)]
layers: Move image-not-acquired etc from swapchain to core validation

Now that Core Validation tracks the acquisition state of every swapchain
image, we can do this.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Add tracking of acquired state to Core Validation
Chris Forbes [Thu, 22 Sep 2016 05:11:06 +0000 (17:11 +1200)]
layers: Add tracking of acquired state to Core Validation

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Add IMAGE_NODE::acquired flag
Chris Forbes [Thu, 22 Sep 2016 04:49:47 +0000 (16:49 +1200)]
layers: Add IMAGE_NODE::acquired flag

This is necessary for moving the image ownership stuff across from
swapchain

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move ACQUIRE_NO_SYNC check from Swapchain to Core Validation
Chris Forbes [Thu, 22 Sep 2016 04:40:27 +0000 (16:40 +1200)]
layers: Move ACQUIRE_NO_SYNC check from Swapchain to Core Validation

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agoloader: gh971 EnumPhysDev return VK_INCOMPLETE
Mark Young [Mon, 26 Sep 2016 17:38:46 +0000 (11:38 -0600)]
loader: gh971 EnumPhysDev return VK_INCOMPLETE

vkEnumeratePhysicalDevices should return VK_INCOMPLETE if the
following conditions are met:
a) pPhysicalDeviceCount < number of physical devices available
b) pPhysicalDevices != NULL
The code was actually in place, but was not getting hit.

Change-Id: I725fec5e57239f990590d9e447bb057ebc3502a1

7 years agobuild: Enable parallel windows build
Mike Stroyan [Wed, 21 Sep 2016 17:19:07 +0000 (11:19 -0600)]
build: Enable parallel windows build

7 years agobuild: Make windows build of demos parallel build safe
Mike Stroyan [Thu, 22 Sep 2016 20:55:16 +0000 (14:55 -0600)]
build: Make windows build of demos parallel build safe

Use direct output to SPIRV file names to prevent collisions.

7 years agobuild: Fix parallel build of layers
Mike Stroyan [Fri, 16 Sep 2016 15:45:14 +0000 (09:45 -0600)]
build: Fix parallel build of layers

Change layer dependencies to prevent collisions of scripts creating headers.
Use dependency on one custom target for each group of headers built by a custom command.
The layers json targets need to depend on the layers targets.
They expect to copy into a directory created by those targets.
Make dependency of vk_safe_struct.cpp indirect through generate_vk_layer_helpers.
That will wait for a single build of the generated files.

7 years agobuild: Fix ImageMagick_Magick++ search
Mike Stroyan [Tue, 20 Sep 2016 15:08:18 +0000 (09:08 -0600)]
build: Fix ImageMagick_Magick++ search

One cmake test was looking at ImageMagick_MagickWand_INCLUDE_DIR
instead of ImageMagick_Magick++_INCLUDE_DIR

7 years agobuild: UNSET cache variables for FIND_IMAGEMAGICK_API
Mike Stroyan [Tue, 20 Sep 2016 15:05:28 +0000 (09:05 -0600)]
build: UNSET cache variables for FIND_IMAGEMAGICK_API

The way that the ImageMagick component search calls find_path
multiple times with the same variable but different names
does not expect old cache values in the variable.

7 years agolayers: Remove spurious using BASE_NODE::*.
Chris Forbes [Thu, 22 Sep 2016 02:55:13 +0000 (14:55 +1200)]
layers: Remove spurious using BASE_NODE::*.

Inheritance is all public (except for FRAMEBUFFER_NODE, which ought to
have been), and there's no template inheritance involved, so these
didn't do anything interesting.

Fix FRAMEBUFFER_NODE to publicly inherit BASE_NODE, and drop the noise
everywhere.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Get rid of some junk in RENDER_PASS_NODE::ctor
Chris Forbes [Thu, 22 Sep 2016 06:53:59 +0000 (18:53 +1200)]
layers: Get rid of some junk in RENDER_PASS_NODE::ctor

Many moons ago, ShaderChecker used this state. Now, it digs directly in
the CreateInfo, so there are no clients. Nuke it.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Explicitly delete IMAGE_NODE, BUFFER_NODE copy constructors
Chris Forbes [Thu, 22 Sep 2016 06:51:58 +0000 (18:51 +1200)]
layers: Explicitly delete IMAGE_NODE, BUFFER_NODE copy constructors

Previously we defined copy constructors that would almost certainly lead
to bugs if these objects were copied (they copied the atomic values,
etc). The layer doesn't copy these, just disallow it.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Fix VerifyCopyUpdateContents on combined image sampler descriptors
Alex Smith [Fri, 23 Sep 2016 11:18:51 +0000 (12:18 +0100)]
layers: Fix VerifyCopyUpdateContents on combined image sampler descriptors

A missing break at the end of the ImageSampler case results in falling
through to the Image case, leading to spurious validation errors such as:

  vkUpdateDescriptorsSets() failed copy update from Descriptor Set 0x108
  to Descriptor Set 0x137 with error: Attempted copy update to image
  descriptor failed due to: Invalid VkImageView: 0x100000000

7 years agolayers: Prevent reading uninitialized "count" when validating array parameters
Józef Kucia [Fri, 23 Sep 2016 10:45:04 +0000 (12:45 +0200)]
layers: Prevent reading uninitialized "count" when validating array parameters

7 years agoandroid: Add Android and C++ support to a couple files
Cody Northrop [Thu, 22 Sep 2016 20:39:16 +0000 (14:39 -0600)]
android: Add Android and C++ support to a couple files

These are needed downstream in VulkanTools for Android support.

7 years agodemos: Enable arm64 build of Smoke
Cody Northrop [Thu, 22 Sep 2016 19:55:49 +0000 (13:55 -0600)]
demos: Enable arm64 build of Smoke

7 years agodemos: Update Smoke permissions for trace/replay
Cody Northrop [Thu, 22 Sep 2016 19:42:22 +0000 (13:42 -0600)]
demos: Update Smoke permissions for trace/replay

7 years agodemos: Fix Smoke build for Android
Cody Northrop [Thu, 22 Sep 2016 17:08:37 +0000 (11:08 -0600)]
demos: Fix Smoke build for Android

It doesn't appear that this ever worked.

7 years agodemos: Update gradle properties for smoke
Cody Northrop [Thu, 22 Sep 2016 15:42:23 +0000 (09:42 -0600)]
demos: Update gradle properties for smoke

7 years agodemos: Update smoke build script to be automatable
Cody Northrop [Thu, 22 Sep 2016 14:18:52 +0000 (08:18 -0600)]
demos: Update smoke build script to be automatable