platform/upstream/Vulkan-Tools.git
8 years agolayers: Add component awareness to SC interface matching
Chris Forbes [Wed, 17 Feb 2016 01:44:52 +0000 (14:44 +1300)]
layers: Add component awareness to SC interface matching

- Adds more tests for mismatch by component and by location
- Removes dead handling of builtins (we only care about collecting builtin /decorations/ to aid in the interface block handling;
    we don't really care about producing the set of builtins used overall.)

Some SC error messages change slightly, as interstage locations now include the component index.

Fixes internal bug 26609754

V2: Remove dead code

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agoloader: Fix MSVS warnings
Karl Schultz [Wed, 24 Feb 2016 21:39:39 +0000 (14:39 -0700)]
loader: Fix MSVS warnings

Apply branch 'fix-warnings' of https://github.com/null77/Vulkan-LoaderAndValidationLayers into null77-fix-warnings

8 years agolayers: Fixed markStoreImagesAndBuffersAsWritten() in mem_tracker
szdarkhack [Tue, 23 Feb 2016 19:32:01 +0000 (21:32 +0200)]
layers: Fixed markStoreImagesAndBuffersAsWritten() in mem_tracker

It now correctly treats images as images instead of buffers.

8 years agoloader: Update doc to add the Linux search path
Jon Ashburn [Wed, 24 Feb 2016 19:00:55 +0000 (12:00 -0700)]
loader: Update doc to add the Linux search path

$HOME/.local/share/vulkan/icd.d or explicit_layer.d or implicit_layer.d

8 years agoloader: Add example code
Courtney Goeltzenleuchter [Mon, 15 Feb 2016 22:05:16 +0000 (15:05 -0700)]
loader: Add example code

8 years agoloader: doc cleanup
Courtney Goeltzenleuchter [Mon, 15 Feb 2016 22:07:54 +0000 (15:07 -0700)]
loader: doc cleanup

8 years agoloader: doc cleanup
Courtney Goeltzenleuchter [Mon, 15 Feb 2016 21:59:37 +0000 (14:59 -0700)]
loader: doc cleanup

Fix some awkward wording.

Conflicts:
loader/LoaderAndLayerInterface.md

8 years agolayers: Make layer option names more consistent and update docs
Mark Lobodzinski [Tue, 23 Feb 2016 16:58:39 +0000 (09:58 -0700)]
layers: Make layer option names more consistent and update docs

8 years agoCheck boolean values in vkCreateSampler
rdb [Sun, 21 Feb 2016 01:14:18 +0000 (02:14 +0100)]
Check boolean values in vkCreateSampler

8 years agodemos: Fix vulkaninfo on win32 to use existing console
Hugo Landau [Tue, 16 Feb 2016 15:44:03 +0000 (15:44 +0000)]
demos: Fix vulkaninfo on win32 to use existing console

The vulkaninfo utility is compiled as /SUBSYSTEM:APPLICATION but
attempts to allocate its own console and print to it. Not only
does this appear to be unreliable (sometimes no output is printed),
it is unnecessary if the utility is compiled as /SUBSYSTEM:CONSOLE.

This removes unnecessary console manipulation code. By using
/SUBSYSTEM:CONSOLE, the ordinary main() entrypoint function can be
used.

The console is still enlarged if it was opened exclusively for the
process by detecting whether it was so opened. Likewise, the process
still sleeps forever if the console is exclusive to the process.
The process behaves like a normal command line process when executed
from the command line.

Fixes lunarg issue 350.

8 years agodocs: fix bad link in layers/README.md
Karl Schultz [Wed, 24 Feb 2016 17:57:40 +0000 (10:57 -0700)]
docs: fix bad link in layers/README.md

8 years agolayers: Added TODO in drawstate for Khronos-github issue #30
Mark Lobodzinski [Wed, 24 Feb 2016 16:52:53 +0000 (09:52 -0700)]
layers: Added TODO in drawstate for Khronos-github issue #30

8 years agolayers: draw_state VK_WHOLE_SIZE in barriers
Mike Stroyan [Mon, 22 Feb 2016 16:15:19 +0000 (09:15 -0700)]
layers: draw_state VK_WHOLE_SIZE in barriers

Allow use of VK_WHOLE_SIZE in barriers validation.

8 years agolayers: Allow draw_state layout mismatch with UNDEFINED
Mike Stroyan [Thu, 18 Feb 2016 21:44:17 +0000 (14:44 -0700)]
layers: Allow draw_state layout mismatch with UNDEFINED

Also allow CB initialLayout of VK_IMAGE_LAYOUT_UNDEFINED to match
any layout.

8 years agolayers: Fix memory leak in mem_tracker
Mark Lobodzinski [Tue, 23 Feb 2016 21:11:46 +0000 (14:11 -0700)]
layers: Fix memory leak in mem_tracker

Certain codepaths could result in the validation_functions vector growing
unbounded, causing performance hits in QueueSubmit.

8 years agolayers: Remove unnecessary null pointer checks
Eric Engestrom [Sun, 21 Feb 2016 19:58:09 +0000 (19:58 +0000)]
layers: Remove unnecessary null pointer checks

Fixes GitHub Issue #6

8 years agolayers: LX232, Removed invalid object_tracker QueueBindSparse error message
Mark Lobodzinski [Mon, 22 Feb 2016 20:59:30 +0000 (13:59 -0700)]
layers: LX232, Removed invalid object_tracker QueueBindSparse error message

8 years agolayers: MR247, Snap start and end to page to compare for mem_tracker
Eric Werness [Fri, 12 Feb 2016 22:34:27 +0000 (14:34 -0800)]
layers: MR247, Snap start and end to page to compare for mem_tracker

8 years agoloader: Fix typos, spelling, grammar in loader interface doc
Jeff Juliano [Wed, 17 Feb 2016 22:25:42 +0000 (17:25 -0500)]
loader: Fix typos, spelling, grammar in loader interface doc

8 years agobuild: Remove LunarGLASS from Win update ext sources.
Karl Schultz [Mon, 22 Feb 2016 16:57:14 +0000 (09:57 -0700)]
build: Remove LunarGLASS from Win update ext sources.

8 years agodemos: Properly destroy DebugReportCallback
Mark Lobodzinski [Mon, 22 Feb 2016 16:32:55 +0000 (09:32 -0700)]
demos: Properly destroy DebugReportCallback

Error resulted in warnings when shutting down tri --validate.
Also added DebugReportMessage setup.

8 years agoUpdate build info to reflect ICD moving to VulkanTools
Karl Schultz [Mon, 22 Feb 2016 16:15:45 +0000 (09:15 -0700)]
Update build info to reflect ICD moving to VulkanTools

8 years agodemos: Fix drawstate transition errors in tri.
Mark Lobodzinski [Mon, 22 Feb 2016 15:57:55 +0000 (08:57 -0700)]
demos: Fix drawstate transition errors in tri.

8 years agoBuild: Remove LunarGLASS from update_external_sources.sh
GregF [Fri, 19 Feb 2016 18:50:05 +0000 (11:50 -0700)]
Build: Remove LunarGLASS from update_external_sources.sh

LunarGLASS is no longer built from here since it not needed for this repo.
Rather, an update_external_sources.sh has been added to VulkanTools which
can be use to build LunarGLASS.

8 years agoglslang: Update revision to pick up recent fixes
Karl Schultz [Mon, 22 Feb 2016 15:29:42 +0000 (08:29 -0700)]
glslang: Update revision to pick up recent fixes

8 years agoloader: Fix Wayland support
Jason Ekstrand [Sat, 13 Feb 2016 01:25:03 +0000 (17:25 -0800)]
loader: Fix Wayland support

All that was needed was to fix some misplaced braces, fix a couple of
copy+paste problems from Mir, and add a lookup function.  Getting Mir
support working should be pretty easy.

Conflicts:
layers/swapchain.cpp

8 years agocmake: Add options for each of the linux wsi interfaces
Jason Ekstrand [Sat, 20 Feb 2016 16:13:28 +0000 (08:13 -0800)]
cmake: Add options for each of the linux wsi interfaces

We default everything except XCB to off since that is the only one that has
been well-tested up to now.

8 years agoDon't use width=0,height=0 on window minimize
Piers Daniell [Thu, 18 Feb 2016 17:54:15 +0000 (10:54 -0700)]
Don't use width=0,height=0 on window minimize

Vulkan doesn't support width=0 and height=0 so we just ignore the
minimize request on Windows.

8 years agodemos: Add --validate option to tri
Jon Ashburn [Fri, 19 Feb 2016 22:23:41 +0000 (15:23 -0700)]
demos: Add --validate option to tri

First tries to use standard_validation, if not found then a list of
validation layers.

8 years agoloader: Fix standard_validation enumeration on instance chain
Jon Ashburn [Fri, 19 Feb 2016 22:22:10 +0000 (15:22 -0700)]
loader: Fix standard_validation enumeration on instance chain

Fixed regression and still handle no layers found case.

8 years agowinrtinstaller: update README.txt to better explain rt installer exit codes
David Pinedo [Fri, 19 Feb 2016 19:37:48 +0000 (12:37 -0700)]
winrtinstaller: update README.txt to better explain rt installer exit codes

8 years agolayers: Allow draw_state layout mismatch with UNDEFINED
Michael Lentine [Thu, 18 Feb 2016 19:57:18 +0000 (13:57 -0600)]
layers: Allow draw_state layout mismatch with UNDEFINED

8 years agoloader: Fix threading layer name in loader standard_threading
Jon Ashburn [Thu, 18 Feb 2016 19:48:24 +0000 (12:48 -0700)]
loader: Fix threading layer name in loader standard_threading

8 years agoloader: Environment variable override got broken with recent change
Jon Ashburn [Thu, 18 Feb 2016 19:45:39 +0000 (12:45 -0700)]
loader: Environment variable override got broken with recent change

This fixes that

Conflicts:
update_external_sources.bat

8 years agolayers: Fix android build and update hash.
Michael Lentine [Thu, 18 Feb 2016 16:07:26 +0000 (10:07 -0600)]
layers: Fix android build and update hash.

Update android build code to fix generated paramchecker.

Fix draw_state custom hash algorithm for ImageSubresourcePair.

8 years agoloader: Fix windows build from last loader checkin
Jon Ashburn [Wed, 17 Feb 2016 20:18:08 +0000 (13:18 -0700)]
loader: Fix windows build from last loader checkin

8 years agoloader: Add a ICD and layer search path for loader to discover JSON files
Jon Ashburn [Tue, 16 Feb 2016 22:34:16 +0000 (15:34 -0700)]
loader: Add a ICD and layer search path for loader to discover JSON files

path is $HOME/.local/share/vulkan/*

8 years agolayers: Fix typo in mem_tracker
Mark Lobodzinski [Wed, 17 Feb 2016 17:28:38 +0000 (10:28 -0700)]
layers: Fix typo in mem_tracker

8 years agolayers: param_check- enable android build
Mike Stroyan [Wed, 17 Feb 2016 00:29:52 +0000 (17:29 -0700)]
layers: param_check- enable android build

Update android build to use new param_check header files

8 years agolayers: Fix possible crash in draw_state layer
Mark Lobodzinski [Fri, 12 Feb 2016 21:10:53 +0000 (14:10 -0700)]
layers: Fix possible crash in draw_state layer

Uninitialized descriptor slots are not filled this could cause
null pointer dereferences.

8 years agolayers: Fix UpdateDescriptorSets crash in mem_tracker
Mark Lobodzinski [Fri, 12 Feb 2016 19:06:09 +0000 (12:06 -0700)]
layers: Fix UpdateDescriptorSets crash in mem_tracker

Validation was handling TEXEL_BUFFER descriptorTypes incorrectly.
Removing for now.

8 years agodemos: Adjust vulkaninfo failure cases
Dustin Graves [Mon, 15 Feb 2016 22:54:52 +0000 (15:54 -0700)]
demos: Adjust vulkaninfo failure cases

For Windows, after vulkaninfo allocates a console, it tries to resize the
console and change the title text.  Failure of either operation was
treated as console icreation failure, which led to vulkaninfo printing
to the console and then closing the console immediately.  Now treating
AllocConsole() failure as console creation failure and ignoring resize and
title text change failures.  With this change, resize failure will not
stop the app from pausing after printing info to the console.

8 years agowinrtinstaller: change error message
David Pinedo [Sat, 13 Feb 2016 21:06:55 +0000 (14:06 -0700)]
winrtinstaller: change error message

8 years agowinrtinstaller: Unique error codes
David Pinedo [Fri, 12 Feb 2016 19:23:57 +0000 (12:23 -0700)]
winrtinstaller: Unique error codes

8 years agolayers: MR243: NULL pointer and struct type checks
Dustin Graves [Tue, 9 Feb 2016 21:00:18 +0000 (14:00 -0700)]
layers: MR243: NULL pointer and struct type checks

Verify that required parameters are not NULL and that structures with
sType fields have the correct VkStructureType values.  Messages are
logged for the following conditions:
 - A pointer is NULL and is not marked as optional in the XML
 - An array is NULL and is not marked as optional in the XML, unless
   its count is 0
 - An array count is 0 and is not marked as optional in the XML
 - A structre's sType value does not match the value specified
   in the XML

8 years agolayers: MR243: Add param checker code generation
Dustin Graves [Thu, 11 Feb 2016 17:10:14 +0000 (10:10 -0700)]
layers: MR243: Add param checker code generation

Generate param checker code to verify that required pointer/array
parameters are not NULL and that structures with sType fields
have the correct VkStructureType value.  The checks are generated
from the Vulkan XML API registry based on the optional parameter
tag and sType comments.

8 years agospirv-tools: update versions for 1.0.3
Jon Ashburn [Thu, 18 Feb 2016 21:51:18 +0000 (14:51 -0700)]
spirv-tools: update versions for 1.0.3

8 years agolayers: Fix android build of safe_struct wrappers
Tobin Ehlis [Tue, 16 Feb 2016 19:08:54 +0000 (12:08 -0700)]
layers: Fix android build of safe_struct wrappers

Handle default case in switch statement for descriptor types.

8 years agolayers: MR221: Correct name for unique_objects layer
Courtney Goeltzenleuchter [Mon, 8 Feb 2016 18:16:21 +0000 (11:16 -0700)]
layers: MR221: Correct name for unique_objects layer

8 years agolayers: MR221: rename threading test
Courtney Goeltzenleuchter [Sun, 7 Feb 2016 00:11:22 +0000 (17:11 -0700)]
layers: MR221: rename threading test

The threading validation layer has been basically
re-written, so updating the vendor name accordingly

8 years agolayers: MR221: Android needs Enumerate*Properties
Courtney Goeltzenleuchter [Fri, 12 Feb 2016 20:46:04 +0000 (13:46 -0700)]
layers: MR221: Android needs Enumerate*Properties

Android queries information about layers and extensions
from the layers via the Enumerate*Properties calls so
need them to function correctly. This patch adds missing
functions.

---------------------------

8 years agolayers: MR221: Add Enumerate for Android
Courtney Goeltzenleuchter [Fri, 12 Feb 2016 20:30:20 +0000 (13:30 -0700)]
layers: MR221: Add Enumerate for Android

Android does not use json files to store layer and
extension information and needs to query it directly
from the layer.

8 years agolayers: MR221: Update extension info to match json files
Courtney Goeltzenleuchter [Fri, 12 Feb 2016 20:22:04 +0000 (13:22 -0700)]
layers: MR221: Update extension info to match json files

8 years agoswapchain: MR221: Remove unused property info
Courtney Goeltzenleuchter [Sun, 7 Feb 2016 00:30:30 +0000 (17:30 -0700)]
swapchain: MR221: Remove unused property info

8 years agoswapchain: MR221: Use proper layer name
Courtney Goeltzenleuchter [Sun, 7 Feb 2016 00:30:10 +0000 (17:30 -0700)]
swapchain: MR221: Use proper layer name

8 years agolayers: MR221: Fix implementationVersion
Courtney Goeltzenleuchter [Sun, 7 Feb 2016 00:22:25 +0000 (17:22 -0700)]
layers: MR221: Fix implementationVersion

8 years agolayers: Special case VkWriteDescriptorSet safe_struct code
Tobin Ehlis [Fri, 12 Feb 2016 21:37:09 +0000 (14:37 -0700)]
layers: Special case VkWriteDescriptorSet safe_struct code

VkWriteDescriptorSet may have non-null ptrs that we don't care about.
Add a special case for this struct in safe_struct codegen that will only
check the array ptrs that we care about based on the descriptorType.

Also update safe_struct codegen so that all ptrs in structs are initially
set as NULL, and then only updated if src struct ptr is non-NULL.

Update unique_objects to base "if" guards around ptrs to be based off of
the shadowed safe_struct ptrs for any ptrs below the first level input
params. This is because safe_struct initialization will have already copied
down any ptrs so if there are any additional guards in safe_struct
shadowing, such as for VkWriteDescriptorSet, this allows unique_objects.cpp
to make use of only valid info and not have to replicate special cases.

8 years agoloader:Force Cmake to build dev_ext_trampoline.c always relase mode
Jon Ashburn [Fri, 12 Feb 2016 23:39:20 +0000 (16:39 -0700)]
loader:Force Cmake to build dev_ext_trampoline.c always relase mode

This makes sure this file always has tail call optimizations occuring

8 years agoUpdate build info and references to new public GitHub names
Peter Lohrmann [Tue, 16 Feb 2016 23:20:58 +0000 (15:20 -0800)]
Update build info and references to new public GitHub names

Update build instructions to reference new repository names in GitHub

Update all references to the new public GitHub repository names, and
also switches from SSH access to the repositories to HTTPS access.

Update glslang_revision to reference new GitHub repo

8 years agolayers: Fix Win32 build errors in draw_state
Mark Lobodzinski [Tue, 16 Feb 2016 01:23:12 +0000 (18:23 -0700)]
layers: Fix Win32 build errors in draw_state

8 years agolayers: Re-enable support for linux
Mark Lobodzinski [Tue, 16 Feb 2016 00:33:56 +0000 (17:33 -0700)]
layers: Re-enable support for linux

8 years agoloader: Add better checks for malformed disable_environment in layer JSON file
Jon Ashburn [Fri, 12 Feb 2016 21:46:41 +0000 (14:46 -0700)]
loader: Add better checks for malformed disable_environment in layer JSON file

8 years agolayers: Update debug_report spec version in json files to match vulkan.h
Karl Schultz [Mon, 15 Feb 2016 18:44:53 +0000 (11:44 -0700)]
layers: Update debug_report spec version in json files to match vulkan.h

8 years agoloader: move doc png file to loader current directory for use of same file in SDK
Jon Ashburn [Mon, 15 Feb 2016 17:19:26 +0000 (10:19 -0700)]
loader: move doc png file to loader current directory for use of same file in SDK

8 years agoloader: more doc updates
Jon Ashburn [Mon, 15 Feb 2016 04:54:52 +0000 (21:54 -0700)]
loader: more doc updates

8 years agoloader: Add more info in layer interface doc, the layer section
Jon Ashburn [Mon, 15 Feb 2016 04:40:34 +0000 (21:40 -0700)]
loader: Add more info in layer interface doc, the layer section

8 years agoloader: Doc review comments
Courtney Goeltzenleuchter [Sun, 14 Feb 2016 18:42:24 +0000 (11:42 -0700)]
loader: Doc review comments

8 years agoloader: Add images to interface Doc
Courtney Goeltzenleuchter [Sun, 14 Feb 2016 17:48:22 +0000 (10:48 -0700)]
loader: Add images to interface Doc

8 years agoloader: Add line breaks to interface doc
Courtney Goeltzenleuchter [Sun, 14 Feb 2016 16:31:24 +0000 (09:31 -0700)]
loader: Add line breaks to interface doc

Wrapped long lines to make it easier to edit in text based editor.
Also hoping that editing diffs could be smaller since a line is not
a whole paragraph.

8 years agoloader: change so LoaderAndLayerInterface document is the sole document
Jon Ashburn [Mon, 15 Feb 2016 04:00:39 +0000 (21:00 -0700)]
loader: change so LoaderAndLayerInterface document is the sole document

8 years agolayers: Fix Windows build with device_limits.cpp
Jon Ashburn [Sun, 14 Feb 2016 16:33:59 +0000 (09:33 -0700)]
layers: Fix Windows build with device_limits.cpp

8 years agoloader: check for null pointers in loader_add_layer_property_meta
David Pinedo [Sun, 14 Feb 2016 01:19:50 +0000 (18:19 -0700)]
loader: check for null pointers in loader_add_layer_property_meta

Fixes vulkaninfo when only RT is installed and there are no layers
installed.

8 years agoloader: For dev ext trampoline error code, add error logging
Jon Ashburn [Fri, 12 Feb 2016 15:20:06 +0000 (08:20 -0700)]
loader: For dev ext trampoline error code, add error logging

8 years agoloader: add support for standard_validation layer enabled from env var
Jon Ashburn [Fri, 12 Feb 2016 01:59:43 +0000 (18:59 -0700)]
loader: add support for standard_validation layer enabled from env var

Also fix memory corruption issue with the original std_validation patch.

8 years agoloader: Add feature standard-validation layer from application
Jon Ashburn [Thu, 11 Feb 2016 03:59:26 +0000 (20:59 -0700)]
loader: Add feature standard-validation layer from application

Adds a validation layer grouping VK_LAYER_LUNARG_standard_validation, which
is the set of validation layers in a fixed order.

This only adds support for enumerating the meta layer and enabling it explicitly
from the app.  Environment variable enablement of this layer is not yet added.

8 years agoloader: Update the interface document
Jon Ashburn [Thu, 11 Feb 2016 21:57:30 +0000 (14:57 -0700)]
loader: Update the interface document
Mostly formatting and typos.

8 years agoloader: rerun clang-format on some files
Jon Ashburn [Thu, 11 Feb 2016 03:50:19 +0000 (20:50 -0700)]
loader: rerun clang-format on some files

8 years agowindowsrtinstall: Fix errors on vcredist not being present before install.
Mark Young [Fri, 12 Feb 2016 20:56:56 +0000 (13:56 -0700)]
windowsrtinstall: Fix errors on vcredist not being present before install.

We install the 2013 VC redistributables, but we first read the registry to
determine if they were already installed.  That registry read returns an
error if they aren't already present.  So, we clear the error after reading
the registry.  We also added the 32-bit 2013 VC redistributables to the
64-bit OS install, just to be safe.

8 years agocodegen: Add special case for DebugReportCallback inconsistency
Karl Schultz [Fri, 12 Feb 2016 20:50:13 +0000 (13:50 -0700)]
codegen: Add special case for DebugReportCallback inconsistency

8 years agowindowssdk: Fixed Config powershell script to look at Windows Folder.
Mark Young [Fri, 12 Feb 2016 19:07:45 +0000 (12:07 -0700)]
windowssdk: Fixed Config powershell script to look at Windows Folder.

This replaces a hard-code to C:\windows instead of looking at the
proper windows drive letter <SYSTEMDRIVE and SYSTEMROOT>.

8 years agolayers/loader: Fix string validation error
Mark Lobodzinski [Fri, 12 Feb 2016 18:30:14 +0000 (11:30 -0700)]
layers/loader: Fix string validation error

8 years agoheader: Update 1.0.3 header revision for inclusion of debug report extension
Mark Lobodzinski [Thu, 11 Feb 2016 16:26:16 +0000 (09:26 -0700)]
header: Update 1.0.3 header revision for inclusion of debug report extension

Removed vk_ext_debug_report.h (contents moved into vulkan.h)
Renamed debug report message enums

8 years agoandroid: Add support for Android surface extension
Courtney Goeltzenleuchter [Thu, 11 Feb 2016 18:44:04 +0000 (11:44 -0700)]
android: Add support for Android surface extension

8 years agoparam_checker: Check for pQueuePriorities
Courtney Goeltzenleuchter [Fri, 29 Jan 2016 22:43:49 +0000 (15:43 -0700)]
param_checker: Check for pQueuePriorities

Verify that pQueuePriorities is set before using it.

8 years agolayers: Validate wait event sourceStageMask.
Michael Lentine [Wed, 10 Feb 2016 22:18:47 +0000 (16:18 -0600)]
layers: Validate wait event sourceStageMask.

8 years agolicense: move RenderDoc license from LoaderAndTools to SDK
David Pinedo [Fri, 12 Feb 2016 16:23:33 +0000 (09:23 -0700)]
license: move RenderDoc license from LoaderAndTools to SDK

8 years agolayers: Use accessible id set when determining shader's descriptor use
Chris Forbes [Mon, 1 Feb 2016 05:42:42 +0000 (18:42 +1300)]
layers: Use accessible id set when determining shader's descriptor use

- Eliminates bogus false conflicts between resources in a module, where the resources share a descriptor slot but
  no entrypoint refers to both.
- Eliminates false positives from shader vs descriptor set layout validation, where we would previously be upset
  about the layout not including a descriptor which was declared in the module but not used by the entrypoint.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add spirv static call tree walker
Chris Forbes [Mon, 1 Feb 2016 05:41:33 +0000 (18:41 +1300)]
layers: Add spirv static call tree walker

With emphasis on finding all descriptor-based resources referenced in the static call tree of an entrypoint

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Collect OpFunction defs
Chris Forbes [Mon, 1 Feb 2016 05:38:39 +0000 (18:38 +1300)]
layers: Collect OpFunction defs

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Pass the entrypoint down to collect_interface_by_location
Chris Forbes [Sun, 31 Jan 2016 23:15:48 +0000 (12:15 +1300)]
layers: Pass the entrypoint down to collect_interface_by_location

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Use entrypoint interface specification to collect variables
Chris Forbes [Mon, 1 Feb 2016 01:29:51 +0000 (14:29 +1300)]
layers: Use entrypoint interface specification to collect variables

The module may contain many others -- only the variables listed in
the OpEntryPoint are part of the interface.

Note that the shader resource interface is NOT listed in OpEntryPoint. For now we
continue to conservatively assume every OpVariable in the module with a suitable
storage class is in every entrypoint's shader resource interface -- that is, we're
not walking the static call tree from each entrypoint to determine what is and is
not used by it.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Look up entrypoint for each shader stage
Chris Forbes [Sun, 31 Jan 2016 23:00:21 +0000 (12:00 +1300)]
layers: Look up entrypoint for each shader stage

Not doing anything useful with this yet beyond insisting that it is present, but
that will come in later patches.

V4: Add new enum to md

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Minor housekeeping in draw_state.
Chris Forbes [Sun, 31 Jan 2016 23:00:01 +0000 (12:00 +1300)]
layers: Minor housekeeping in draw_state.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agodemos: Fix a few layout transition bugs in cube
Tobin Ehlis [Fri, 12 Feb 2016 00:49:23 +0000 (17:49 -0700)]
demos: Fix a few layout transition bugs in cube

Re-enabled layout validation in draw_state revealed a few bugs in cube. This change fixes those bugs by starting tex image in PREINITIALIZED state with the HOST_WRITE_BIT set.

8 years agolayers: Fix and re-enable layout checks.
Michael Lentine [Thu, 11 Feb 2016 15:37:48 +0000 (09:37 -0600)]
layers: Fix and re-enable layout checks.

Handle layout transitions for subresources and re-enable layout validation.

8 years agolayers: Update unique_objects to make use of safe_structs
Tobin Ehlis [Wed, 10 Feb 2016 22:38:45 +0000 (15:38 -0700)]
layers: Update unique_objects to make use of safe_structs

Stop overwriting const* data in unique_objects.
Instead, declare local safe_struct copies of data, update that
data in place with unwrapped objects, and pass down the local
safe_struct copy, which spoofs the original struct layout.

This includes code to build the layer using vk_safe_struct.h/cpp files.

8 years agolayers: Update vk_helper to generate safe_struct wrappers
Tobin Ehlis [Wed, 10 Feb 2016 22:32:46 +0000 (15:32 -0700)]
layers: Update vk_helper to generate safe_struct wrappers

Create vk_safe_struct.h/cpp files that contain wrapped versions of vk structs.
The idea is to wrap structs that contain non-dispatchable objects so that
the non-dispatchable objects are no longer contained within or below "const" decls.
The safe struct wrappers are intended to exactly match the original structures
in how they appear, but they also contain some utility functions to contruct and
desctruct themselves so that ptr chains are automatically replicated.

For unique_objects, the idea is to use the safe_struct wrappers as follows:
foreach struct that contains non-dispatchable objects
   declare local safe_struct version of struct
   initialize struct to exactly match original
   unwrap non-dispatchable objects in place in the safe_struct

8 years agolayers: Validate specialization entry data is fully contained within the specializati...
Chris Forbes [Thu, 11 Feb 2016 04:39:55 +0000 (17:39 +1300)]
layers: Validate specialization entry data is fully contained within the specialization data block.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agoValidate buffer barrier size and offset.
Michael Lentine [Thu, 11 Feb 2016 00:19:48 +0000 (18:19 -0600)]
Validate buffer barrier size and offset.

8 years agolayers: Correctly handle VK_WHOLE_SIZE for dynamic offsets
Tobin Ehlis [Thu, 11 Feb 2016 21:17:13 +0000 (14:17 -0700)]
layers: Correctly handle VK_WHOLE_SIZE for dynamic offsets