platform/upstream/Vulkan-Tools.git
7 years agobuild: Update Android target revision
Cody Northrop [Tue, 3 Jan 2017 15:06:03 +0000 (08:06 -0700)]
build: Update Android target revision

7 years agotests:Update tests to use unique ids
Tobin Ehlis [Mon, 2 Jan 2017 17:09:07 +0000 (10:09 -0700)]
tests:Update tests to use unique ids

Update a bunch of tests to use the unique id to check for expected
error. Update documentation for a few tests that were incorrect.
Also a couple of minor test updates to fix minor issues.

7 years agolayers:Only flag one aspect error at a time
Tobin Ehlis [Mon, 2 Jan 2017 17:04:56 +0000 (10:04 -0700)]
layers:Only flag one aspect error at a time

For image aspect bit errors, first flag the error if correct bit is not
set, else flag error if additional bits are incorrectly set. There's
not a real benefit to flagging both errors and it complicates testing.
Generally the first error should be sufficient to allow a user to
correctly update their aspect bit usage.

7 years agoscripts:Check for use of error enums in tests
Tobin Ehlis [Thu, 29 Dec 2016 21:51:17 +0000 (14:51 -0700)]
scripts:Check for use of error enums in tests

Update stats script to gather all error enums that are used by tests to
check for validation errors. If the database reports that a test is
checking a specific enum, but that enum is not being used in the
SetDesiredFailureMsg() for that test, report it as a warning.

Ideally all of the checks will start using the explicit enum value to
check for the presence of that error, so this warning will highlight
tests where it should be easy to update them to check for error enum.

7 years agodocs: Update README for AppVeyor Windows CI builds
Karl Schultz [Fri, 30 Dec 2016 17:24:21 +0000 (10:24 -0700)]
docs: Update README for AppVeyor Windows CI builds

7 years agobuild: Add config file for AppVeyor Windows CI
Karl Schultz [Fri, 30 Dec 2016 17:16:33 +0000 (10:16 -0700)]
build: Add config file for AppVeyor Windows CI

7 years agodocs: Update README for Travis
Karl Schultz [Fri, 30 Dec 2016 00:18:10 +0000 (17:18 -0700)]
docs: Update README for Travis

7 years agoexternal: Update Glslang/Spirv-Tools revisions.
Mark Young [Thu, 29 Dec 2016 23:24:45 +0000 (16:24 -0700)]
external: Update Glslang/Spirv-Tools revisions.

Update Glslang to commit 807a0d9e2f4e176
and Spirv-Tools to commit 6993fc413d8da97.

Change-Id: I468ec5ec3bee13f4d1549439bef9b40908245f33

7 years agobuild: Add Android build to travis
Karl Schultz [Thu, 29 Dec 2016 23:23:42 +0000 (16:23 -0700)]
build: Add Android build to travis

Change-Id: I51232194642bd2f36e212b4a0ac1e81272eae450

7 years agoloader: Switch variable appropriately
Mark Young [Wed, 28 Dec 2016 23:10:10 +0000 (16:10 -0700)]
loader: Switch variable appropriately

A delete was being done using a variable that wasn't directly
tied to the array.

Change-Id: I59ba4bc86a72fc8158e3a7c46e13c54fb2409873

7 years agolayers:Variable renaming for style and clarity
Tobin Ehlis [Thu, 29 Dec 2016 19:40:16 +0000 (12:40 -0700)]
layers:Variable renaming for style and clarity

7 years agolayers:Don't pass active binding set around
Tobin Ehlis [Thu, 29 Dec 2016 19:22:32 +0000 (12:22 -0700)]
layers:Don't pass active binding set around

The active bindings set was being passed around but the data is only
used in a couple places and an alternate form of it is available in the
binding->requirement map. Also, the binding set was wrong in that it
stored bindings for all bound sets at draw time, but was being used to
check bindings for individual sets.

7 years agolayers:Clean up descriptor data struct
Tobin Ehlis [Thu, 29 Dec 2016 18:39:10 +0000 (11:39 -0700)]
layers:Clean up descriptor data struct

Stop passing around hideous vector of descriptor state. The data is
already contained in various bits of the cmd buffer struct so just
re-create any data at the point it's needed.

7 years agolayers: Add VU enums to core_validation.cpp
Dave Houlton [Fri, 23 Dec 2016 22:26:29 +0000 (15:26 -0700)]
layers: Add VU enums to core_validation.cpp

(Completes Jira VL-62)
Add new VU enums to core_validation (part 4 of 5). Update database
to reflect changes. Small edit to InvalidPushConstants test in
layer_validation_tests.cpp to update error message text.

Change-Id: I05800c9e783d66ef41e92c4af1d2f2e9eb8b9270

7 years agolayers: Add valid usage enums to core_validation
Mike Schuchardt [Thu, 8 Dec 2016 22:36:24 +0000 (15:36 -0700)]
layers: Add valid usage enums to core_validation

Update valid usage enums in subsection of core validation from
validateEventStageMask() to validateSecondaryCommandBufferState(),
inclusive.

Update tests for vkCreateFramebuffer to work with refactored error
messages.

Change-Id: Ie6138fbfe7422b3a6affac45faeeb198a0ab6bcc

7 years agobuild: Compile with both clang and gcc on Travis
Karl Schultz [Wed, 28 Dec 2016 23:56:02 +0000 (16:56 -0700)]
build: Compile with both clang and gcc on Travis

Fixes #1310

Change-Id: I430089a362b70e104ad3274a76b1033b2e94ac2a

7 years agolayers:Mark latest buffers and images as written
Tobin Ehlis [Wed, 28 Dec 2016 21:24:47 +0000 (14:24 -0700)]
layers:Mark latest buffers and images as written

Fixes #1311

In the Draw-time refactor the marking of store images and buffers as
written was incorrectly moved before the list of images and buffers was
updated for the current active bindings.

This fix restores correct order of operations so that the buffers and
images of interest are first added to cmd buffer active list, then
they're appropriately updated as written.

7 years agoscripts: Correct author emails in helper script
Mark Lobodzinski [Wed, 28 Dec 2016 14:45:35 +0000 (07:45 -0700)]
scripts: Correct author emails in helper script

Change-Id: I53196ed512f5465e6ebfb88b93b727e29a7e9809

7 years agoscripts: Remove enum_string_helper from vk_helper.py
Mark Lobodzinski [Tue, 27 Dec 2016 21:58:05 +0000 (14:58 -0700)]
scripts: Remove enum_string_helper from vk_helper.py

This functionality is now in helper_file_generate.py.

Change-Id: Iea20fe5a9882de7001154d2a809106c5fb63f3cb

7 years agoandroid: Update build scripts w/enum_string codegen
Mark Lobodzinski [Tue, 27 Dec 2016 21:47:47 +0000 (14:47 -0700)]
android: Update build scripts w/enum_string codegen

The enum_string_helper header is now generated from vk.xml.

Change-Id: I6adf09663c87b21623993a939a8ad60e343a805d

7 years agolayers: Mod cmake for new enum_string_helper codegen
Mark Lobodzinski [Tue, 27 Dec 2016 21:36:51 +0000 (14:36 -0700)]
layers: Mod cmake for new enum_string_helper codegen

Remove old-style codegen invocation and replace with new vk.xml
based stuff.

Change-Id: I4f3dc70bfa3426141b8aaba12b09090eeea05085

7 years agoscripts: Update lvl_genvk.py w/new helper generator
Mark Lobodzinski [Tue, 27 Dec 2016 20:50:05 +0000 (13:50 -0700)]
scripts: Update lvl_genvk.py w/new helper generator

Change-Id: Ib3afef2e275d2f7b4906d0ca95022aeb4fd2e674

7 years agoscripts: Update helper gen to ignore disabled exts
Mark Lobodzinski [Tue, 27 Dec 2016 21:35:48 +0000 (14:35 -0700)]
scripts: Update helper gen to ignore disabled exts

Header file description contains unimplemented/undefined extensions.
Filter these out when processing enumerated types.

Change-Id: I1a83dc932a10fe9b3565a4b1462f4ab7e934168f

7 years agoscripts: Add helper file generator
Mark Lobodzinski [Tue, 27 Dec 2016 18:11:54 +0000 (11:11 -0700)]
scripts: Add helper file generator

This vk.xml generator will create the enum_string_helper header file,
as well as the other vk_helper.py-generated files in the future.

Change-Id: Ia19a2c6fd23c1df2af3ded66e2e80b88159a7d85

7 years agolayers: Fix VkGraphicsPipelineCreateInfo flags check
Maks Naumov [Tue, 27 Dec 2016 23:15:17 +0000 (01:15 +0200)]
layers: Fix VkGraphicsPipelineCreateInfo flags check

"pCreateInfos->flags | VK_PIPELINE_CREATE_DERIVATIVE_BIT" is always true

7 years agoscripts: PR1314, Remove trailing whitespace/newlines
Michael Jurka [Mon, 19 Dec 2016 15:31:43 +0000 (16:31 +0100)]
scripts: PR1314, Remove trailing whitespace/newlines

Change-Id: I41f7703540af202b94ebd78ec03b282abb321e35

7 years agolayers: Make comments consistent across file
Mark Lobodzinski [Tue, 27 Dec 2016 23:42:06 +0000 (16:42 -0700)]
layers: Make comments consistent across file

Change-Id: I1a92a25ae113142fd8293a1e30d6c0afff2cb759

7 years agolayers: Remove inconsistent comment specifiers
Mark Lobodzinski [Tue, 27 Dec 2016 23:23:59 +0000 (16:23 -0700)]
layers: Remove inconsistent comment specifiers

Change-Id: I6909e27ee88b5362801bc88953746d827e3f05db

7 years agolayers: Make comments consistent
Mark Lobodzinski [Tue, 27 Dec 2016 23:22:38 +0000 (16:22 -0700)]
layers: Make comments consistent

Change-Id: I07a249f02956e2cda57548a62f8993631d2b334a

7 years agoscripts: Remove unused code from vk_helper.py
Mark Lobodzinski [Wed, 21 Dec 2016 22:50:01 +0000 (15:50 -0700)]
scripts: Remove unused code from vk_helper.py

Mostly the string_struct_helper related stuff, but also some
additional orphaned remnants.

Change-Id: Ibdd124d10351c694b02917c81e97c56dc9645e6b

7 years agolayers: Update 'string' layer header files
Mark Lobodzinski [Wed, 21 Dec 2016 22:22:39 +0000 (15:22 -0700)]
layers: Update 'string' layer header files

Remove struct_string_helper header files, add in enum_string_helper
and <sstream> as these were included in the removed header file.

Change-Id: Ice0842ce2f06b5581a5add739534d59d834edbf6

7 years agolayers: Remove struct string helper from cmake
Mark Lobodzinski [Wed, 21 Dec 2016 18:32:24 +0000 (11:32 -0700)]
layers: Remove struct string helper from cmake

Change-Id: I0c1ede8bb65d8926bbb3d83d5d320d2a72639781

7 years agoloader: EnumPhysDev fixes
Mark Young [Fri, 23 Dec 2016 23:59:58 +0000 (16:59 -0700)]
loader: EnumPhysDev fixes

Found a few issues, and I had some concerns about the physical
device values enduring over multiple queries.

Change-Id: Ifaa94a4ecf9edfc79bdd3b3d473db068952e3264

7 years agolayers:Fix CmdDispatch post-call function
Tobin Ehlis [Tue, 27 Dec 2016 14:32:56 +0000 (07:32 -0700)]
layers:Fix CmdDispatch post-call function

Cut-and-paste bug was incorrectly calling CmdDraw post-call function
instead of CmdDispatch.

7 years agolayers:Fix unique id for CmdDispatch
Tobin Ehlis [Tue, 27 Dec 2016 14:27:06 +0000 (07:27 -0700)]
layers:Fix unique id for CmdDispatch

7 years agoscripts:Add more duplicate error enum exceptions
Tobin Ehlis [Thu, 22 Dec 2016 21:31:01 +0000 (14:31 -0700)]
scripts:Add more duplicate error enum exceptions

Allow various other unique error enums to be used multiple times.
Addressing these on a case-by-case basis and documenting the exceptions
in the script.

7 years agoscripts:Add duplicate id exception
Tobin Ehlis [Thu, 22 Dec 2016 21:10:21 +0000 (14:10 -0700)]
scripts:Add duplicate id exception

Add duplicate exception for VALIDATION_ERROR_00648 which is for
VkMappedMemoryRange struct to have valid memory objects. That struct
is used by both Flush & Invalidate MappedMemoryRange.

7 years agoscripts:Allow duplicate exceptions for some ids
Tobin Ehlis [Thu, 22 Dec 2016 20:59:42 +0000 (13:59 -0700)]
scripts:Allow duplicate exceptions for some ids

Added global duplicate_exceptions list at the top of the script that
is used to store any IDs that are allowed to be used multiple times
in the source. An explanation comment of all exceptions should be
included.

Initial exception included in list is VALIDATION_ERROR_00942 which is
a descriptor set update error to make sure a valid sampler is included
for relevant write updates. This is re-used for two copy updates that
may have invalid samplers.

7 years agolayers:Remove redundant check
Tobin Ehlis [Thu, 22 Dec 2016 20:40:45 +0000 (13:40 -0700)]
layers:Remove redundant check

Remove valid buffer check from descriptor_sets.cpp that's already
handled in object_tracker.

7 years agolayer:Add unique error ids for memory binding
Tobin Ehlis [Thu, 22 Dec 2016 19:45:09 +0000 (12:45 -0700)]
layer:Add unique error ids for memory binding

Update all of the cases to validate that memory is bound to non-sparse
images and buffers to use the correct unique error id.

7 years agolayers:Add valid usage error ids
Tobin Ehlis [Thu, 22 Dec 2016 19:26:32 +0000 (12:26 -0700)]
layers:Add valid usage error ids

Update descriptor set cases where no memory bound to buffer or image to
use the correct respective unique error ids.

7 years agoscripts:Update stat script output
Tobin Ehlis [Thu, 22 Dec 2016 18:19:15 +0000 (11:19 -0700)]
scripts:Update stat script output

Improve stats script to output the filename and line numbers where a
unique error enum is being re-used. This makes it simple to pick
through the duplicates and evaluate them.

7 years agolayers:Fix unique error enum
Tobin Ehlis [Thu, 22 Dec 2016 18:00:07 +0000 (11:00 -0700)]
layers:Fix unique error enum

ResetCommandBuffer valid commandBuffer handle is id *00094, not *00090.
This was causing 90, which is for allocation, to be incorrectly reused.

7 years agobuild: Parameterize def file name
Lenny Komow [Fri, 23 Dec 2016 21:12:18 +0000 (14:12 -0700)]
build: Parameterize def file name

Change-Id: I697c856b7c7532a38823302a4decf78cdea583ae

7 years agolayers: remove unused variable
Frank Henigman [Fri, 23 Dec 2016 19:22:36 +0000 (14:22 -0500)]
layers: remove unused variable

7 years agolayers: Update Valid Usage enums (VL-61, final)
Mike Weiblen [Thu, 15 Dec 2016 19:24:24 +0000 (12:24 -0700)]
layers: Update Valid Usage enums (VL-61, final)

Update Valid Usage enums in a subsection of core_validation.cpp.

Refactored some helper functions to add parameter for msgCode.

Removed check that was redundant with object_tracker.

Update VU status in the database.

Fix a couple other typos.

This completes Jira task VL-61.

Change-Id: Ie7f11741892c68331b70bb1b611f5c80fe930018

7 years agolayers: add VU checks in image.cpp (Jira VL-66)
Dave Houlton [Thu, 1 Dec 2016 23:43:06 +0000 (16:43 -0700)]
layers: add VU checks in image.cpp (Jira VL-66)

Updated existing validation checks in image.cpp to new VU
enums with minor refactoring only. Left TODOs for other
VUs that will require more extensive redesign. Updated VU
database to match. Also minor updates to
layer_validation_tests to account for changed error
messages.

Change-Id: Ib6cc0e360ceeaae256b0cd0f1d272fe127c95419

7 years agolayers:Refactor CmdDispatchIndirect()
Tobin Ehlis [Wed, 21 Dec 2016 19:37:16 +0000 (12:37 -0700)]
layers:Refactor CmdDispatchIndirect()

Refactor CmdDispatchIndirect() to use pre/post pattern. Use shared
validate/update functions along with extra code to handle the
validation and state update of the buffer used for indirect call.

7 years agolayers:Refactor CmdDispatch()
Tobin Ehlis [Wed, 21 Dec 2016 19:26:38 +0000 (12:26 -0700)]
layers:Refactor CmdDispatch()

Refactor CmdDispatch() to use pre/post pattern. Updated the DrawType
helper functions for use with Dispatch functions as well. For the
update helper, broke that out into a separate DrawDispatch helper
that does common work, and then a Draw helper that calls the
DrawDispatch helper and then does some extra work only relevant
for draw calls.

7 years agolayers:Refactor CmdDrawIndexedIndirect()
Tobin Ehlis [Wed, 21 Dec 2016 19:22:11 +0000 (12:22 -0700)]
layers:Refactor CmdDrawIndexedIndirect()

Refactor CmdDrawIndexedIndirect() to use pre/post pattern.

7 years agolayers:Refactor CmdDrawIndirect() to use pre/post
Tobin Ehlis [Wed, 21 Dec 2016 18:21:36 +0000 (11:21 -0700)]
layers:Refactor CmdDrawIndirect() to use pre/post

Refactor CmdDrawIndirect() to use pre/post pattern and helper functions
for DrawType validate and update. There's a bit of extra validation and
state update that goes along with the buffer passed to this function vs
the Draw & DrawIndexed versions.

7 years agolayers:Refactor CmdDrawIndexed()
Tobin Ehlis [Wed, 21 Dec 2016 18:04:13 +0000 (11:04 -0700)]
layers:Refactor CmdDrawIndexed()

Refactor CmdDrawIndexed() to use Pre/Post pattern. Added validate and
update helper functions that should work for all four CmdDraw*
functions and initiall changed CmdDraw() and CmdDrawIndexed() to use
the helpers. Will update remaining two functions in follow-on CLs.

7 years agolayers:Improve perf warning for unused vtx buffer
Tobin Ehlis [Wed, 21 Dec 2016 17:28:54 +0000 (10:28 -0700)]
layers:Improve perf warning for unused vtx buffer

Fixes #1282

Track if a vtx buffer is ever used by a cmd buffer and only flag perf
warning if cmd buffer has a Draw added with a bound vtx buffer that has
never been used.

7 years agolayers:Kill synchAndPrintDSConfig() function
Tobin Ehlis [Wed, 21 Dec 2016 16:54:09 +0000 (09:54 -0700)]
layers:Kill synchAndPrintDSConfig() function

Delete synchAndPrintDSConfig() and related functions.
Lots of informational prints that aren't needed.

7 years agolayers:Split ValidateAndUpdateDrawState()
Tobin Ehlis [Wed, 21 Dec 2016 16:21:06 +0000 (09:21 -0700)]
layers:Split ValidateAndUpdateDrawState()

Split ValidateAndUpdateDrawState() to isolate validation and state
updates into ValidateDrawState() & UpdateDrawState() functions.

Refactored CmdDraw() to use Pre/Post patter with all state updates now
occurring in the Post function. Made some initial updates to other
Draw/Dispatch functions to call each new function in-line, but will
refactor these functions to use Pre/Post in follow-on commits.

7 years agolayers:Split validatePipelineDrawtimeState()
Tobin Ehlis [Wed, 21 Dec 2016 15:30:22 +0000 (08:30 -0700)]
layers:Split validatePipelineDrawtimeState()

Split validatePipelineDrawtimeState() into validate & update functions.
Also rename validatePipelineDrawtimeState() to
ValidatePipelineDrawtimeState().

7 years agolayers:Rename two functions to CamelCase
Tobin Ehlis [Wed, 21 Dec 2016 15:15:27 +0000 (08:15 -0700)]
layers:Rename two functions to CamelCase

7 years agolayers:Add PostCallRecordCmdDraw()
Tobin Ehlis [Wed, 21 Dec 2016 14:52:20 +0000 (07:52 -0700)]
layers:Add PostCallRecordCmdDraw()

Add PostCallRecordCmdDraw() to perform state updates for CmdDraw()
function. Don't quite have all state updates in there yet. Remaining
state updates will be in follow-on commit.

7 years agolayers:Separate state update from addCmd()
Tobin Ehlis [Mon, 19 Dec 2016 22:59:16 +0000 (15:59 -0700)]
layers:Separate state update from addCmd()

Update addCmd() function to only perform validation and rename it to
ValidateCmd(). Separate out the state update of last_cmd in cmd buffer
to new UpdateCmdBufferLastCmd() function.

Made sure that everywhere ValidateCmd() is called now also calls
UpdateCmdBufferLastCmd(). Currently just calling them back-to-back but
will continue with further updates that put the ValidateCmd() call into
the PreCallValidate*() function and the UpdateCmdBufferLastCmd() into
the PostCallRecord*() function.

Also included some comments on work that needs to be done while
breaking up CmdDraw() for pre/post functions.

7 years agolayers:Pass cmd buffer as log_msg object
Tobin Ehlis [Mon, 19 Dec 2016 22:20:53 +0000 (15:20 -0700)]
layers:Pass cmd buffer as log_msg object

Fix some old TODOs where cmdBuffer was not being correctly passed into
log_msg as the src object.

7 years agolayers:Remove unneeded return value
Tobin Ehlis [Mon, 19 Dec 2016 22:16:37 +0000 (15:16 -0700)]
layers:Remove unneeded return value

MarkStoreImagesAndBuffersAsWritten() only updates state and the return
value was a constant false. Update function to remove the return value.

7 years agoloader: clean up comment and variable
Michael Jurka [Mon, 19 Dec 2016 15:31:43 +0000 (16:31 +0100)]
loader: clean up comment and variable

Make one variable's name plural to clarify that it
contains more than one layer.  Also, clean up a
comment that wrapped prematurely to the next line.

7 years agoUse Python instead of greadlink to get full path on macOS
Michael Jurka [Mon, 19 Dec 2016 15:31:43 +0000 (16:31 +0100)]
Use Python instead of greadlink to get full path on macOS

Python is built-in on Macs; this avoids an unnecessary dependency on greadlink

7 years agoloader: Fix out of memory in enumerate phys devs
Lenny Komow [Thu, 22 Dec 2016 22:29:43 +0000 (15:29 -0700)]
loader: Fix out of memory in enumerate phys devs

Change-Id: I9f25875f065f7db58f9c8841965ba1f2f974de90

7 years agolayers:Update dispatchable object printing
Tobin Ehlis [Thu, 22 Dec 2016 17:42:36 +0000 (10:42 -0700)]
layers:Update dispatchable object printing

Fixes #1188

Uniformly print all dispatchable handles in error messages as pointers
with the "%p" print specifier.

7 years agoloader: Update term phys devices dynamically
Lenny Komow [Tue, 20 Dec 2016 22:35:11 +0000 (15:35 -0700)]
loader: Update term phys devices dynamically

Change-Id: Ib474a7af431746d9e820e188681d2a9310e94a0d

7 years agoloader: Update tramp phys devices dynamically
Lenny Komow [Tue, 20 Dec 2016 00:11:40 +0000 (17:11 -0700)]
loader: Update tramp phys devices dynamically

Change-Id: I693598b5c9f72ecee10661e3af9420941b2bd67c

7 years agoandroid: Preserve toolchain build if present
Cody Northrop [Thu, 22 Dec 2016 18:12:49 +0000 (11:12 -0700)]
android: Preserve toolchain build if present

Similar to a2e6ddd1 which preserves it for desktop.

7 years agoloader: guard gcc feature appropriately
Frank Henigman [Thu, 22 Dec 2016 03:21:41 +0000 (22:21 -0500)]
loader: guard gcc feature appropriately

Macro __GNUC__ should be used to guard gcc-specific code.
Also exclude clang because though it defines __GNUC__ it
doesn't accept this particular gcc feature.

Change-Id: I703289cad58e7675f4c4ca5e7635fc8fb35ae77e

7 years agoMerge pull request #1300 from KhronosGroup/161221-fix_string_validation
Courtney Goeltzenleuchter [Wed, 21 Dec 2016 23:44:28 +0000 (16:44 -0700)]
Merge pull request #1300 from KhronosGroup/161221-fix_string_validation

loader: Fix validation error

7 years agoloader: Fix validation error
Courtney Goeltzenleuchter [Wed, 21 Dec 2016 23:24:34 +0000 (16:24 -0700)]
loader: Fix validation error

The string length validation will not detect strings
that exceed the max length.
For example, when i = max_length-1 and utf8[i] is a valid
character (>= 0x20 and < 0x7f) no error is thrown and
the next iteration will end the loop.
This change extends the loop and the if check to
catch this issue.

7 years agoloader: Fix Clang warning in table_ops.h
Jamie Madill [Wed, 21 Dec 2016 18:09:59 +0000 (13:09 -0500)]
loader: Fix Clang warning in table_ops.h

This fixes the following warning:

error: cast between incompatible calling conventions 'cdecl' and 'stdcall'; calls through this pointer may abort at runtime

This was revelated by building the loader with Clang on Windows in
32-bits mode. In 64-bits this warning doesn't appear, presumably due
to different calling conventions.

Change-Id: I7018be38859695436487f582f515bfb08ca28e06

7 years agolayers: Add missing <string> dependency
Michael Jurka [Mon, 19 Dec 2016 15:31:43 +0000 (16:31 +0100)]
layers: Add missing <string> dependency

Change-Id: Ib3c74be1e1d3c168720aaef4dafed1a6a04c7d9b

7 years agocmake: speed up the build
Jeremy Hayes [Tue, 20 Dec 2016 22:20:25 +0000 (15:20 -0700)]
cmake: speed up the build

Remove old dependencies from cmake, which was causing long build times
even when nothing had changed.

Change-Id: Ie162606b54352306ae6400aa18e942d8cffb7782

7 years agolayers: Update Valid Usage enums (VL-61, partial)
Mike Weiblen [Tue, 20 Dec 2016 03:41:58 +0000 (20:41 -0700)]
layers: Update Valid Usage enums (VL-61, partial)

Update Valid Usage enums in a subsection of core_validation.cpp by
adding a parameter to helper functions insideRenderPass() and
outsideRenderPass().  Update that VU status in the database.

Fix a couple other typos.

This partially implements Jira task VL-61.

Change-Id: I8d1fe99a237c4cd22216a1236f47f72fffd4fd00

7 years agoscripts: Remove enum/struct_validate_helper funcs
Mark Lobodzinski [Thu, 15 Dec 2016 21:14:28 +0000 (14:14 -0700)]
scripts: Remove enum/struct_validate_helper funcs

From vk_helper.py.  These were not used in the codebase.

Change-Id: I3cc80e34eb831122ce8c54dbc004a003e02a47fe

7 years agolayers: Remove unused header from threading/PV
Mark Lobodzinski [Thu, 15 Dec 2016 20:54:20 +0000 (13:54 -0700)]
layers: Remove unused header from threading/PV

vk_struct_validate_helper.h not used.

Change-Id: I19757e96900e0500f4db9355c38a497936706bba

7 years agolayers: Remove redundant CreateRenderpass checks
Mark Lobodzinski [Thu, 15 Dec 2016 20:15:12 +0000 (13:15 -0700)]
layers: Remove redundant CreateRenderpass checks

From the image layer.  The check for valid attachment layouts
and load/storeOps already performed in the parameter validation
layer. Also removed now-dead support function and unneeded
header file.

Change-Id: I4f1ad1ba899a712ba21ae32e3b3e2d947b640f4d

7 years agolayers: Remove enum_validate_helper from PV
Mark Lobodzinski [Thu, 15 Dec 2016 20:06:55 +0000 (13:06 -0700)]
layers: Remove enum_validate_helper from PV

A single call was used, replaced with an internal generated function
call and removed the old include. Added note with validation error
ID.

Change-Id: Ied88daf5bab003269c44ef2bef8b2eb81a9e9094

7 years agolayers: Remove unused threadchecker header file
Mark Lobodzinski [Wed, 14 Dec 2016 21:34:06 +0000 (14:34 -0700)]
layers: Remove unused threadchecker header file

Change-Id: I7906b82c1c9c0397113508da74348ea28fe21add

7 years agolayers: Remove cmds vector from GLOBAL_CB_NODE
Chris Forbes [Mon, 19 Dec 2016 22:33:11 +0000 (11:33 +1300)]
layers: Remove cmds vector from GLOBAL_CB_NODE

Now that cmd buffer printing has been removed, the only use of this is
to distinguish between cmd buffers invalidated before and after a
complete recording. This should eventually be folded into the state
machine, but removing the vector of cmds is a first step.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Fix size_t-int cast warning in descriptor_sets
Jamie Madill [Mon, 19 Dec 2016 20:59:18 +0000 (15:59 -0500)]
layers: Fix size_t-int cast warning in descriptor_sets

Discovered in VS2015.

Change-Id: I2a42209a9ee9bd0e8f3da21c0f1a613315d5a6ce

7 years agolayers:Clean up descriptor set layout on destroy
Tobin Ehlis [Mon, 19 Dec 2016 18:16:14 +0000 (11:16 -0700)]
layers:Clean up descriptor set layout on destroy

Erase destroyed descriptorSetLayout from map.

7 years agolayers:Add validation flag for DestroyBuffer()
Tobin Ehlis [Mon, 19 Dec 2016 17:57:29 +0000 (10:57 -0700)]
layers:Add validation flag for DestroyBuffer()

7 years agolayers:Refactor DestroyBuffer()
Tobin Ehlis [Mon, 19 Dec 2016 17:53:58 +0000 (10:53 -0700)]
layers:Refactor DestroyBuffer()

Update DestroyBuffer() to use Pre/Post pattern. All of the state
updates are now only performed if call down chain is not skipped.

7 years agolayers:Add GetQueryPoolResults() validation flag
Tobin Ehlis [Mon, 19 Dec 2016 17:20:43 +0000 (10:20 -0700)]
layers:Add GetQueryPoolResults() validation flag

7 years agolayers:Refactor GetQueryPoolResults() to pre/post
Tobin Ehlis [Mon, 19 Dec 2016 17:11:50 +0000 (10:11 -0700)]
layers:Refactor GetQueryPoolResults() to pre/post

Refactor GetQueryPoolResults() to use Pre/Post pattern. Pulled all of
the validation into PreCallValidate* function. There was only one
state update occuring so pulled that code into PostCallRecord function.

7 years agolayers:Add validation flag for DestroyQueryPool()
Tobin Ehlis [Fri, 16 Dec 2016 22:02:44 +0000 (15:02 -0700)]
layers:Add validation flag for DestroyQueryPool()

7 years agolayers:Refactor DestroyQueryPool
Tobin Ehlis [Fri, 16 Dec 2016 21:56:41 +0000 (14:56 -0700)]
layers:Refactor DestroyQueryPool

Refactor DestroyQueryPool() to use Pre/Post pattern. This moves the map
update to after the call down the chain which is where it should live
so that it only executes when validation passes.

7 years agolayers:Add validation flag for DestroySemaphore()
Tobin Ehlis [Thu, 15 Dec 2016 21:36:56 +0000 (14:36 -0700)]
layers:Add validation flag for DestroySemaphore()

7 years agolayers:Add validation flag for DestroyFence()
Tobin Ehlis [Thu, 15 Dec 2016 21:35:21 +0000 (14:35 -0700)]
layers:Add validation flag for DestroyFence()

7 years agolayers:Refactor DestroySemaphore
Tobin Ehlis [Thu, 15 Dec 2016 21:32:22 +0000 (14:32 -0700)]
layers:Refactor DestroySemaphore

Refactor DestroySemaphore() to use Pre/Post pattern.

7 years agolayers:Refactor DestroyFence
Tobin Ehlis [Thu, 15 Dec 2016 21:18:39 +0000 (14:18 -0700)]
layers:Refactor DestroyFence

Refactor DestroyFence() to use Pre/Post pattern.

7 years agolayers:Rename QUEUE_NODE to QUEUE_STATE
Tobin Ehlis [Thu, 15 Dec 2016 18:37:02 +0000 (11:37 -0700)]
layers:Rename QUEUE_NODE to QUEUE_STATE

7 years agolayers:Refactor GetDeviceQueue
Tobin Ehlis [Thu, 15 Dec 2016 18:34:33 +0000 (11:34 -0700)]
layers:Refactor GetDeviceQueue

Move the state update for GetDeviceQueue into Post* function.

7 years agolayers: Make generators Python 2.7-compatible.
Jamie Madill [Tue, 13 Dec 2016 22:02:57 +0000 (17:02 -0500)]
layers: Make generators Python 2.7-compatible.

ANGLE and Chromium are fixed with Python 2.7, so we need to update
the generator to something that is compatible with 2.7 and 3.2.
The unicode handling is different between the two, so switch
scripts to use unicode literals (u'txt' instead of 'txt').

Change-Id: I1570a45e302a09bb1f99eabc84f50b2ec599944d

7 years agolayers: Update VU database for scissor/vp checks
Mark Lobodzinski [Sun, 18 Dec 2016 16:42:23 +0000 (09:42 -0700)]
layers: Update VU database for scissor/vp checks

Updated status for 1430-1434444.

Change-Id: Ie31ff617dd30b1ef3850398ef100e874c3c1acb4

7 years agolayers: Add scissor/viewport count checks
Mark Lobodzinski [Sun, 18 Dec 2016 16:43:01 +0000 (09:43 -0700)]
layers: Add scissor/viewport count checks

Change-Id: I35977325f662d3e4df84d02d2eefa4383fae9c05

7 years agolayers: GH1261, Incorrect ParamValidation error msgs
Mark Lobodzinski [Thu, 15 Dec 2016 22:49:59 +0000 (15:49 -0700)]
layers: GH1261, Incorrect ParamValidation error msgs

Out-of-date dynamic state errors incorrectly specified that viewport
or scissor counts had to be greater than zero 'if the dynamic state
bit was not specified'. Removed this confusing condition.

Change-Id: Idf206e8671b04979b7a0f5e9597e4a7aec50333f

7 years agoscripts:Update unique error enums as of 12/19/16
Tobin Ehlis [Mon, 19 Dec 2016 13:47:53 +0000 (06:47 -0700)]
scripts:Update unique error enums as of 12/19/16

Six updates and some new valid usages.

Cmd to do the update was:

python spec.py -update -remap 127-132:128-141:1465-1263:2168-1646,2:2373-1965