From e13e02f8060a5352b729f3265fe890fe9985b21a Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Wed, 1 Mar 2017 15:52:49 -0700 Subject: layers: Validate samplerAnisotropy device feature Change-Id: I8b1262c34612870b9c8ebb1f62e7d6755219606f --- layers/parameter_validation.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'layers/parameter_validation.cpp') diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp index f0b37040..91067e08 100644 --- a/layers/parameter_validation.cpp +++ b/layers/parameter_validation.cpp @@ -3529,8 +3529,16 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSampler(VkDevice device, const VkSamplerCre skip |= parameter_validation_vkCreateSampler(report_data, pCreateInfo, pAllocator, pSampler); - // Validation for parameters excluded from the generated validation code due to a 'noautovalidity' tag in vk.xml if (pCreateInfo != nullptr) { + + if ((device_data->physical_device_features.samplerAnisotropy == false) && (pCreateInfo->maxAnisotropy != 1.0)) { + skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, + DEVICE_FEATURE, LayerName, + "vkCreateSampler(): The samplerAnisotropy feature is not enabled, so the maxAnisotropy member of the " + "VkSamplerCreateInfo structure must be 1.0 but is %f.", + pCreateInfo->maxAnisotropy); + } + // If compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value if (pCreateInfo->compareEnable == VK_TRUE) { skip |= validate_ranged_enum(report_data, "vkCreateSampler", "pCreateInfo->compareOp", "VkCompareOp", -- cgit v1.2.3