Skip to content
Snippets Groups Projects
Commit 6f82da9d authored by Mark Lobodzinski's avatar Mark Lobodzinski
Browse files

layers: Support viewport_array2 ext shader caps

Recognize and validate shader capabilities added in the new
VK_NV_viewport_array2 extension.

Change-Id: Ifeb21d9230ca071a56246acc928add0a572b55f9
parent bd546e41
No related branches found
No related tags found
No related merge requests found
......@@ -2541,6 +2541,12 @@ static bool validate_shader_capabilities(layer_data *dev_data, shader_module con
VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME);
break;
 
case spv::CapabilityShaderViewportIndexLayerNV:
case spv::CapabilityShaderViewportMaskNV:
pass &= require_extension(report_data, dev_data->device_extensions.nv_viewport_array2_enabled,
VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME);
break;
default:
// Spirv-validator should catch these errors
break;
......@@ -3854,6 +3860,8 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo,
dev_data->device_extensions.khr_maintenance1_enabled = false;
dev_data->device_extensions.nv_geometry_shader_passthrough_enabled = false;
dev_data->device_extensions.nv_sample_mask_override_coverage_enabled = false;
dev_data->device_extensions.nv_viewport_array2_enabled = false;
 
for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0) {
......@@ -3880,6 +3888,9 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo,
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME) == 0) {
dev_data->device_extensions.nv_sample_mask_override_coverage_enabled = true;
}
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME) == 0) {
dev_data->device_extensions.nv_viewport_array2_enabled = true;
}
}
}
 
......
......@@ -793,6 +793,7 @@ struct devExts {
bool khr_maintenance1_enabled;
bool nv_geometry_shader_passthrough_enabled;
bool nv_sample_mask_override_coverage_enabled;
bool nv_viewport_array2_enabled;
std::unordered_map<VkSwapchainKHR, std::unique_ptr<SWAPCHAIN_NODE>> swapchainMap;
std::unordered_map<VkImage, VkSwapchainKHR> imageToSwapchainMap;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment