mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 07:20:10 +01:00
panvk: enable ycbcr on bifrost
This also enables EXT_image_drm_format_modifier, which depends on ycbcr. Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38145>
This commit is contained in:
parent
3f021404eb
commit
6735fe939a
5 changed files with 7 additions and 12 deletions
|
|
@ -457,7 +457,7 @@ Vulkan 1.1 -- all DONE: anv, hk, kk, lvp, nvk, panvk/v10+, pvr, radv, tu, vn
|
|||
VK_KHR_maintenance3 DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_multiview DONE (anv, dzn, hasvk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_relaxed_block_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_sampler_ycbcr_conversion DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
|
||||
VK_KHR_sampler_ycbcr_conversion DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
|
||||
VK_KHR_shader_draw_parameters DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, vn)
|
||||
VK_KHR_storage_buffer_storage_class DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_variable_pointers DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
|
||||
|
|
@ -639,7 +639,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||
VK_EXT_headless_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_EXT_image_2d_view_of_3d DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, vn)
|
||||
VK_EXT_image_compression_control DONE (anv/gfx12-, radv)
|
||||
VK_EXT_image_drm_format_modifier DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, radv/gfx9+, tu, v3dv, vn)
|
||||
VK_EXT_image_drm_format_modifier DONE (anv, hasvk, hk, lvp, nvk, panvk, radv/gfx9+, tu, v3dv, vn)
|
||||
VK_EXT_image_sliced_view_of_3d DONE (anv, hk, lvp, nvk, radv/gfx10+, vn)
|
||||
VK_EXT_image_view_min_lod DONE (anv, hasvk, hk, nvk, radv, tu, vn)
|
||||
VK_EXT_index_type_uint8 DONE (anv, hasvk, hk, nvk, lvp, panvk, pvr, radv/gfx8+, tu, v3dv, vn)
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ VK_EXT_device_memory_report on panvk
|
|||
VK_VALVE_video_encode_rgb_conversion on radv
|
||||
VK_EXT_custom_resolve on RADV
|
||||
GL_EXT_shader_pixel_local_storage on Panfrost v6+
|
||||
VK_EXT_image_drm_format_modifier on panvk/v7
|
||||
VK_KHR_sampler_ycbcr_conversion on panvk/v7
|
||||
sparseResidencyImage2D on panvk v10+
|
||||
sparseResidencyStandard2DBlockShape on panvk v10+
|
||||
VK_KHR_surface_maintenance1 promotion everywhere EXT is exposed
|
||||
|
|
|
|||
|
|
@ -648,11 +648,6 @@ get_image_format_features(struct panvk_physical_device *physical_device,
|
|||
{
|
||||
const struct vk_format_ycbcr_info *ycbcr_info =
|
||||
vk_format_get_ycbcr_info(format);
|
||||
const unsigned arch = pan_arch(physical_device->kmod.props.gpu_id);
|
||||
|
||||
/* TODO: Bifrost YCbCr support */
|
||||
if (ycbcr_info && arch <= 7)
|
||||
return 0;
|
||||
|
||||
if (ycbcr_info == NULL)
|
||||
return get_image_plane_format_features(physical_device, format);
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ panvk_per_arch(get_physical_device_extensions)(
|
|||
.KHR_push_descriptor = true,
|
||||
.KHR_relaxed_block_layout = true,
|
||||
.KHR_sampler_mirror_clamp_to_edge = true,
|
||||
.KHR_sampler_ycbcr_conversion = PAN_ARCH >= 10,
|
||||
.KHR_sampler_ycbcr_conversion = true,
|
||||
.KHR_separate_depth_stencil_layouts = true,
|
||||
.KHR_shader_clock = true,
|
||||
.KHR_shader_draw_parameters = true,
|
||||
|
|
@ -150,7 +150,7 @@ panvk_per_arch(get_physical_device_extensions)(
|
|||
.EXT_host_query_reset = true,
|
||||
.EXT_image_2d_view_of_3d = true,
|
||||
/* EXT_image_drm_format_modifier depends on KHR_sampler_ycbcr_conversion */
|
||||
.EXT_image_drm_format_modifier = PAN_ARCH >= 10,
|
||||
.EXT_image_drm_format_modifier = true,
|
||||
.EXT_image_robustness = true,
|
||||
.EXT_index_type_uint8 = true,
|
||||
.EXT_line_rasterization = true,
|
||||
|
|
@ -318,7 +318,7 @@ panvk_per_arch(get_physical_device_features)(
|
|||
.variablePointersStorageBuffer = true,
|
||||
.variablePointers = true,
|
||||
.protectedMemory = false,
|
||||
.samplerYcbcrConversion = PAN_ARCH >= 10,
|
||||
.samplerYcbcrConversion = true,
|
||||
.shaderDrawParameters = true,
|
||||
|
||||
/* Vulkan 1.2 */
|
||||
|
|
|
|||
|
|
@ -804,14 +804,12 @@ panvk_lower_nir(struct panvk_device *dev, nir_shader *nir,
|
|||
#endif
|
||||
}
|
||||
|
||||
#if PAN_ARCH >= 10
|
||||
const struct lower_ycbcr_state ycbcr_state = {
|
||||
.set_layout_count = set_layout_count,
|
||||
.set_layouts = set_layouts,
|
||||
};
|
||||
NIR_PASS(_, nir, nir_vk_lower_ycbcr_tex, lookup_ycbcr_conversion,
|
||||
&ycbcr_state);
|
||||
#endif
|
||||
|
||||
panvk_per_arch(nir_lower_descriptors)(nir, dev, rs, set_layout_count,
|
||||
set_layouts, state, shader);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue