aboutsummaryrefslogtreecommitdiff
path: root/layers
diff options
context:
space:
mode:
authorJohn Zulauf <jzulauf@lunarg.com>2017-10-26 15:34:49 -0600
committerjzulauf-lunarg <32470354+jzulauf-lunarg@users.noreply.github.com>2017-11-08 14:41:50 -0700
commit0a0f9755c27933320f75af3328ae08473faa32ab (patch)
treefbf09f3cad23b398e643805d2c0dd22673dc205b /layers
parentc6e81449fcd0e75463641684ed38b6202f32d4a5 (diff)
downloadusermoji-0a0f9755c27933320f75af3328ae08473faa32ab.tar.xz
layers: Adds createSampler VUID/test for IMG_CUBIC
Added VUID check to parameter_validation_layer and matching test for VUID 12600872 (must disable anisotropy for CUBIC_IMG filters) Change-Id: I3d0f9449413637292c2726480ca7ce0e6b793e21
Diffstat (limited to 'layers')
-rw-r--r--layers/parameter_validation_utils.cpp13
-rw-r--r--layers/vk_validation_error_database.txt2
2 files changed, 14 insertions, 1 deletions
diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp
index 959f344e..24a6f41d 100644
--- a/layers/parameter_validation_utils.cpp
+++ b/layers/parameter_validation_utils.cpp
@@ -1539,6 +1539,19 @@ bool pv_vkCreateSampler(VkDevice device, const VkSamplerCreateInfo *pCreateInfo,
"but the VK_KHR_sampler_mirror_clamp_to_edge extension has not been enabled. %s",
validation_error_map[VALIDATION_ERROR_1260086e]);
}
+
+ // Checks for the IMG cubic filtering extension
+ if (device_data->extensions.vk_img_filter_cubic) {
+ if ((pCreateInfo->anisotropyEnable == VK_TRUE) &&
+ ((pCreateInfo->minFilter == VK_FILTER_CUBIC_IMG) || (pCreateInfo->magFilter == VK_FILTER_CUBIC_IMG))) {
+ skip |=
+ log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__,
+ VALIDATION_ERROR_12600872, LayerName,
+ "vkCreateSampler(): Anisotropic sampling must not be VK_TRUE when either minFilter or magFilter are "
+ "VK_FILTER_CUBIC_IMG. %s",
+ validation_error_map[VALIDATION_ERROR_12600872]);
+ }
+ }
}
return skip;
diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt
index 084a07b3..5082fa02 100644
--- a/layers/vk_validation_error_database.txt
+++ b/layers/vk_validation_error_database.txt
@@ -1311,7 +1311,7 @@ VALIDATION_ERROR_1260086a~^~N~^~Unknown~^~vkCreateSampler~^~VUID-VkSamplerCreate
VALIDATION_ERROR_1260086c~^~Y~^~Unknown~^~vkCreateSampler~^~VUID-VkSamplerCreateInfo-addressModeU-01078~^~core~^~The spec valid usage text states 'If any of addressModeU, addressModeV or addressModeW are VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, borderColor must be a valid VkBorderColor value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSamplerCreateInfo-addressModeU-01078)~^~
VALIDATION_ERROR_1260086e~^~Y~^~MirrorClampToEdgeNotEnabled~^~vkCreateSampler~^~VUID-VkSamplerCreateInfo-addressModeU-01079~^~core~^~The spec valid usage text states 'If the VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled, addressModeU, addressModeV and addressModeW must not be VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSamplerCreateInfo-addressModeU-01079)~^~
VALIDATION_ERROR_12600870~^~Y~^~Unknown~^~vkCreateSampler~^~VUID-VkSamplerCreateInfo-compareEnable-01080~^~core~^~The spec valid usage text states 'If compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSamplerCreateInfo-compareEnable-01080)~^~
-VALIDATION_ERROR_12600872~^~N~^~Unknown~^~vkCreateSampler~^~VUID-VkSamplerCreateInfo-magFilter-01081~^~(VK_IMG_filter_cubic)~^~The spec valid usage text states 'If either magFilter or minFilter is VK_FILTER_CUBIC_IMG, anisotropyEnable must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkSamplerCreateInfo-magFilter-01081)~^~
+VALIDATION_ERROR_12600872~^~Y~^~AnisotropyFeatureEnabled~^~vkCreateSampler~^~VUID-VkSamplerCreateInfo-magFilter-01081~^~(VK_IMG_filter_cubic)~^~The spec valid usage text states 'If either magFilter or minFilter is VK_FILTER_CUBIC_IMG, anisotropyEnable must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkSamplerCreateInfo-magFilter-01081)~^~
VALIDATION_ERROR_12600b1c~^~N~^~None~^~VkSamplerCreateInfo~^~VUID-VkSamplerCreateInfo-magFilter-01422~^~(VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax)~^~The spec valid usage text states 'If either magFilter or minFilter is VK_FILTER_CUBIC_IMG, the reductionMode member of VkSamplerReductionModeCreateInfoEXT must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkSamplerCreateInfo-magFilter-01422)~^~
VALIDATION_ERROR_12600b1e~^~N~^~None~^~VkSamplerCreateInfo~^~VUID-VkSamplerCreateInfo-compareEnable-01423~^~(VK_EXT_sampler_filter_minmax)~^~The spec valid usage text states 'If compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfoEXT must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkSamplerCreateInfo-compareEnable-01423)~^~
VALIDATION_ERROR_12600cda~^~N~^~None~^~VkSamplerCreateInfo~^~VUID-VkSamplerCreateInfo-minFilter-01645~^~(VK_KHR_sampler_ycbcr_conversion)~^~The spec valid usage text states 'If sampler Y'CBCR conversion is enabled and VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR is not set for the format, minFilter and magFilter must be equal to the sampler Y'CBCR conversion's chromaFilter' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkSamplerCreateInfo-minFilter-01645)~^~