anv,radv: Implement VK_KHR_surface_capability_protected

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
This commit is contained in:
Jason Ekstrand 2018-12-12 10:54:26 -06:00 committed by Jason Ekstrand
parent ecb98c6898
commit 493b3ada9b
5 changed files with 61 additions and 7 deletions

View file

@ -84,6 +84,7 @@ EXTENSIONS = [
Extension('VK_KHR_shader_draw_parameters', 1, True),
Extension('VK_KHR_storage_buffer_storage_class', 1, True),
Extension('VK_KHR_surface', 25, 'RADV_HAS_SURFACE'),
Extension('VK_KHR_surface_protected_capabilities', 1, 'RADV_HAS_SURFACE'),
Extension('VK_KHR_swapchain', 68, 'RADV_HAS_SURFACE'),
Extension('VK_KHR_variable_pointers', 1, True),
Extension('VK_KHR_wayland_surface', 6, 'VK_USE_PLATFORM_WAYLAND_KHR'),

View file

@ -107,6 +107,7 @@ EXTENSIONS = [
Extension('VK_KHR_shader_draw_parameters', 1, True),
Extension('VK_KHR_storage_buffer_storage_class', 1, True),
Extension('VK_KHR_surface', 25, 'ANV_HAS_SURFACE'),
Extension('VK_KHR_surface_protected_capabilities', 1, 'ANV_HAS_SURFACE'),
Extension('VK_KHR_swapchain', 68, 'ANV_HAS_SURFACE'),
Extension('VK_KHR_variable_pointers', 1, True),
Extension('VK_KHR_wayland_surface', 6, 'VK_USE_PLATFORM_WAYLAND_KHR'),

View file

@ -758,10 +758,27 @@ wsi_get_display_plane_capabilities2(
assert(capabilities->sType ==
VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR);
return wsi_get_display_plane_capabilities(physical_device, wsi_device,
pDisplayPlaneInfo->mode,
pDisplayPlaneInfo->planeIndex,
&capabilities->capabilities);
VkResult result =
wsi_get_display_plane_capabilities(physical_device, wsi_device,
pDisplayPlaneInfo->mode,
pDisplayPlaneInfo->planeIndex,
&capabilities->capabilities);
vk_foreach_struct(ext, capabilities->pNext) {
switch (ext->sType) {
case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
VkSurfaceProtectedCapabilitiesKHR *protected = (void *)ext;
protected->supportsProtected = VK_FALSE;
break;
}
default:
/* Ignored */
break;
}
}
return result;
}
VkResult

View file

@ -526,8 +526,25 @@ wsi_wl_surface_get_capabilities2(VkIcdSurfaceBase *surface,
{
assert(caps->sType == VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR);
return wsi_wl_surface_get_capabilities(surface, wsi_device,
&caps->surfaceCapabilities);
VkResult result =
wsi_wl_surface_get_capabilities(surface, wsi_device,
&caps->surfaceCapabilities);
vk_foreach_struct(ext, caps->pNext) {
switch (ext->sType) {
case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
VkSurfaceProtectedCapabilitiesKHR *protected = (void *)ext;
protected->supportsProtected = VK_FALSE;
break;
}
default:
/* Ignored */
break;
}
}
return result;
}
static VkResult

View file

@ -532,7 +532,25 @@ x11_surface_get_capabilities2(VkIcdSurfaceBase *icd_surface,
{
assert(caps->sType == VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR);
return x11_surface_get_capabilities(icd_surface, wsi_device, &caps->surfaceCapabilities);
VkResult result =
x11_surface_get_capabilities(icd_surface, wsi_device,
&caps->surfaceCapabilities);
vk_foreach_struct(ext, caps->pNext) {
switch (ext->sType) {
case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
VkSurfaceProtectedCapabilitiesKHR *protected = (void *)ext;
protected->supportsProtected = VK_FALSE;
break;
}
default:
/* Ignored */
break;
}
}
return result;
}
static VkResult