diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2017-03-13 09:32:45 -0600 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2017-03-13 16:02:59 -0600 |
| commit | 843b962227fd7238fb22a4b502f9fb0e5e9b75e0 (patch) | |
| tree | 4a2c981e2f374fcdd45f79e6bc2a72aaeb186fe2 /layers/buffer_validation.cpp | |
| parent | 0e1e9c2deed8d94c7f146267ac6c5a0b311db423 (diff) | |
| download | usermoji-843b962227fd7238fb22a4b502f9fb0e5e9b75e0.tar.xz | |
layers: Add sparseBinding device feature checks
Change-Id: If1145276554ad8dda2839aa5bfc0b3c796873482
Diffstat (limited to 'layers/buffer_validation.cpp')
| -rw-r--r-- | layers/buffer_validation.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/layers/buffer_validation.cpp b/layers/buffer_validation.cpp index 9282ec78..a90ba50f 100644 --- a/layers/buffer_validation.cpp +++ b/layers/buffer_validation.cpp @@ -667,6 +667,14 @@ bool PreCallValidateCreateImage(layer_data *device_data, const VkImageCreateInfo validation_error_map[VALIDATION_ERROR_00731]); } + if ((pCreateInfo->flags & VK_IMAGE_CREATE_SPARSE_BINDING_BIT) && (!GetEnabledFeatures(device_data)->sparseBinding)) { + skip_call |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, + VALIDATION_ERROR_02143, "DS", + "vkCreateImage(): the sparseBinding device feature is disabled: Images cannot be created with the " + "VK_IMAGE_CREATE_SPARSE_BINDING_BIT set. %s", + validation_error_map[VALIDATION_ERROR_02143]); + } + return skip_call; } @@ -2168,11 +2176,20 @@ bool ValidateBufferUsageFlags(layer_data *device_data, BUFFER_STATE const *buffe bool PreCallValidateCreateBuffer(layer_data *device_data, const VkBufferCreateInfo *pCreateInfo) { bool skip = false; + const debug_report_data *report_data = core_validation::GetReportData(device_data); + // TODO: Add check for VALIDATION_ERROR_00658 - // TODO: Add check for VALIDATION_ERROR_00666 // TODO: Add check for VALIDATION_ERROR_00667 // TODO: Add check for VALIDATION_ERROR_00668 // TODO: Add check for VALIDATION_ERROR_00669 + + if ((pCreateInfo->flags & VK_BUFFER_CREATE_SPARSE_BINDING_BIT) && (!GetEnabledFeatures(device_data)->sparseBinding)) { + skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, + VALIDATION_ERROR_00666, "DS", + "vkCreateBuffer(): the sparseBinding device feature is disabled: Buffers cannot be created with the " + "VK_BUFFER_CREATE_SPARSE_BINDING_BIT set. %s", + validation_error_map[VALIDATION_ERROR_00666]); + } return skip; } |
