layers: Added PipelineMultiSample VUID checks

Added validation checks for:

VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784
(VALIDATION_ERROR_10000620)
    If the sample rate shading feature is not enabled,
    sampleShadingEnable must be VK_FALSE

VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786
(VALIDATION_ERROR_10000624)
    minSampleShading must be in the range [0,1]

Change-Id: I21cdaf99f8970df4f2e03026a4dae00746ad8386
diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp
index dec74ca..41a51ac 100644
--- a/layers/parameter_validation_utils.cpp
+++ b/layers/parameter_validation_utils.cpp
@@ -1209,6 +1209,24 @@
                                         "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO",
                                         i);
                     }
+                    if (pCreateInfos[i].pMultisampleState->sampleShadingEnable == VK_TRUE) {
+                        if (!device_data->physical_device_features.sampleRateShading) {
+                            skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0,
+                                            __LINE__, VALIDATION_ERROR_10000620, LayerName,
+                                            "vkCreateGraphicsPipelines(): parameter "
+                                            "pCreateInfos[%d].pMultisampleState->sampleShadingEnable: %s",
+                                            i, validation_error_map[VALIDATION_ERROR_10000620]);
+                        }
+                        // TODO Add documentation issue about when minSampleShading must be in range and when it is ignored
+                        // For now a "least noise" test *only* when sampleShadingEnable is VK_TRUE.
+                        if (!in_inclusive_range(pCreateInfos[i].pMultisampleState->minSampleShading, 0.F, 1.0F)) {
+                            skip |= log_msg(
+                                report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__,
+                                VALIDATION_ERROR_10000624, LayerName,
+                                "vkCreateGraphicsPipelines(): parameter pCreateInfos[%d].pMultisampleState->minSampleShading: %s",
+                                i, validation_error_map[VALIDATION_ERROR_10000624]);
+                        }
+                    }
                 }
 
                 // TODO: Conditional NULL check based on subpass depth/stencil attachment