History log of /external/vulkan-validation-layers/generator.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
322de3fe2a2197f9bb4dd39ca9307b315f48a66b 13-Oct-2016 Mark Lobodzinski <mark@lunarg.com> layers: Update build for v1.0.30 XML code-gen

- Updated cmakefiles for new codegen files: renamed genvk.py to
lvl_genvk.py as the file is modified in this repo.
- Modified dependencies and parameters of cmake build macros.
- Updated reg.py to version 1.0.30
- Updated generator.py to version 1.0.30

Change-Id: Ia87fc7fc68e406a724d5ad9822f1f87b964f9977
/external/vulkan-validation-layers/generator.py
36f9d19dce58d509c189c22b4e630ba9a450ce5a 07-Sep-2016 Mark Lobodzinski <mark@lunarg.com> Layers: Implement unique_objects layer using vk.xml

UniqueObjects was the final LVL layer not using vk.xml for codegen.
The new implementation follows the threading layer model which
(outside of safe_struct dependencies) is more tolerant of API
changes. Also updated for structure and style.

build-android/android-generate.bat - Updated for build
build-android/android-generate.sh - Updated for build
generator.py - Added Unique Objects Generator
genvk.py - Added call to U_O generator
layers/CMakeLists.txt - Updated for build
layers/unique_objects.cpp - New: manually generated code
layers/unique_objects.h - Now a true header file
vk-layer-generate.py - killed!

Change-Id: I0d57871dfd2600829502f0bffd7cf6f926b7d5e7
/external/vulkan-validation-layers/generator.py
4a9b060e126e7cf55992c1b15eeac71456f29444 27-Sep-2016 Mark Lobodzinski <mark@lunarg.com> 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
/external/vulkan-validation-layers/generator.py
d0a33d72b45719cde2f7a5c74333e3d45b16e984 22-Jul-2016 Dustin Graves <dustin@lunarg.com> layers: Fix paramter_validation array name codegen

Replace std::string with ParameterName for the generated
parameter_validation layer code so that the parameter names
printed by the generated code contain the correct array
subscript values. Also updates the parameter_validation
tests to reflect the change to the printed names.

Issues-Addressed: GitHub #462
Change-Id: I3032e08052fc003ba066bbe613e5faf3ed049964
/external/vulkan-validation-layers/generator.py
059e07e5fff8ea8b6108fe900e573d845fb98bf0 19-Jul-2016 Dustin Graves <dustin@lunarg.com> layers: Change pNext validation error to warning

Change the severity level of the parameter_validation layer's pNext
parameter validation messages from error to warning. Also add an
explanation that the warning is derived from the Valid Usage
language from version X of the Vulkan spec/header, which may be out
of date:

This warning is based on the Valid Usage documentation for version %d
of the Vulkan header. It is possible that you are using a struct
from a private extension or an extension that was added to a later
version of the Vulkan header, in which case your use of pNext is
perfectly valid but is not guaranteed to work correctly with
validation enabled

Issues-Addressed: LunarXchange 560
Change-Id: I97f55cba7538506d246e45ef603a86db9ad1adcb
/external/vulkan-validation-layers/generator.py
bca0b97132b3f147aabd07267c434d4d3c688939 19-Jul-2016 Dustin Graves <dustin@lunarg.com> layers: Add codegen header version

Add an integer constant to the parameter_validation layer's generated
code to specify the header/XML version from which the code was
generated.

Change-Id: Id690962856130007a24732a478ffa9c28f774b8f
/external/vulkan-validation-layers/generator.py
83eb2cbf733b90eb425c1c2113b5a92abf61db99 13-Jul-2016 Mike Stroyan <stroyan@google.com> layers: faster threading layer for single thread

Add a check to the threading layer to detect a single thread case.
If the application has only called vulkan from one thread at a time,
then skip access counters for externally synchronized parameters.
This greatly reduces the overhead of the layer for applications
that don't truly use vulkan in a multi-threaded way.
/external/vulkan-validation-layers/generator.py
07ac0214842b58136fb91d5e5fed309c7000bbb3 17-Jun-2016 Alexander F Rødseth <rodseth@gmail.com> Only set scripts that starts with a hashbang as executable

Remove executable bit from files like README.md

Change-Id: I6a2a86e8312616c175845f0a3b777515a58c52b9
/external/vulkan-validation-layers/generator.py
dc2176da60be5727b891a93f527f57c1c1804b7f 31-May-2016 Dustin Graves <dustin@lunarg.com> layers: More noautovalidity processing for structs

Apply 'noautovalidity' code generation logic to struct members.
Previously, struct pointers tagged as noautovalidity were ignored by
the code generator, but the members of non-NULL struct pointers
were still processed. Now both the struct pointer and the struct
members are ignored when the struct pointer has the 'noautovalidity'
attribute.

Change-Id: I14bc231210f2440fb8bb3df8c73ef165100f0daa
/external/vulkan-validation-layers/generator.py
3b7fdd0052ab203262cf6e904b6acb4807eb9730 16-May-2016 Chia-I Wu <olv@google.com> threading: drop vk prefix for layer functions

Drop VK_LAYER_EXPORT as well.
/external/vulkan-validation-layers/generator.py
7237de2ef67ff4ae694b1d565ab5153e1c7ca5bb 16-May-2016 Chia-I Wu <olv@google.com> 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.
/external/vulkan-validation-layers/generator.py
ccf92a97687d7a802b229bcfa4c92a9f33d98156 16-May-2016 Dustin Graves <dustin@lunarg.com> 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
/external/vulkan-validation-layers/generator.py
8b408b074df08df317a047e913e5ccf7257bf859 11-May-2016 Dustin Graves <dustin@lunarg.com> layers: Sync XML registry files from Vulkan-Docs

Sync the vk.xml and related Python scripts with the latest revisions from
Vulkan-Docs:
- Update local copy of vk.xml from Vulkan-Docs
- Merge minor changes to genvk.py and generator.py from Vulkan-Docs to
local copies
- Add debug marker function pointers to VkLayerDispatchTable
- Update parameter_validation code generation to support use of types
across API features; The core API feature needs to be aware of a
structure defined by the AMD_rasterization_order feature for the
purpose of pNext validation
- Modify thread_check code generation to add TODO messages for debug
marker support

Change-Id: I4d5b98683592f4ef404cb46e5b0f6ad519912382
/external/vulkan-validation-layers/generator.py
c5ef2f000603a3e52647b44b3910e2cb6a0143fc 04-May-2016 Dustin Graves <dustin@lunarg.com> layers: Add parameter_validation namespace

Add parameter_validation namespace for utility functions. Namespace will
be extended to include core layer functions in a future update.

Change-Id: I0929f5caacbf3e1b4509f051ea020566cce44e3e
/external/vulkan-validation-layers/generator.py
c61d22af1b891301c6de083ae8c37e88bba280fa 04-May-2016 Jamie Madill <jmadill@chromium.org> Add an output directory option to genvk.py.

Currently for the threading utils and parameter checker generator,
the script is hard-coded to write to the current directory. Add
an option to add a custom output directory.

Change-Id: Id1b72a934ead74d2f6c01ad4e581af83067d3f49
/external/vulkan-validation-layers/generator.py
e1388f48e360fe655bdee490a0d08e9d7499253c 29-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Add 0 check for VkFlags array elements

- Add parameter validation for the case where the elements in an
array of VkFlags values must not be 0
- Replace the template parameter in the VkFlags validation functions
with the VkFlags base type.

Change-Id: Ie85d4d048b21e73409ff817425a1db64570e1b2f
/external/vulkan-validation-layers/generator.py
4ccfe214cc5531f0d6e3574924d181b2aa416e52 26-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Add VkFlags parameter validation

Add parameter validation for VkFlags derived types to the
parameter_validation layer's code generation scripts. The following
validation checks are performed:
- If a VkFlags parameter is not marked as optional in the XML, a message
is generated when the parameter is 0.
- If a VkFlags parameter is not 0, a message is generated if it combines
bits that are not defined by its associated flag bits enumeration.
- If a VkFlags parameter does not have an associated flag bits
enumeration it is treated as a reserved value that must be 0.

Change-Id: I6daed360cde46e2a27c84deda1e0798621f92d50
/external/vulkan-validation-layers/generator.py
75814c1599a00692c3c9dbe48c63ee57e27abb4e 27-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Merge enum array NULL/value checks

- Merge the NULL checks and enumeration value checks performed for arrays
of enumeration values into a single function call. This is consistent
with the validation for arrays of other types.
- Reduce duplicate array checking code.

Change-Id: I8c4e05542bb2f52f5623fe6c7ed3629b9b2680e0
/external/vulkan-validation-layers/generator.py
1c2f5ef6e0a34edca6de231e73e71db0284778f0 25-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Add missing compute stage sType check

The parameter_validation code generator was only generating sType checks
for pointers to structures. There is one case where a non-pointer struct
parameter needs to be validated: the VkComputePipelineCreateInfo::stage
member of the vkCreateComputePipelines pCreateInfos parameter. The code
generator has been updated to handle this case.

Change-Id: I1e695fcc875574eae94912ceb6338428d7ed8b49
/external/vulkan-validation-layers/generator.py
cba0861249f2112e41cd00600a832d7fb605c7b8 19-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Add handle NULL checks to codegen

Add support for validating that required handle parameters are not
specified as VK_NULL_HANDLE to the parameter validation layer's code
generator.
- Add new parameter validation utility functions to validate required
handles and arrays of handles.
- Add new parameter validation layer entrypoints for functions that
previously had no parameters to validate.
- Add handle validation logic to the parameter validation code generator.

Change-Id: I7a5680954245db4c1b12587f78e30e17c3903d6c
/external/vulkan-validation-layers/generator.py
43b53e83705f02245da6ae61e31273866a35b833 19-Apr-2016 Jon Ashburn <jon@lunarg.com> misc: Update licenses to Apache 2.0

Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
/external/vulkan-validation-layers/generator.py
d59852fc4166e674833898daa5037270f5c75ea6 16-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Make logicOp param validation conditional

- Only validate that VkPipelineColorBlendStateCreateInfo::logicOp is
a valid VkLogicOp enumeration value when
VkPipelineColorBlendStateCreateInfo::logicOpEnable is set to VK_TRUE.
- Remove redundant VkPipelineColorBlendStateCreateInfo validation (hand
written code replaced by generated code).

Change-Id: I075c58342678219c5ed1dd5c401e0da2cea53232
/external/vulkan-validation-layers/generator.py
7633d69ff5c949e0032df6e7f7cd33c93aedd4eb 14-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Improved generated struct validation code

Improvements to the parameter validation code generator, primarily to
eliminate string concatenations performed when processing structs. A
validation function was being produced for each struct, which received a
string specifying the name of the struct parameter. This string was then
concatenated with the names of the struct members. The struct validation
code is no longer in a separate function, and a single string containing
the full names of each struct member (eg. pCreateInfo->pApplicationInfo)
is created at code generation time.

Change-Id: I2800bfbc26247e4e4c6f8c885c0e7c4b8b3776a2
/external/vulkan-validation-layers/generator.py
62448bf7a371ea59fbd95cb679a975195140d13f 12-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Simplify generated param validation code

- Remove unnecessary conditional checks for input vs. output parameters
from the generated C++ code.
- Split some generator code into smaller functions.

Change-Id: I32e47d417ab884e5cc0fc7af40cb5657b39c176d
/external/vulkan-validation-layers/generator.py
0cf28a250c117cb1d11426ddc75c0327297e32e7 06-Apr-2016 Mike Stroyan <stroyan@google.com> Change from using lxml to xml.etree

Use xml.etree for xml parsing for greater portability.

Change-Id: Ic9b3b487e9b363a89d134d048db9fa79fbd66f6f
/external/vulkan-validation-layers/generator.py
bb84994a71bd9b17b407ac33eb82020014b8126a 05-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Fix unsafe bool mix warnings (part 2)

Fixes the MSVS warnings regarding unsafe mix of VkBool32 and bool for the
device_limits, image, parameter_validation, and threading layers.
Converts all Boolean usage internal to the layers to bool/true/false. The
VK_TRUE and VK_FALSE values continue to be used with the Vulkan API
components.

Change-Id: I612d3f26050fadcd77ffca4d8723a7c734613816
/external/vulkan-validation-layers/generator.py
16ee6bbd953d920c626490f2fc626d06d7325409 04-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Fix paramcheck struct array NULL indexing

Fixes an issue where the generated parameter_validation code could
index a NULL pointer to an array of structs.

Change-Id: If78f1c97ea256911d857b0b8009b38e6ca6f2581
/external/vulkan-validation-layers/generator.py
cd99e567ae76ae6a6900b80b2c8f6031a194003a 31-Mar-2016 Dustin Graves <dustin@lunarg.com> layers: Fix param checker struct array handling

Fix parameter validation issue with arrays of structs, where only
the first item in the array was processed. Validation messages
for arrays of structs will currently print the array variable name
with the letter 'i' as the array index instead of the actual index
number, producing a value like 'pCreateInfos[i]'. This will be
fixed by a future update.

Change-Id: I2cb773c23c6515a20ac8cb066e7cc61028e569f8
/external/vulkan-validation-layers/generator.py
c3fc3d8e91f24136f4e2cc036e92033b826a96e7 24-Mar-2016 Dustin Graves <dustin@lunarg.com> layers: Codegen VkBool32/enum parameter validation

Now generating the VkBool32 and enum checks:
- Warns if a VkBool32 parameter is neither VK_TRUE nor VK_FALSE
- Warns if an enum token value falls outside of the enum's
begin/end range and the token was not added by an extension.
Only checkes enum's that have a begin/end range. Detection
of tokens added by extensions is based on the base_value defined
in appendic C.10 of the Vulkan specification.

Change-Id: Id49ace52fea8a35972f96d54247b98aba182c09e
/external/vulkan-validation-layers/generator.py
b8458d181ca96c09e5655ecd2a58532bbfb947d3 29-Mar-2016 Dustin Graves <dustin@lunarg.com> layers: 1.0.7 update for XML Registry files

Update local copies of generator.py, genvk.py, and vk.xml with the
latest versions from Vulkan-Docs.

Change-Id: Id2a3da34374fb1c39532cd3c124461eb953f6b89
/external/vulkan-validation-layers/generator.py
3e04b61c5400de5eae22313be467692a21ffde97 18-Mar-2016 Michael Mc Donnell <michael@mcdonnell.dk> layers: Fix signed/unsigned comparison warnings in thread_check.h

Change-Id: I3a5e8e64deed53b3817be1fe8e1e2b32c08691a7
/external/vulkan-validation-layers/generator.py
1c3335744fd8c4b4299d64153d5d3b411f8f3fa5 17-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Rename param_checker to parameter_validation

Also, param_check.h -> parameter_validation.h and .json files changed.

Change-Id: I9db10563bcc2640fe6b90588d3c80c4fe50a8a83
/external/vulkan-validation-layers/generator.py
2949a5aa26e4ae485d9e61c7561743ed84742cf3 09-Mar-2016 Dustin Graves <dustin@lunarg.com> layers: Add pNext parameter checking

Validate pNext based on the validextensionstructs tag from the XML
registry. If the tag provides a list of valid structures, walk the
pNext list and check each node's sType value agains the
VkStructureType value associated with the structs from the list.
If no valid structure list is provided, ensure that pNext is NULL.

Invalid struct types produce errors similar to the following:
ERROR: [PARAMCHECK] Code 1 : vkCreateImage: pCreateInfo->pNext chain
includes a structure with unexpected VkStructureType
VK_STRUCTURE_TYPE_APPLICATION_INFO; Allowed structures are
[VkInstanceCreateInfo, VkDeviceCreateInfo]

Change-Id: I2c2471a068cb304120c66cb4156331999f8548cd
/external/vulkan-validation-layers/generator.py
c3fbcf827392dd7ad90b9b960931a458228679fb 08-Mar-2016 Dustin Graves <dustin@lunarg.com> layers: Add string array parameter checking

The param_checker layer had previously peformed a NULL
check on the pointer to a string array, but had not
performed a NULL check for the individual strings in the
array. This adds NULL checks for the individual strings.

Change-Id: Id4527f670086187e8cd1f146027bfdfd1e134b7b
/external/vulkan-validation-layers/generator.py
3e646e3de6f4fe0bfb0f0bf3a4633f3ead86dc66 08-Mar-2016 Dustin Graves <dustin@lunarg.com> layers: Add func pointer NULL checks

Add code generated NULL checks for function pointers. This enables
parameter checking for the VkAllocationCallbacks struct, with
param_checker additions for the vkDestroy functions that
receive VkAllocationCallbacks parameters.

Change-Id: I9910c52026aa584bb013ee5015b5cb04b2d6ddcd
/external/vulkan-validation-layers/generator.py
80c0deae33503793ae085e775d75d77134ce7a54 03-Mar-2016 Dustin Graves <dustin@lunarg.com> layers: Add param checks for CreateInstance/Device

Add parameter checks for vkCreateDevice and vkCreateInstance.
Includes a local fix for GitHub Vulkan-Docs issue #104 to
prevent false positives from being generated for the
pCreateInfo->pEnabledFeatures == NULL case.

Change-Id: I1f3642e7e18c8bfb32b0996b6e2e57a5f9d8e011
/external/vulkan-validation-layers/generator.py
af0d6dc3237346933fb9da9cb13d414bf46cf664 03-Mar-2016 Dustin Graves <dustin@lunarg.com> layers: Add NULL/sType checks for struct members

Add param_checker support for validating struct members. Messages
are logged for the following conditions, based on conditions
specified in vk.xml:
- 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 structure's sType value does not match the value specified
in the XML

Addresses GL105, GL109, GH82

Change-Id: I7063fe2582b30fdfc0006fe945a0f9c84a2aa66a
/external/vulkan-validation-layers/generator.py
af1f1b86877a3f92fc7c01e1b51749a2ef3daaf4 29-Feb-2016 Dustin Graves <dustin@lunarg.com> layers: Handle indirection in param_checker

Code was being generated for param_checker that looked like:
validate_pointer(pAllocInfo);
validate_array(pAllocInfo->count, array);
Where validate_array could dereference a NULL pointer. The code
generator was updated to insert NULL checks for this case:
validate_pointer(pAllocInfo);
if (pAllocInfo != NULL) {
validate_array(pAllocInfo->count, array);
}

Change-Id: I1eda66530dbff2e95d604a20d122179be172bedf
/external/vulkan-validation-layers/generator.py
f69e3771c85a0f2dd55de84a3ec588eb17a764c8 11-Feb-2016 Dustin Graves <dustin@lunarg.com> 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.
/external/vulkan-validation-layers/generator.py
584ccabfe4526e99ddbdd033b15bbcf16530d373 03-Feb-2016 Michael Lentine <mlentine@google.com> layers: Enable Wall and Werror.
/external/vulkan-validation-layers/generator.py
8849f9aa3732ef897996f35615714f151d1fedf9 02-Nov-2015 Mike Stroyan <mike@LunarG.com> layers: Add threading layer generation

Generate threading layer wrappers in thread_check.h.
Change path for generated vulkan.h.
/external/vulkan-validation-layers/generator.py
a451fa8bcbde4ba46bd83055f6624f812dd7996f 07-Jan-2016 Mike Stroyan <stroyan@google.com> layers: bring xml and scripts from documentation

These are repo git@gitlab.khronos.org:vulkan/vulkan.git
from commit 51ffe091889e08ca5196c5635363a5358c85ff82
/external/vulkan-validation-layers/generator.py