| Age | Commit message (Collapse) | Author |
|
Was ignoring VK_WHOLE_SIZE. Moved validation cases for Update/FillBuffer
to Parameter Validation layer (as they were stateless) and added the
remaining additional stateless valid usage checks.
Change-Id: I0f41c6ba55f218a6db9fb34736a2abc52f856edf
|
|
Allows layers to output error messages even if no vk_layer_settings.txt
config file is present. Sets defaults to LOG_MSG, error, stdout.
A layer settings file will override any default values. If no settings
file is present and an app creates a debug callback, the default
callbacks will be removed and unregistered.
Change-Id: I49f37189665816df58c258b9e9629f2bf76751c8
|
|
Since each of the layer library contains only a layer, we can simplify v0
functions by making them wrappers to the contained layer's corresponding
commands.
While we have to make changes to each layer individually, all the changes
should be the same in spirit. The exception is vk-layer-generate.py where
the missing vkEnumerateDeviceExtensionProperties is also added.
|
|
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
|
|
Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.
|
|
Call intercept_core_device_command in GetInstanceProcAddr.
|
|
Move handling of interface functions in
parameter_validation::GetInstanceProcAddr to v0's vkGetInstanceProcAddr.
|
|
Split command intercepting out to intercept_core_instance_command. Assert
that instance is valid if intercept_core_instance_command returns nullptr.
|
|
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.
|
|
Call down the next layer unless pLayerName is parameter_validation.
|
|
Replace pc_global_layers with global_layer. There is no plan to define
more than one layer in the same namespace.
|
|
Drop VK_LAYER_EXPORT as well.
|
|
Put all layer fucntions/data into parameter_validation namespace. I had
to add some wrappers to make everything work.
|
|
Move them toward the end of the file.
|
|
Make parameter_validation register vkFreeDescriptorSets() and
vkUpdateDescriptorSets() functions as intercepted.
|
|
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
|
|
Add more vkCreateImageView parameter validation, based on the valid
usage section for VkImageViewCreateInfo in the Vulkan specification.
Issues-Addressed: LX #502
Change-Id: I7fd743312f43a8ff36f2db9f6b50569d630f9dca
|
|
Add more vkCreateImage parameter validation, based on the valid usage
section for VkImageCreateInfo.
Issues-Addressed: GitHub #354
Change-Id: Ia978a64f6c03c3cf115a07e707099253104e04a1
|
|
Adjust parameter_validation layer's validate_queue_family_indices
error messages:
- Split validate_queue_family_indices into separate functions for
arrays of indices and single index values, allowing error messages
to be formatted with and without array brackets when appropriate.
- Print the correct parameter name in error messages.
Change-Id: I9a77ccbd0ad14da4732362d2694ed205e13c3a40
|
|
1) Introduce convention of explicitly placing "0x" before hex
format requests for clarity (don't use "%#")
2) All lower case in hex output (except w/stringstream which refuses
to do anything but uppercase, possibly only on windows).
3) Decorated pointers are printed for all Vulkan structure types.
3) Some intelligence in generators based on Vulkan variable name:
if the Vulkan variable name contains ("flag", "bit", "offset",
"handle", "buffer", "object", "mask") it will be output in
hexadecimal format
4) Remove "using namespace std;" from global scope of vk_struct_string_helper_cpp.h
Change-Id: Idbae73bfdaa3bc059543d43b209373cd0bcbc099
|
|
Add the following to address missing functionality in the
parameter_validation layer:
- Add parameter_validation_vkResetCommandBuffer call to
vkResetCommandBuffer
- Add missing vkGetPhysicalDevice.* exports to GetInstanceProcAddress
Change-Id: I73944933b0c318f691a14c305c192aa7a0bf8ded
|
|
Add error codes to the parameter_validation layer:
- Add parameter_validation::ErrorCode enum defining common parameter
validation errors to parameter_validation_utils.h
- Replace the '1' in parameter_validation log_msg calls with the
appropriate error code
- Add parameter_validation error code documentation to
vk_validation_layer_details.md
- Remove 'typedef enum' declaration requirement for error code
enumerations from vk_layer_documentation_generate.py; It will
now recognize error code enmerations declared wihtout the typedef
Change-Id: Icf18b9124000159f7436f66e48a95d0c58047a07
|
|
Add parameter_validation namespace for utility functions. Namespace will
be extended to include core layer functions in a future update.
Change-Id: I0929f5caacbf3e1b4509f051ea020566cce44e3e
|
|
Add missing parameter validation for vkCmdSetStencil* functions.
Change-Id: Ib2d2527341815412bc441427ba1dbf6d3826f3c6
|
|
This is implements some relatively-new functionality of the VK_EXT_debug_report
extension. An application can pass VkDebugReportCallbackCreateInfoEXT structs
on the pNext chain given to vkCreateInstance(), in order to setup one or more
callbacks that can be used during vk{Create|Destroy}Instance(). These special,
"temporary callbacks" allow messages (e.g. errors) to be logged during the time
when the debug_report extension is normally not setup.
A set of utilities copy VkDebugReportCallbackCreateInfoEXT structs from the
pNext chain given to vkCreateInstance(). These utilities are used by the
validation layers that may have messages (e.g. errors) during
vk{Create|Destroy}Instance().
|
|
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
|
|
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
|
|
- 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
|
|
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
|
|
VkResult validation now prints a description of the error
code being returned.
Change-Id: Ia6dc4e71ef6d1b27365e3c0499b24a3fc1d332ac
|
|
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
|
|
Change-Id: I964302597c0cbcbb7bb8c73d55fd6b00ebe0e765
|
|
For CreateBuffer and CreateImage the QFIs should be ignored unless
sharingMode is set to CONCURRENT. Also added QFI validation to
CreateCommandPool and added a special case for when an index is
incorrectly set to QUEUE_FAMILY_IGNORED.
Change-Id: I17639230ea7aa58ab89b9b0dc33e55927e9f1c84
|
|
Change-Id: Idf7a9d40278b796e16effa54e9b60668d275b8ec
|
|
Change-Id: Ife2286cc807288c9900b084f5f7c5a09d830f87a
|
|
Also, param_check.h -> parameter_validation.h and .json files changed.
Change-Id: I9db10563bcc2640fe6b90588d3c80c4fe50a8a83
|