aboutsummaryrefslogtreecommitdiff
path: root/layers/buffer_validation.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2017-03-13 09:32:45 -0600
committerMark Lobodzinski <mark@lunarg.com>2017-03-13 16:02:59 -0600
commit843b962227fd7238fb22a4b502f9fb0e5e9b75e0 (patch)
tree4a2c981e2f374fcdd45f79e6bc2a72aaeb186fe2 /layers/buffer_validation.cpp
parent0e1e9c2deed8d94c7f146267ac6c5a0b311db423 (diff)
downloadusermoji-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.cpp19
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;
}