platform/upstream/Vulkan-Tools.git
8 years agolayers: Wire up validation of compute pipelines
Chris Forbes [Tue, 31 May 2016 04:09:42 +0000 (16:09 +1200)]
layers: Wire up validation of compute pipelines

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agotests: Update doc for dynamic state tests
Tobin Ehlis [Thu, 26 May 2016 12:14:30 +0000 (06:14 -0600)]
tests: Update doc for dynamic state tests

8 years agowinrt: Add more error logic to Powershell script
Mark Young [Mon, 30 May 2016 16:07:04 +0000 (10:07 -0600)]
winrt: Add more error logic to Powershell script

Add more error detection logic to the install config Powershell
script to help track down recent failures.

8 years agolayers: Fix safe struct codegen of static arrays
Chris Forbes [Thu, 26 May 2016 23:58:23 +0000 (11:58 +1200)]
layers: Fix safe struct codegen of static arrays

VC++ doesn't support this particular corner of C++11.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Handle static arrays in codegen
Tobin Ehlis [Mon, 23 May 2016 22:02:29 +0000 (16:02 -0600)]
layers: Handle static arrays in codegen

Update safe_struct codegen to handle the case of a static array
in a struct. This removes exceptions for VkDebugMarkerMarkerInfoEXT
and VkPipelineColorBlendStateCreateInfo so they can be treated
as all other structs.

8 years agolayers: Fix ImageSampler immut sampler check
Tobin Ehlis [Tue, 24 May 2016 22:47:36 +0000 (16:47 -0600)]
layers: Fix ImageSampler immut sampler check

Was missing IsImmutableSampler() override function for the
ImageSamplerDescriptor class.

8 years agolayers: Use correct log_msg calls in swapchain
Mark Lobodzinski [Tue, 24 May 2016 21:44:50 +0000 (15:44 -0600)]
layers: Use correct log_msg calls in swapchain

Swapchain layer was making a couple of calls directly to
debug_report_log_msg instead of going through log_msg.

Change-Id: I206210bb0d109778c90283144075a77fc459210b

8 years agobuild: Fix Windows compilation warnings
Karl Schultz [Tue, 24 May 2016 19:49:59 +0000 (13:49 -0600)]
build: Fix Windows compilation warnings

Use false/true instead of 0/1 in recently-added std::bind calls.

8 years agolayers: lvlgh 548, remove obsolete RPATH
Jon Ashburn [Fri, 20 May 2016 22:43:12 +0000 (16:43 -0600)]
layers: lvlgh 548, remove obsolete RPATH

Change-Id: Iaba3990d2f417375cfa84a295d7184cedb491da6

8 years agoMerge pull request #583 from lentinem/mlentine-clearpriorfences
Michael Lentine [Tue, 24 May 2016 16:12:39 +0000 (11:12 -0500)]
Merge pull request #583 from lentinem/mlentine-clearpriorfences

Clear priorFences on reset and remove waited on fences from other lists.

8 years agoClear priorFences on reset.
Michael Lentine [Tue, 24 May 2016 14:49:25 +0000 (09:49 -0500)]
Clear priorFences on reset.

8 years agothreading: avoid invalid GIPA call in vkCreateDevice
Chia-I Wu [Mon, 16 May 2016 03:21:03 +0000 (11:21 +0800)]
threading: avoid invalid GIPA call in vkCreateDevice

Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.

8 years agothreading: handle device commands in GetInstanceProcAddr
Chia-I Wu [Mon, 16 May 2016 03:18:31 +0000 (11:18 +0800)]
threading: handle device commands in GetInstanceProcAddr

Call layer_intercept_proc in GetInstanceProcAddr.

8 years agothreading: no interface functions in layer functions
Chia-I Wu [Mon, 16 May 2016 03:17:26 +0000 (11:17 +0800)]
threading: no interface functions in layer functions

Move handling of interface functions in threading::GetInstanceProcAddr to
v0's vkGetInstanceProcAddr.

8 years agothreading: assert valid instance/device in vkGet*ProcAddr
Chia-I Wu [Mon, 16 May 2016 03:14:51 +0000 (11:14 +0800)]
threading: assert valid instance/device in vkGet*ProcAddr

device is always valid in vkGetDeviceProcAddr.  instance is valid if pName
is not intercepted in layer_intercept_instance_proc.

8 years agothreading: improve EnumerateDeviceExtensionProperties
Chia-I Wu [Mon, 16 May 2016 02:16:30 +0000 (10:16 +0800)]
threading: improve EnumerateDeviceExtensionProperties

Call down the next layer unless pLayerName is threading.

8 years agothreading: add threading::layerProps
Chia-I Wu [Mon, 16 May 2016 02:13:45 +0000 (10:13 +0800)]
threading: add threading::layerProps

Replace globalLayerProps and deviceLayerProps with layerProps.  There is
no plan to define more than one layer in the same namespace.

8 years agothreading: drop vk prefix for layer functions
Chia-I Wu [Mon, 16 May 2016 02:02:06 +0000 (10:02 +0800)]
threading: drop vk prefix for layer functions

Drop VK_LAYER_EXPORT as well.

8 years agothreading: put layer functions into a namespace
Chia-I Wu [Mon, 16 May 2016 01:58:50 +0000 (09:58 +0800)]
threading: put layer functions into a namespace

Put all layer fucntions/data into threading namespace.  I had to add some
wrappers to make everything work.

This also removes vkEnumerateInstance*Properties from procmap.  procmap is
used in vkGetDeviceProcAddr and it should not contain
vkEnumerateInstance*Properties in the first place.

8 years agothreading: decorate Vulkan commands with VKAPI_ATTR
Chia-I Wu [Mon, 16 May 2016 03:48:11 +0000 (11:48 +0800)]
threading: decorate Vulkan commands with VKAPI_ATTR

8 years agothreading: move vkEnumerate*Properties around
Chia-I Wu [Mon, 16 May 2016 00:58:07 +0000 (08:58 +0800)]
threading: move vkEnumerate*Properties around

Move them toward the end of the file.

8 years agounique_objects: avoid invalid GIPA call in vkCreateDevice
Chia-I Wu [Mon, 16 May 2016 23:57:15 +0000 (07:57 +0800)]
unique_objects: avoid invalid GIPA call in vkCreateDevice

Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.

8 years agoobject_tracker: avoid invalid GIPA call in vkCreateDevice
Chia-I Wu [Mon, 16 May 2016 23:57:15 +0000 (07:57 +0800)]
object_tracker: avoid invalid GIPA call in vkCreateDevice

Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.

8 years agovk-layer-generate.py: handle device commands in GetInstanceProcAddr
Chia-I Wu [Mon, 16 May 2016 23:43:59 +0000 (07:43 +0800)]
vk-layer-generate.py: handle device commands in GetInstanceProcAddr

Per commit 5bf16c33b9c1f38fc467d94716f276620a265327, extension check is
bypassed in GetInstanceProcAddr for VK_KHR_swapchain functions.

8 years agovk-layer-generate.py: assert valid instance/device in vkGet*ProcAddr
Chia-I Wu [Mon, 16 May 2016 23:39:31 +0000 (07:39 +0800)]
vk-layer-generate.py: assert valid instance/device in vkGet*ProcAddr

"device" should be always valid in vkGetDeviceProcAddr.  "instance" should
be valid in vkGetInstanceProcAddr when the command is not intercepted by
intercept_core_instance_command.

8 years agovk-layer-generate.py: drop vk prefix for layer functions
Chia-I Wu [Fri, 13 May 2016 06:37:49 +0000 (14:37 +0800)]
vk-layer-generate.py: drop vk prefix for layer functions

Drop VK_LAYER_EXPORT as well.

8 years agovk-layer-generate.py: no interface functions in layer functions
Chia-I Wu [Sun, 15 May 2016 23:43:38 +0000 (07:43 +0800)]
vk-layer-generate.py: no interface functions in layer functions

Move handling of interface functions out of layers' GetInstanceProcAddr to
v0's vkGetInstanceProcAddr.

8 years agovk-layer-generate.py: put layer functions into a namespace
Chia-I Wu [Fri, 13 May 2016 06:07:36 +0000 (14:07 +0800)]
vk-layer-generate.py: put layer functions into a namespace

Move everything into namespace object_tracker and unique_objects
respectively.  I had to add some wrappers to make everything work.

8 years agovk-layer-generate.py: simplify vkEnumerate*Properties generation
Chia-I Wu [Fri, 13 May 2016 06:06:08 +0000 (14:06 +0800)]
vk-layer-generate.py: simplify vkEnumerate*Properties generation

Add _gen_layer_interface_v0_functions to generate all of them in one
place.  Get rid of deviceLayerProps as it is always the same as
globalLayerProps.

8 years agovk-layer-generate.py: add intercept_<ext>_command
Chia-I Wu [Mon, 16 May 2016 05:01:39 +0000 (13:01 +0800)]
vk-layer-generate.py: add intercept_<ext>_command

Add intercept_<ext>_command to return intercepted extension commands.
Invoke them from vkGet*ProcAddr.

8 years agovk-layer-generate.py: add intercept_core_*_command
Chia-I Wu [Mon, 16 May 2016 04:27:03 +0000 (12:27 +0800)]
vk-layer-generate.py: add intercept_core_*_command

Replace layer_intercept_instance_proc with
intercept_core_instance_command, which returns all intercepted core
instance commands.

Replace layer_intercept_device_proc with intercept_core_device_command,
which returns all intercepted core device commands.

The only user visible difference should be that vkGetDeviceProcAddr now
returns NULL for instance commands.

8 years agolayers: Display accessMask in HEX
Tobin Ehlis [Mon, 23 May 2016 19:45:36 +0000 (13:45 -0600)]
layers: Display accessMask in HEX

8 years agoMark fence in use after the check.
Michael Lentine [Mon, 23 May 2016 18:18:13 +0000 (13:18 -0500)]
Mark fence in use after the check.

8 years agovulkaninfo: Display apiVersion and driverVersion in a more readable format.
Rene Lindsay [Mon, 23 May 2016 20:00:53 +0000 (13:00 -0700)]
vulkaninfo: Display apiVersion and driverVersion in a more readable format.
Display appropriate VkPhysicalDeviceLimits items in decimal or hex.
Display Memory Property flags by their enum names, instead of integers.
Add some missing properties and enums.

8 years agolayers: Fix query tracking across multiple command buffers on the same queue
Michael Lentine [Fri, 20 May 2016 22:45:02 +0000 (17:45 -0500)]
layers: Fix query tracking across multiple command buffers on the same queue

8 years agolayers: Fix event tracking to differentiate reading and writing
Michael Lentine [Fri, 20 May 2016 15:14:00 +0000 (10:14 -0500)]
layers: Fix event tracking to differentiate reading and writing

8 years agolayers: Move and rename validate_descriptor_availability_in_pool
Chris Forbes [Sun, 22 May 2016 23:29:51 +0000 (11:29 +1200)]
layers: Move and rename validate_descriptor_availability_in_pool

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add getPipelineLayout helper, use it
Chris Forbes [Fri, 20 May 2016 06:27:28 +0000 (18:27 +1200)]
layers: Add getPipelineLayout helper, use it

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Use pipeline layout -> ds layout direct map
Chris Forbes [Fri, 20 May 2016 05:38:44 +0000 (17:38 +1200)]
layers: Use pipeline layout -> ds layout direct map

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Use getDescriptorSetLayout helper in more places
Chris Forbes [Fri, 20 May 2016 05:14:32 +0000 (17:14 +1200)]
layers: Use getDescriptorSetLayout helper in more places

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Remove more AllocateDescriptorSets noise
Chris Forbes [Fri, 20 May 2016 05:12:39 +0000 (17:12 +1200)]
layers: Remove more AllocateDescriptorSets noise

Can argue about whether this stuff at INFO level is worthwhile...
Replace the comments with a clearer set of comments.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Further rework to AllocateDescriptorSets
Chris Forbes [Fri, 20 May 2016 05:04:07 +0000 (17:04 +1200)]
layers: Further rework to AllocateDescriptorSets

- operator new does not return null, it throws.
- do lookups once, at the start

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Get rid of pre-call updates in AllocateDescriptorSets
Chris Forbes [Fri, 20 May 2016 04:34:01 +0000 (16:34 +1200)]
layers: Get rid of pre-call updates in AllocateDescriptorSets

Moving all the updates later requires that we totalize the required
descriptors by type first, rather than testing each binding's
requirement as we go.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agoparameter_validation: avoid invalid GIPA call in vkCreateDevice
Chia-I Wu [Sun, 15 May 2016 23:48:14 +0000 (07:48 +0800)]
parameter_validation: avoid invalid GIPA call in vkCreateDevice

Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.

8 years agoparameter_validation: handle device commands in GetInstanceProcAddr
Chia-I Wu [Sun, 15 May 2016 23:45:43 +0000 (07:45 +0800)]
parameter_validation: handle device commands in GetInstanceProcAddr

Call intercept_core_device_command in GetInstanceProcAddr.

8 years agoparameter_validation: no interface functions in layer functions
Chia-I Wu [Sun, 15 May 2016 23:43:38 +0000 (07:43 +0800)]
parameter_validation: no interface functions in layer functions

Move handling of interface functions in
parameter_validation::GetInstanceProcAddr to v0's vkGetInstanceProcAddr.

8 years agoparameter_validation: refactor GetInstanceProcAddr
Chia-I Wu [Sun, 15 May 2016 23:41:17 +0000 (07:41 +0800)]
parameter_validation: refactor GetInstanceProcAddr

Split command intercepting out to intercept_core_instance_command.  Assert
that instance is valid if intercept_core_instance_command returns nullptr.

8 years agoparameter_validation: add intercept_core_device_command
Chia-I Wu [Sun, 15 May 2016 23:37:41 +0000 (07:37 +0800)]
parameter_validation: add intercept_core_device_command

It returns the function pointers for all intercepted core device commands.
Call intercept_core_device_command from GetDeviceProcAddr.  Assert that
device is valid in GetDeviceProcAddr.

8 years agoparameter_validation: improve EnumerateDeviceExtensionProperties
Chia-I Wu [Sun, 15 May 2016 23:34:09 +0000 (07:34 +0800)]
parameter_validation: improve EnumerateDeviceExtensionProperties

Call down the next layer unless pLayerName is parameter_validation.

8 years agoparameter_validation: add parameter_validation::global_layer
Chia-I Wu [Sun, 15 May 2016 23:30:58 +0000 (07:30 +0800)]
parameter_validation: add parameter_validation::global_layer

Replace pc_global_layers with global_layer.  There is no plan to define
more than one layer in the same namespace.

8 years agoparameter_validation: drop vk prefix for layer functions
Chia-I Wu [Fri, 13 May 2016 06:37:49 +0000 (14:37 +0800)]
parameter_validation: drop vk prefix for layer functions

Drop VK_LAYER_EXPORT as well.

8 years agoparameter_validation: put layer functions into a namespace
Chia-I Wu [Fri, 13 May 2016 06:07:36 +0000 (14:07 +0800)]
parameter_validation: put layer functions into a namespace

Put all layer fucntions/data into parameter_validation namespace.  I had
to add some wrappers to make everything work.

8 years agoparameter_validation: move vkEnumerate*Properties around
Chia-I Wu [Fri, 13 May 2016 06:06:08 +0000 (14:06 +0800)]
parameter_validation: move vkEnumerate*Properties around

Move them toward the end of the file.

8 years agowinrtinstaller: remove dependency on msvcrt redistributables
David Pinedo [Fri, 20 May 2016 21:05:44 +0000 (15:05 -0600)]
winrtinstaller:  remove dependency on msvcrt redistributables

Loader and demos now use static version of msvcrt.
Runtime Installer no longer installs msvcrt.

8 years agolayers: GH7, Replace bad var names in obj_tracker
Mark Lobodzinski [Thu, 19 May 2016 23:06:56 +0000 (17:06 -0600)]
layers: GH7, Replace bad var names in obj_tracker

C++ reserves variable names that start with an underscore followed
by a capital letter. This patch series replaces or removes these
invalid variable names from the LVL codespace.

Change-Id: I71368cf30e267841cedcc3861afa3444689d71da

8 years agolayers: GH7, Fix bad var names in layer utils
Mark Lobodzinski [Thu, 19 May 2016 23:25:59 +0000 (17:25 -0600)]
layers: GH7, Fix bad var names in layer utils

Change-Id: Iec47953ba0611de5c62f4fa876eb02fefca32427

8 years agodemos: GH7, Fix invalid variable names
Mark Lobodzinski [Thu, 19 May 2016 23:22:25 +0000 (17:22 -0600)]
demos: GH7, Fix invalid variable names

Change-Id: Iabb217f70d0068284c682d9da6b4c2834902256e

8 years agoheaders: GH7, Fix bad variable names in vk_icd.h
Mark Lobodzinski [Thu, 19 May 2016 23:17:58 +0000 (17:17 -0600)]
headers: GH7, Fix bad variable names in vk_icd.h

Change-Id: Ic78792a71ebedbdb5bae68c47856db1c89a714af

8 years agolayers: GH7, Fix bad var names in core_validation
Mark Lobodzinski [Thu, 19 May 2016 23:23:38 +0000 (17:23 -0600)]
layers: GH7, Fix bad var names in core_validation

Change-Id: I4fd1b8bb1cb83af633e04fc561771b6d76732588

8 years agolayers: GH7, Fix bad var names in device_limits
Mark Lobodzinski [Thu, 19 May 2016 23:10:58 +0000 (17:10 -0600)]
layers: GH7, Fix bad var names in device_limits

Change-Id: I6dec3fd87f62ac171886562206f3fc528f24bc29

8 years agolayers: GH7, Replace bad variables in image layer
Mark Lobodzinski [Thu, 19 May 2016 23:10:01 +0000 (17:10 -0600)]
layers: GH7, Replace bad variables in image layer

Change-Id: I6c90dafe83bf4e9674b4e32ed867d77b5820006d

8 years agolayers: GH7, Fix bad var names in threading layer
Mark Lobodzinski [Thu, 19 May 2016 23:08:10 +0000 (17:08 -0600)]
layers: GH7, Fix bad var names in threading layer

Change-Id: Iabfd7900a934162a425008593ecc0f0b4d56476e

8 years agolayers: GH7, Fix bad var names in swapchain layer
Mark Lobodzinski [Thu, 19 May 2016 23:01:48 +0000 (17:01 -0600)]
layers: GH7, Fix bad var names in swapchain layer

Change-Id: I46331c530654334abacbfb3ffd3656809f6b7d5d

8 years agotests: GH535 Add tests for clear image errors
Tobin Ehlis [Thu, 19 May 2016 17:08:34 +0000 (11:08 -0600)]
tests: GH535 Add tests for clear image errors

Add test that clears a depth/stencil image with CmdClearColorImage()
and one that clears color image with CmdClearDepthStencilImage()

8 years agolayers: Replace is_depth() in image layer with util function
Tobin Ehlis [Thu, 19 May 2016 16:10:09 +0000 (10:10 -0600)]
layers: Replace is_depth() in image layer with util function

vk_layer_utils has function vk_format_is_depth_or_stencil() that is
exactly the same as local is_depth() function so kill local function
and use utility function.

8 years agolayers: GH535 Add checks for Clear image errors
Tobin Ehlis [Thu, 19 May 2016 15:59:30 +0000 (09:59 -0600)]
layers: GH535 Add checks for Clear image errors

This adds two new checks to make sure that CmdClearColorImage is
not called with depth/stencil format image and that
CmdClearDepthStencilImage is not called with color format image.

Also add getImageState() helper function to image layer to
simplify/unify code for lookup of IMAGE_STATE from imageMap.

8 years agodoc: Add "Pending" string back in for shader checker
Tobin Ehlis [Thu, 19 May 2016 19:08:11 +0000 (13:08 -0600)]
doc: Add "Pending" string back in for shader checker

"Pending" is used as a trigger keyword for document validator to know
when one section is ending and a new section is starting so adding it
back in to get doc validation passing.

8 years agodocs: update v0 languages for device layer deprecation
Chia-I Wu [Thu, 19 May 2016 02:45:02 +0000 (10:45 +0800)]
docs: update v0 languages for device layer deprecation

Clarify that a layer's

  vkEnumerateInstanceLayerProperties
  vkEnumerateInstanceExtensionProperties
   - should enumerate the layer itself

  vkEnumerateDeviceLayerProperties
   - is deprecated

  vkEnumerateDeviceExtensionProperties
   - must handle all layers by chaining

  vkCreateInstance
   - `pNext` handling is covered by the spec

  vkCreateDevice
   - allow validation layers to validate layer and extension names

Clarify that the layer library's

  vkEnumerateInstanceLayerProperties
  vkEnumerateInstanceExtensionProperties
   - are not used by the desktop loader
   - can be aliases to the layer's versions when the layer library
     contains only one layer

  vkEnumerateDeviceLayerProperties
  vkEnumerateDeviceExtensionProperties
   - are not used by the desktop loader

  vkGetInstanceProcAddr
   - mention that the special cases for vkCreateDevice and device commands
     are for compatibility

8 years agolayers: Updated validation layer details doc
Mark Lobodzinski [Thu, 19 May 2016 17:50:32 +0000 (11:50 -0600)]
layers: Updated validation layer details doc

Some rewording, pulled out pending work sections and pointed readers
to Github for open/pending issues or feature requests.

Change-Id: I1ad55777a064e7f26a3f5cce48fb63d9e12d4b32

8 years agolayers: DescriptorSet class clean-up
Tobin Ehlis [Thu, 19 May 2016 14:00:00 +0000 (08:00 -0600)]
layers: DescriptorSet class clean-up

Minor formatting improvements, removed some useless "const" decls
and unused vars and updated a few error codes to be more appropriate.

8 years agolayers: Verify that src of copy update is updated
Tobin Ehlis [Thu, 19 May 2016 13:56:18 +0000 (07:56 -0600)]
layers: Verify that src of copy update is updated

Before verifying source update comments make sure that the source
descriptors have been updated. This guards against some obscure
corner cases where a bad source descriptor could slip through the
content verification.

8 years agolayers: Refactor DescriptorSet update interface
Tobin Ehlis [Wed, 18 May 2016 19:43:26 +0000 (13:43 -0600)]
layers: Refactor DescriptorSet update interface

Mainly refactor and moving code in order to provide an interface to
DescriptorSet class that matches top-level vkUpdateDescriptorSets()
function.

Split the validation of an update as a separate task from performing
the update. This allows validation prior to calling down the chain
and then only update the state if validation is clean.

Hoisted all of the update validation into the DescriptorSet class
which prevents having to copy all of the maps into the individual
Descriptor classes. This simplifies both their creation and updating
their contents.

Updated the top-level core_validation UpdateDescriptorSets() code
to match Vulkan Validation Layer Authoring Guidelines. As this is
an initial POC for the architecture, I kept the Pre* & Post* functions
in the core_validation.cpp file, but they should eventually be spun
out.

8 years agolayers: Migrate types from core_validation.h
Tobin Ehlis [Tue, 17 May 2016 14:01:41 +0000 (08:01 -0600)]
layers: Migrate types from core_validation.h

This change just moves a few types from core_validation.h to
core_validation_types.h. This is preparation for migrating DescriptorSet
class to store GLOBAL_CB_NODE ptrs directly.

8 years agolayers: Simplify command buffer pool cleanup
Chris Forbes [Tue, 17 May 2016 06:47:09 +0000 (18:47 +1200)]
layers: Simplify command buffer pool cleanup

We don't need to carefully pick through the pool's buffers, removing
them. We're about to throw away the whole container.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: More slight tidying
Chris Forbes [Tue, 17 May 2016 05:42:27 +0000 (17:42 +1200)]
layers: More slight tidying

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agouse getFramebuffer more
Chris Forbes [Tue, 17 May 2016 03:45:31 +0000 (15:45 +1200)]
use getFramebuffer more

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: simplify TransitionSubpassLayouts
Chris Forbes [Tue, 17 May 2016 03:31:00 +0000 (15:31 +1200)]
layers: simplify TransitionSubpassLayouts

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add getFramebuffer() helper
Chris Forbes [Tue, 17 May 2016 03:27:58 +0000 (15:27 +1200)]
layers: Add getFramebuffer() helper

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Simplify CmdEndRenderPass
Chris Forbes [Tue, 17 May 2016 02:59:22 +0000 (14:59 +1200)]
layers: Simplify CmdEndRenderPass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add getRenderPass helper
Chris Forbes [Mon, 16 May 2016 23:36:23 +0000 (11:36 +1200)]
layers: Add getRenderPass helper

Various similar functions exist, but this one was missing. Returns the
RENDER_PASS_NODE ptr if it exists, or nullptr otherwise.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Unify cb lookup in CmdBeginRenderPass
Chris Forbes [Mon, 16 May 2016 23:02:24 +0000 (11:02 +1200)]
layers: Unify cb lookup in CmdBeginRenderPass

We already have a GLOBAL_CB_NODE ptr here, and we know it's not null.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Remove lastBound state reset in destructor
Tobin Ehlis [Thu, 19 May 2016 12:58:13 +0000 (06:58 -0600)]
layers: Remove lastBound state reset in destructor

No need to reset this state right before GLOBAL_CB_NODE is destroyed.

8 years agolayers: Improve DescriptorSet cleanup
Tobin Ehlis [Tue, 17 May 2016 20:23:46 +0000 (14:23 -0600)]
layers: Improve DescriptorSet cleanup

Create private helper function InvalidateBoundCmdBuffers() within the
DescriptorSet class to unify invalidate cases due to set being updated
or freed.

Add a destructor for DescriptorSet to make sure that no bound cmd buffers
hang on to deleted set references.

8 years agolayers: Reduce DescriptorSet map look-ups
Tobin Ehlis [Tue, 17 May 2016 16:41:55 +0000 (10:41 -0600)]
layers: Reduce DescriptorSet map look-ups

Migrate some data structures to refer to DescriptorSet class
instead of raw VkDescriptorSet. This saves map look-ups.

8 years agolayers: Refactor DescriptorSet Update code
Tobin Ehlis [Tue, 17 May 2016 14:31:46 +0000 (08:31 -0600)]
layers: Refactor DescriptorSet Update code

This migrates code for DescriptorSet in_use and flagging bound
command buffers as invalid from core_validation.cpp into DescriptorSet
class.

8 years agolayers: Fix intercepts of parameter_validation
Tobin Ehlis [Tue, 17 May 2016 16:38:45 +0000 (10:38 -0600)]
layers: Fix intercepts of parameter_validation

Make parameter_validation register vkFreeDescriptorSets() and
vkUpdateDescriptorSets() functions as intercepted.

8 years agolayers: Migrate types from core_validation.h
Tobin Ehlis [Tue, 17 May 2016 14:01:41 +0000 (08:01 -0600)]
layers: Migrate types from core_validation.h

This change just moves a few types from core_validation.h to
core_validation_types.h. This is preparation for migrating DescriptorSet
class to store GLOBAL_CB_NODE ptrs directly.

8 years agolayers: Const correctness for debug_report_data param
Tobin Ehlis [Tue, 17 May 2016 13:58:01 +0000 (07:58 -0600)]
layers: Const correctness for debug_report_data param

debug_report_data pointer passed to various log functions can be const.

8 years agodoc: update layer and loader doc for device lyaer deprecation
Jon Ashburn [Wed, 18 May 2016 20:07:47 +0000 (14:07 -0600)]
doc: update layer and loader doc for device lyaer deprecation

Change-Id: I53ff750a25fd5ea390c22f5ded2247dfbedce2aa

8 years agoRemove Xlib dependency when XCB is used
Pavol Klacansky [Tue, 10 May 2016 09:08:19 +0000 (03:08 -0600)]
Remove Xlib dependency when XCB is used

Change-Id: I3626f299aae8acc2640e3f233a46d84cc819fd63

8 years agolayers: Update cmds allowed in 2nd CB subpass
Tobin Ehlis [Tue, 17 May 2016 20:50:07 +0000 (14:50 -0600)]
layers: Update cmds allowed in 2nd CB subpass

If subpassContents are of type VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
then CmdNextSubpass and CmdEndRenderPass are accepatable cmds to be added to
the secondary cmd buffer.

Spec language is from section 7.4 Render Pass Commands: If contents is
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, the contents are recorded in
secondary command buffers that will be called from the primary command
buffer, and vkCmdExecuteCommands is the only valid command on the command
buffer until vkCmdNextSubpass or vkCmdEndRenderPass.

8 years agolayers: GH544 Allow INVALID cmd buffers to be reset
Tobin Ehlis [Mon, 16 May 2016 17:23:01 +0000 (11:23 -0600)]
layers: GH544 Allow INVALID cmd buffers to be reset

BeginCommandBuffer performs an implicit reset of a command buffer.
This allows command buffers in the INVALID state to undergo this
implicit reset.

In order to make sure that an invalid command buffer in the INVALID
state has had EndCommandBuffer called, this commit adds a CMD_END
command that's inserted at the end of a command. If a command buffer
in the INVALID state has had EndCommandBuffer called and it is now
having BeginCommandBuffer called, it's ok to implicitly reset the
command buffer.
buffer's vector of commands.

8 years agolayers: Update layer README.md for release
Mark Lobodzinski [Tue, 17 May 2016 20:52:43 +0000 (14:52 -0600)]
layers: Update layer README.md for release

Updated language surrounding device/instance layer changes, fixed
up some markdown formatting issues.

Change-Id: I66353eeeef6789ab15c4e08c21f9da149f9ce09e

8 years agodemos: GH#559 fix for new Android windows
Ian Elliott [Tue, 17 May 2016 18:03:35 +0000 (12:03 -0600)]
demos: GH#559 fix for new Android windows

On Android, treat a 1st-time new window differently from an nth-time
new window.

8 years agolayers: Add correct IsStorage() to TexelDescriptor
Tobin Ehlis [Tue, 17 May 2016 12:43:48 +0000 (06:43 -0600)]
layers: Add correct IsStorage() to TexelDescriptor

Similar to Norbert's previous fix for ImageDescriptor, TexelDescriptor
was also missing correct IsStorage() override function and so would always
return false instead of actual storage_ value.

Change-Id: I9006cdb614c5b78db0a68b71dcc4300f4c5c0d7f

8 years agolayers: Ignore 'noautovalidity' params w/codgen
Dustin Graves [Mon, 16 May 2016 17:07:59 +0000 (11:07 -0600)]
layers: Ignore 'noautovalidity' params w/codgen

Add special handling to the parameter_validation layer's code
generator for vk.xml parameters with the 'noautovalidty' attribute:
- Ignore vk.xml parameters with the 'noautovalidity' attribute
  when generating code for the parameter_validation layer.
- Implement custom validation routines for parameters with
  'noautovalidity' tags.

Issues-Addressed: GitHub 515
Change-Id: I1bd28cc79233fb8b040d6e107ed5e2176a84edb5

8 years agolayers: Fix transposed messages
Dustin Graves [Tue, 17 May 2016 00:35:55 +0000 (18:35 -0600)]
layers: Fix transposed messages

Fix parameter_validation::get_result_rescription utility
function, which had the messages for VK_ERROR_DEVICE_LOST
and VK_ERROR_INITIALIZATION_FAILED transposed.

Change-Id: I47126389cbfafce663ec474fa04b899e6f2f663c

8 years agoloader: update linux so version
Jeremy Hayes [Tue, 17 May 2016 15:32:12 +0000 (09:32 -0600)]
loader: update linux so version

Change-Id: I84656754952e7488712ca5bcd4701e2e85d92cce

8 years agoloader: Treat GLOBAL layers same as INSTANCE layers
Jon Ashburn [Tue, 17 May 2016 14:43:38 +0000 (08:43 -0600)]
loader: Treat GLOBAL layers same as INSTANCE layers

Also change validation layers type to be GLOBAL so they work with old loaders
prior to device layer deprecation.

Change-Id: I32788cb7788c8ad840ced15236c5ed792edfbbff

8 years agolayers: GH485, Remove redundant format props check
Mark Lobodzinski [Tue, 17 May 2016 14:44:09 +0000 (08:44 -0600)]
layers: GH485, Remove redundant format props check

With new checks in place for CreateImage, old check in CreateRenderPass
is redundant and can be removed.

Change-Id: I53e5201f453041b3c8ba17edc193c1f3b142f4cb