drm/amd/display: Enable fp16 also on DCE-8/10/11.
authorMario Kleiner <mario.kleiner.de@gmail.com>
Mon, 28 Dec 2020 18:50:59 +0000 (19:50 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 5 Jan 2021 16:35:22 +0000 (11:35 -0500)
The hw supports fp16, this is not only useful for HDR,
but also for standard dynamic range displays, because
it allows to get more precise color reproduction with
about 11 - 12 bpc linear precision in the unorm range
0.0 - 1.0.

Working fp16 scanout+display (and HDR over HDMI) was
verified on a DCE-8 asic, so i assume that the more
recent DCE-10/11 will work equally well, now that
format-specific plane scaling constraints are properly
enforced, e.g., the inability of fp16 to scale on older
hw like DCE-8 to DCE-11.

Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c

index 8ab9d6c..f20ed05 100644 (file)
@@ -385,7 +385,7 @@ static const struct dc_plane_cap plane_cap = {
        .pixel_format_support = {
                        .argb8888 = true,
                        .nv12 = false,
-                       .fp16 = false
+                       .fp16 = true
        },
 
        .max_upscale_factor = {
index 3f63822..af208f9 100644 (file)
@@ -410,7 +410,7 @@ static const struct dc_plane_cap plane_cap = {
                .pixel_format_support = {
                                .argb8888 = true,
                                .nv12 = false,
-                               .fp16 = false
+                               .fp16 = true
                },
 
                .max_upscale_factor = {
index 390a0fa..26fe25c 100644 (file)
@@ -402,7 +402,7 @@ static const struct dc_plane_cap plane_cap = {
        .pixel_format_support = {
                        .argb8888 = true,
                        .nv12 = false,
-                       .fp16 = false
+                       .fp16 = true
        },
 
        .max_upscale_factor = {