diff --git a/docs/features.txt b/docs/features.txt index 45cb5535a21..6a51d86a39e 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -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) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 7e1ce311e7c..9d52ce965f1 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -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 diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index 1ee21fa0fa2..bfdfd9462d5 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -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); diff --git a/src/panfrost/vulkan/panvk_vX_physical_device.c b/src/panfrost/vulkan/panvk_vX_physical_device.c index 198d383ee53..08f1d6e55d7 100644 --- a/src/panfrost/vulkan/panvk_vX_physical_device.c +++ b/src/panfrost/vulkan/panvk_vX_physical_device.c @@ -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 */ diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c index e3b19b7fe22..56aa40fe92b 100644 --- a/src/panfrost/vulkan/panvk_vX_shader.c +++ b/src/panfrost/vulkan/panvk_vX_shader.c @@ -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);