| Age | Commit message (Collapse) | Author |
|
- 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
|
|
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
|
|
- 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
|
|
This enables programatically specifying search directories for the
layer JSON files. This makes deploying and running compiled layers
in local and automated testing with multiple configurations a much
simpler process.
Change-Id: I0904ef230d020004d8d71cbe265e83cdb6120db8
|
|
This reverts commit b1e6b564616c40062b81d0b8b90e8689dd9aea11.
Change-Id: I9e6bfad81369912c85c3122d6d36093c3c148454
|
|
Where the memory is going to be mapped
Change-Id: I66c4f5950fa77fe8b785b12233adbc4e9db797ce
|
|
Change-Id: I517467bc1afae07fdf6346596908ddb15757dc5d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pNext/sType extension structs that are unknown to a component must
be ignored by those components (layers, loader, ICDs). Loader was
stripping off the pNext structs it added to DeviceCreateInfo and
InstanceCreateInfo. Remove this stripping as the loader passes needed
info to layers and ICDs via this.
Change-Id: I49f169660474cffba276afac0c224e1b74eaa4bc
|
|
|
|
Warning as error, struct field initialization not matching
order of declaration.
|
|
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().
|
|
In case of allocation failure, glibc's vasprintf doesn't make any
guarantees about the ptr -- the return value is the only way to handle
this safely.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Any safe struct for which default copy constructor was incorrect was
broken (anything with embedded ptrs). This change fixes that by adding
correct copy constructors. Also had to add initializers that can take
object ptrs in order for copy constructor code to work.
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
Change-Id: I1606bd92bcabb40156f8745b58596ae8f1ec429d
|
|
These casts were annoying noise, and uncheckable. Move them into the
generator where we know the one type that makes sense.
Drop spurious reinterpret_cast of stage create info to itself -- it's
all raw types once the root pCreateInfo is unwrapped.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|
|
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
|
|
Change-Id: I32685ef02c245557315a3e44c65eb8c8cf62f9f4
|
|
using app provided allocation callbacks
Change-Id: Ib293934b4574864a78f975aba52c9aa5c0a24779
|
|
Change-Id: I544f72fde8cbbe4d57679c692887fd262073374f
|
|
|
|
We match up dynamic descriptor offsets one at a time so added an interface
to get descriptor type from the global index in addition to the original
pBinding index. This allows us to iterate over all of the descriptors in a
set and easily grab their type.
|
|
Incomplete copy construction of DescriptorSetLayout and safe_* types
causes embedded pointers (such as pImmutableSamplers) to become invalid
before they should. Fixing this for now by moving DescriptorSetLayout
and its embedded safe_* struct to ptrs within their containers and
explicitly deleting.
|
|
|
|
This is the start of a refactor to pull code out of core_validation.cpp
into its own separate classes. I'm starting with descriptor set code as
it isolates reasonably well and it's old and could use some updating anyway.
For this first piece I've broken VkDescriptorSetLayout into its own
class currently called DescriptorSetLayout. I don't know if that's a great
name as it's close to VkDescriptorSetLayout, so I'm open to changing it.
Provided a brief class description in comment in new file descriptor_sets.h.
I made the class interfaces based on what other code is currently using.
I'm planning to pull more descriptor set code into its own classes and I
anticipate that will cause some flux in the class interfaces until most
of the work is done.
|
|
Change-Id: I2e5c3717dd7fa86992f617bcc0f93de8ba60759e
|
|
Change-Id: I7c149a4542623e537b44720766006652abe33948
|
|
Change-Id: Ifcdd5423ab03110326897dd9cda272eda05acc01
|
|
Actual fix this time. If a binding is immutable samplers
skip over it when verifying descriptor bindings.
|
|
toolchain: Bump everything to pull in required SPIR-V tools revision
|
|
Encompasses pull request #261 from Chris.
Also gets things building again reflecting upstream changesi, mainly
HLSL libs for glslang.
Desktop build/test results w/ update_external_sources.sh/bat
Windows on Skylake: _run_all_tests.ps1, demos with --validate
Ubuntu on Skylake: vk_layer_validation_tests, cube --validate
Android build/test results w/ update_external_sources_android.sh/bat:
Windows: VkLayerValidationTests pass
OSX: VkLayerValidationTests pass
Ubuntu: VkLayerValidationTests pass
|
|
No functional change.
Change-Id: I190a2af5de66686f070b093bf7bd1459afb9da64
|
|
|
|
Expand the section "Discovery of layer entry points" into "Layer Library
Interface". In general, the new section defines an interface that allows
a loader to discover and insert layers while staying compliant. Other
sections have additional guidelines for layers to follow.
|
|
Change-Id: I48e736ef1c777af831d7e888c8ac6e1647d1f6b2
|
|
Found by running Hologram with validation and push constants
using args "-p -v".
Hologram is issuing a memory barrier in the push constants
mode. This will be fixed in Hologram, but validation should
not be crashing.
Change-Id: I1e76c3fca0152fc3bf8c1de3db3b044f650c202f
|
|
Silently ignore VK_NULL_HANDLE in DestroyInstance/Device.
Change-Id: I96305088db75932b6f3f824852db9c72b8352120
|
|
Validate line wdith in both vkCreateGraphicsPipelines and in
vkCmdSetLineWidth. Also, add a warning in vkCmdSetLineWidth
if the user calls it but doesn't enable dynamic line width.
Also, updated demos to fix missing lineWidth setting as well.
Change-Id: I62118da9cb5282fcc22b1506e9be2db82b5f4a40
|
|
|
|
There were two separate mechanisms for tracking fence state in core_validation.
This change removes the last[Retired|Submitted]Id per queue method.
We also no longer over-write the fence createInfo to track fence state, but
just use the needsSignaled bool for all fence state tracking.
Finally, there was a validation test/check flagging an error if an
unsignaled fence was reset, but this is valid based on the spec so removed
the check and changed test to be a positive test expected to pass.
|
|
Signed-off-by: Chris Forbes <chrisforbes@google.com>
|