From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A8C50C43462 for ; Fri, 14 May 2021 21:05:02 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 660D061155 for ; Fri, 14 May 2021 21:05:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 660D061155 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 84AE26E406; Fri, 14 May 2021 21:05:00 +0000 (UTC) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2089.outbound.protection.outlook.com [40.107.236.89]) by gabe.freedesktop.org (Postfix) with ESMTPS id C50516E3D8; Fri, 14 May 2021 21:04:58 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kneMUcdE+X6FIii7jAkmTzvFOnjmia5beWn5XG0Y9Amv1Fk1cJB0JGSbPfU5pyyhYuHQ/+FnBZBiPkG5EdB4XGxAqu4U48RcTaihOqNrvl+QSiTvmIePQsryVEBuKZi71qFXdKuYLy8NM0ma3sWNi1FYFZ/cDszw7u1Z1Y3009LD2/BMGrG6gWUhtZuaH8l/owLR0SJDdL5IenjCvlORoLc6FzA98w/3WSW5VR62lki/kSGZosLzUVyq6e3T5haVd1iI/esCZZ5ERBXr1ZCgA3yR/SoTrr1Swi6P/sX1jcTbZFohO5tRkJBr6kmeICV4KSElLd+g4bdv13puOIhtxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VFun7dYPzbuGjULGPvjXbBcqCHIO5gB9lvOiVQEe04M=; b=jg/6NvFu7McSx7p/gSgs0AVZKX++jzj8Htasw6/mhSkRzr4lBuALrVVxPeEbo47/921vSShrVQtJvexfTIFjc6RFo49U4bAZJIOMb4VPKL+xBr30d+H1Ja8iYT7O3skOFIjc0qiCuhst0BN9EfEXkZw4AX0pD/MA1Tb+P5KB4ZnluqGeAwrMqHAO5k1OMH9SXAXfrezhruoyswveLhpGtMX4zugj0J2usD58r+6RUy/IxxWxZQzrR+xpo9JzOuYkxv55oJtg8UKc1lcPF87CV8v2Gk6hXA5vMbyz2RqXq7B1IY/ach0bGTSxM5bGRBV0HMCSWUlJfEw4BZGv/XVQ9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VFun7dYPzbuGjULGPvjXbBcqCHIO5gB9lvOiVQEe04M=; b=HgsDxDvR4rcCk8ovSfc4kAH7yWFQggRVj9fL6M5HhG9WaCkTTWoiB91nszscrD+Fvv+VXHsX+iS626WZPqVovI3SFuAPqjfqH2qdDGu/onXSItzvtOQP/0ORKTQq1189KZxtBeQHu38DxqiaY3BkUWMS4z5QixiGodVF+5U1nYA= Authentication-Results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; Received: from MW3PR12MB4379.namprd12.prod.outlook.com (2603:10b6:303:5e::11) by MWHPR1201MB0254.namprd12.prod.outlook.com (2603:10b6:301:57::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Fri, 14 May 2021 21:04:56 +0000 Received: from MW3PR12MB4379.namprd12.prod.outlook.com ([fe80::c476:9fdf:664e:4f25]) by MW3PR12MB4379.namprd12.prod.outlook.com ([fe80::c476:9fdf:664e:4f25%4]) with mapi id 15.20.4129.026; Fri, 14 May 2021 21:04:56 +0000 Subject: Re: [RFC PATCH 1/3] drm/color: Add RGB Color encodings To: Sebastian Wick References: <20210426173852.484368-1-harry.wentland@amd.com> <20210426173852.484368-2-harry.wentland@amd.com> <0090ce07-6102-59e7-bc8c-3528297aa5ae@amd.com> From: Harry Wentland Message-ID: Date: Fri, 14 May 2021 17:04:51 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [198.200.67.155] X-ClientProxiedBy: YQBPR01CA0098.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:3::34) To MW3PR12MB4379.namprd12.prod.outlook.com (2603:10b6:303:5e::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.193] (198.200.67.155) by YQBPR01CA0098.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:3::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.30 via Frontend Transport; Fri, 14 May 2021 21:04:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0be6a9eb-8898-4897-f205-08d9171becf9 X-MS-TrafficTypeDiagnostic: MWHPR1201MB0254: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DwPVuFKN7uhBV9pMQBGM6siTs2AiUYeaItrdux6x3UIVSRQU+7oMIxIBCEQPDHZauYg9EZY2r9x3YL/IS8dyHnGJiL5WXfT1leoP6qyPLNOc6L1PpzbLXmTsFAJHHgP6SPrwbZmKVuVyEJQsddSy6+7AD7446t5lj+HLwf0EtxzzpBlf+7zV2rBWCxeRy+yZGa3my27oT9vyyCoSufh24X6wUVUH25sK3KyVz/07YDsi21ykSsc4mrPuhMP5h+67nkAH/Yr8W02T3fskjxe4FiF8pPPOtCO55keOozdi2oGjd5/YToxTT633lkSUoDzPeiuFy8rqkcDKv6xHTplq8PrpFLNKyP/toWExqVP/g4LqTAws0cvcUtc6KzrZSY/XE8d7iRSa53etobtanN/8BmT7zhCyqAYCzuGx51glxR037iPS7IXBVLKAoGdkNMSHZrrXX/U4QA3mUaP1xrLwKZhJ/vxMHbBtc5FLi0ydmZWR4u58flnOqQDB1QUkGMRg7wM+EHFyrI727Fr+FYggnGvNPZ162C1YeHxML0eokfMI1Hf967IwIwxD2dBig4lSa3Elfz5wKQXlfufcvMeuvXlxbHawzF0D9oyF20Z7IJ8Sx2l3Wk84XE5sbhMwhP60XGYQirJkq+lvvw5JaEKVTIEzJ3fEH0Oig1bHJPAX17RDV77yNUCVutkmsGrERjFas+J3BMo9Hy+lo6qmbKvgR3dbU/nY4arcdNmCUtgKrjs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW3PR12MB4379.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(346002)(376002)(396003)(39860400002)(366004)(44832011)(186003)(66946007)(16526019)(66476007)(6486002)(66556008)(66574015)(2906002)(5660300002)(31696002)(8936002)(31686004)(26005)(316002)(8676002)(966005)(478600001)(54906003)(956004)(2616005)(83380400001)(86362001)(53546011)(16576012)(36756003)(4326008)(38100700002)(6916009)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?Sk01bmEyS3FFUXNtZld1VjFpaUErN3VCcHRtQ2VaT2xtWHFqQmEyeDVVMGN5?= =?utf-8?B?eWtrd1VmbU9OYUwvR2FjYnZXSjhneGdQRmFDNGQ3UWdTYXJmMS9jUCtSeGZP?= =?utf-8?B?UENRcGdFTHZyL3RmRHFWQjd5MTVaOTZwS3BQeGJ6QUU1eEExQzhnNTZqUE0v?= =?utf-8?B?MDdiWEFmbGRLL0dZK3pEY3Q5UEFPdHpMTHBYREZFTy8wNVp2Nmo5blZUT0lV?= =?utf-8?B?ZFpvS3ArTlRSa2tqcjZ4NXdtMFhsRW5BYml2cXVySHlBQmpKdVozSkk2MjQ2?= =?utf-8?B?eDhGVGZjVUFyYldpak5Ic0VLNUpGS2l2NHJVWi9uNzd5ZnFxN1YyRVo3RFo3?= =?utf-8?B?RTZTR0JtakpnTjEycmpmNGRsdE1EQWdRcXVjVGJCR3hQeUZBOVN3QTJGU2FI?= =?utf-8?B?WUNwMFVERW84b1NEc0ZCZTlTUUsyRFoxUUF4U1VFdHBKNHRtNmZyZWFKZWs2?= =?utf-8?B?ZFJoa29SYW56MFhST1d1VVRXU2dLQ1IwK2JPeHQzcGdRRzVSOG52TTVuVnBk?= =?utf-8?B?Q291ZFVHdGlTaTkzNGxKLzJ6U1doL0E2S2ZreW9UNUJRVnY3TGdoNEVmOEpO?= =?utf-8?B?d1lubTlPcjRaWCtnWis0Z3AyMXBIVHRib0YvaW9IUGpYbE9kQUduc2xrcHht?= =?utf-8?B?TDdnL1k4MURsajN2dDhHdDRiQXJQMzVZRVVzanJEVjZNRlpYUHdZWVJzM1dB?= =?utf-8?B?MDJGbVBGTXN0YjJBVCtJZFhYTWd0M3JXcDhXTi9RWFQ0ZXozd21KY2huMmFu?= =?utf-8?B?blg2c1F3am5nTWkxMnN4N1U2KzZHRnBHRk41ZjNmbFN4dHhZWERBRzRvL0J0?= =?utf-8?B?Q3BnUjhEM0VJYU1tcFVMNHRIeXNXSWN2TDlmVmY1MkpyNjZvME9RbVdQek5h?= =?utf-8?B?K0JrdDBNRkYzZmlJcmNFN2ZNd3E4NzZrb3BqTTJ2cUZ1ZG5EUG9Ma2VvVnkz?= =?utf-8?B?c3BUYzZSaVVYK3hoRDlIbjVkdFpYNDhjZkIxN296N2llejZldzQyMUlxQVR2?= =?utf-8?B?VmxJakZ2N3d2UmQ0bzFZb2RQU3Y1cjV2ZFlockRQSnQ3SWc2d1Rrd3B3RWlF?= =?utf-8?B?V1ByK2QxdVpuVUtIcnJIcVpuRnVXdFI0VWtpb3pYRk5ZZE5tRU13MVRQazRl?= =?utf-8?B?L2orSDlVdGhDM01VZklLU0NSQzhLcnF1eWFaYWtxZCtUUjFOa2piTEhwcHhy?= =?utf-8?B?b0VieEJIRlhjNWRtR2tsSmdTN01ZUVlFTURuQ2FOMEcxSERWbS9WM2I2RVlP?= =?utf-8?B?TjZmM2o2YWs1Q2ZEaHpQcUZjNzRzbnFyOXFwYnFwWCtnM296VmRhZUFDQUhM?= =?utf-8?B?K3AydVIxaFFvODZJd2htdjNBcFBjMVpHMFZ1dUU4U21BWURiYmhTbFh3L2NM?= =?utf-8?B?RDZpWjVZOCtiZ3phNlNKS3lZeTVKb3dQSGJReUN0VWpMbmdnb2Yzc0xHZlpK?= =?utf-8?B?YVRPTzRscXNyM1Mrbmw0N1o5UW5TUGp3SG1IMDN0S0NVVzcyRWl2MGxWOW1x?= =?utf-8?B?OGJVbnhHaGxpVVdnUkpTb3h3UytNSzdrY25LQlBZMlFPNTl3S0JGWmpQT2Jj?= =?utf-8?B?ZmNBc2VjdnRlUVljRmhmTXk2bmxxc2dzMFM4R3lSVEVMRFpHODBIV1hQZVlk?= =?utf-8?B?YlJ3UXI0UzlrenNxR2I4MXdmM3YyOTVhNXpwWVJ0QkNxWWl2OTZvUzNNbXNj?= =?utf-8?B?Qi81UlMxRXBaYzM2ZGx4ekhrQ0wvT3UzVUpEajZRbU1RUUNDM2Z1ZFJsWlBE?= =?utf-8?Q?ZSKZ+wRqO1KYQ8NqL/el0houo4Pq9x/ppwTWDQt?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0be6a9eb-8898-4897-f205-08d9171becf9 X-MS-Exchange-CrossTenant-AuthSource: MW3PR12MB4379.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2021 21:04:55.9942 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: u8PVBQic9Nz5CpO2UVlniuw19mPTrYUh2HExhZoOCtqQzXyUPy6khfynKmC6+H9BXiFbEVxVkHvX3P0d4/5sLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB0254 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Deepak.Sharma@amd.com, Krunoslav.Kovac@amd.com, mcasas@google.com, Shashank.Sharma@amd.com, dri-devel@lists.freedesktop.org, Shirish.S@amd.com, Uma Shankar , hersenxs.wu@amd.com, amd-gfx@lists.freedesktop.org, laurentiu.palcu@oss.nxp.com, Bhawanpreet.Lakha@amd.com, Nicholas.Kazlauskas@amd.com, Vitaly.Prosyak@amd.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 2021-04-30 8:53 p.m., Sebastian Wick wrote: > On 2021-04-26 20:56, Harry Wentland wrote: >> On 2021-04-26 2:07 p.m., Ville Syrjälä wrote: >>> On Mon, Apr 26, 2021 at 01:38:50PM -0400, Harry Wentland wrote: >>>> From: Bhawanpreet Lakha >>>> >>>> Add the following color encodings >>>> - RGB versions for BT601, BT709, BT2020 >>>> - DCI-P3: Used for digital movies >>>> >>>> Signed-off-by: Bhawanpreet Lakha >>>> Signed-off-by: Harry Wentland >>>> --- >>>>   drivers/gpu/drm/drm_color_mgmt.c | 4 ++++ >>>>   include/drm/drm_color_mgmt.h     | 4 ++++ >>>>   2 files changed, 8 insertions(+) >>>> >>>> diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c >>>> index bb14f488c8f6..a183ebae2941 100644 >>>> --- a/drivers/gpu/drm/drm_color_mgmt.c >>>> +++ b/drivers/gpu/drm/drm_color_mgmt.c >>>> @@ -469,6 +469,10 @@ static const char * const color_encoding_name[] = { >>>>       [DRM_COLOR_YCBCR_BT601] = "ITU-R BT.601 YCbCr", >>>>       [DRM_COLOR_YCBCR_BT709] = "ITU-R BT.709 YCbCr", >>>>       [DRM_COLOR_YCBCR_BT2020] = "ITU-R BT.2020 YCbCr", >>>> +    [DRM_COLOR_RGB_BT601] = "ITU-R BT.601 RGB", >>>> +    [DRM_COLOR_RGB_BT709] = "ITU-R BT.709 RGB", >>>> +    [DRM_COLOR_RGB_BT2020] = "ITU-R BT.2020 RGB", >>>> +    [DRM_COLOR_P3] = "DCI-P3", >>> >>> These are a totally different thing than the YCbCr stuff. >>> The YCbCr stuff just specifies the YCbCr<->RGB converison matrix, >>> whereas these are I guess supposed to specify the primaries/whitepoint? >>> But without specifying what we're converting *to* these mean absolutely >>> nothing. Ie. I don't think they belong in this property. >>> >> >> If this is the intention I don't see it documented. >> >> I might have overlooked something but do we have a way to explicitly >> specify today what *to* format the YCbCr color encodings convert into? >> Would that be a combination of the output color encoding specified via >> colorspace_property and the color space encoded in the primaries and >> whitepoint of the hdr_output_metadata? >> >> Fundamentally I don't see how the use of this property differs, >> whether you translate from YCbCr or from RGB. In either case you're >> converting from the defined input color space and pixel format to an >> output color space and pixel format. >> >>> The previous proposals around this topic have suggested a new >>> property to specify a conversion matrix either explicitly, or >>> via a separate enum (which would specify both the src and dst >>> colorspaces). I've always argued the enum approach is needed >>> anyway since not all hardware has a programmable matrix for >>> this. But a fully programmable matrix could be nice for tone >>> mapping purposes/etc, so we may want to make sure both are >>> possible. >>> >>> As for the transfer func, the proposals so far have mostly just >>> been to expose a programmable degamma/gamma LUTs for each plane. >>> But considering how poor the current gamma uapi is we've thrown >>> around some ideas how to allow the kernel to properly expose the >>> hw capabilities. This is one of those ideas: >>> https://lists.freedesktop.org/archives/dri-devel/2019-April/212886.html I think that basic idea could be also be extended to allow fixed >>> curves in case the hw doesn't have a fully programmable LUT. But >>> dunno if that's relevant for your hw. >>> >> >> The problem with exposing gamma, whether per-plane or per-crtc, is >> that it is hard to define an API that works for all the HW out there. >> The capabilities for different HW differ a lot, not just between >> vendors but also between generations of a vendor's HW. > > Introducing another API if hardware is sufficiently different doesn't > seem like the worst idea. At least it sounds a lot more tractable than > teaching the kernel about all the different use cases, opinions and > nuances that arise from color management. > > In the end generic user space must always be able to fall back to > software so the worst case is that it won't be able to offload an > operation if it doesn't know about a new API. > >> Another reason I'm proposing to define the color space (and gamma) of >> a plane is to make this explicit. Up until the color space and gamma >> of a plane or framebuffer are not well defined, which leads to drivers >> assuming the color space and gamma of a buffer (for blending and other >> purposes) and might lead to sub-optimal outcomes. > > Blending only is "correct" with linear light so that property of the > color space is important. However, why does the kernel have to be > involved here? As long as user space knows that for correct blending the > data must represent linear light and knows when in the pipeline blending > happens it can make sure that the data at that point in the pipeline > contains linear light. > The only reason the kernel needs to be involved is to take full advantage of the available HW without requiring KMS clients to be aware of the difference in display HW. Harry > What other purposes are there? > > In general I agree with the others that user space only wants a pipeline > of transformations where the mechanism, the order and ideally the > precision is defined. > >> Harry > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C821FC43460 for ; Fri, 14 May 2021 21:05:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8613361155 for ; Fri, 14 May 2021 21:05:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8613361155 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 278BA6E3D8; Fri, 14 May 2021 21:05:00 +0000 (UTC) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2089.outbound.protection.outlook.com [40.107.236.89]) by gabe.freedesktop.org (Postfix) with ESMTPS id C50516E3D8; Fri, 14 May 2021 21:04:58 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kneMUcdE+X6FIii7jAkmTzvFOnjmia5beWn5XG0Y9Amv1Fk1cJB0JGSbPfU5pyyhYuHQ/+FnBZBiPkG5EdB4XGxAqu4U48RcTaihOqNrvl+QSiTvmIePQsryVEBuKZi71qFXdKuYLy8NM0ma3sWNi1FYFZ/cDszw7u1Z1Y3009LD2/BMGrG6gWUhtZuaH8l/owLR0SJDdL5IenjCvlORoLc6FzA98w/3WSW5VR62lki/kSGZosLzUVyq6e3T5haVd1iI/esCZZ5ERBXr1ZCgA3yR/SoTrr1Swi6P/sX1jcTbZFohO5tRkJBr6kmeICV4KSElLd+g4bdv13puOIhtxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VFun7dYPzbuGjULGPvjXbBcqCHIO5gB9lvOiVQEe04M=; b=jg/6NvFu7McSx7p/gSgs0AVZKX++jzj8Htasw6/mhSkRzr4lBuALrVVxPeEbo47/921vSShrVQtJvexfTIFjc6RFo49U4bAZJIOMb4VPKL+xBr30d+H1Ja8iYT7O3skOFIjc0qiCuhst0BN9EfEXkZw4AX0pD/MA1Tb+P5KB4ZnluqGeAwrMqHAO5k1OMH9SXAXfrezhruoyswveLhpGtMX4zugj0J2usD58r+6RUy/IxxWxZQzrR+xpo9JzOuYkxv55oJtg8UKc1lcPF87CV8v2Gk6hXA5vMbyz2RqXq7B1IY/ach0bGTSxM5bGRBV0HMCSWUlJfEw4BZGv/XVQ9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VFun7dYPzbuGjULGPvjXbBcqCHIO5gB9lvOiVQEe04M=; b=HgsDxDvR4rcCk8ovSfc4kAH7yWFQggRVj9fL6M5HhG9WaCkTTWoiB91nszscrD+Fvv+VXHsX+iS626WZPqVovI3SFuAPqjfqH2qdDGu/onXSItzvtOQP/0ORKTQq1189KZxtBeQHu38DxqiaY3BkUWMS4z5QixiGodVF+5U1nYA= Authentication-Results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; Received: from MW3PR12MB4379.namprd12.prod.outlook.com (2603:10b6:303:5e::11) by MWHPR1201MB0254.namprd12.prod.outlook.com (2603:10b6:301:57::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Fri, 14 May 2021 21:04:56 +0000 Received: from MW3PR12MB4379.namprd12.prod.outlook.com ([fe80::c476:9fdf:664e:4f25]) by MW3PR12MB4379.namprd12.prod.outlook.com ([fe80::c476:9fdf:664e:4f25%4]) with mapi id 15.20.4129.026; Fri, 14 May 2021 21:04:56 +0000 Subject: Re: [RFC PATCH 1/3] drm/color: Add RGB Color encodings To: Sebastian Wick References: <20210426173852.484368-1-harry.wentland@amd.com> <20210426173852.484368-2-harry.wentland@amd.com> <0090ce07-6102-59e7-bc8c-3528297aa5ae@amd.com> From: Harry Wentland Message-ID: Date: Fri, 14 May 2021 17:04:51 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 In-Reply-To: Content-Language: en-US X-Originating-IP: [198.200.67.155] X-ClientProxiedBy: YQBPR01CA0098.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:3::34) To MW3PR12MB4379.namprd12.prod.outlook.com (2603:10b6:303:5e::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.193] (198.200.67.155) by YQBPR01CA0098.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:3::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.30 via Frontend Transport; Fri, 14 May 2021 21:04:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0be6a9eb-8898-4897-f205-08d9171becf9 X-MS-TrafficTypeDiagnostic: MWHPR1201MB0254: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DwPVuFKN7uhBV9pMQBGM6siTs2AiUYeaItrdux6x3UIVSRQU+7oMIxIBCEQPDHZauYg9EZY2r9x3YL/IS8dyHnGJiL5WXfT1leoP6qyPLNOc6L1PpzbLXmTsFAJHHgP6SPrwbZmKVuVyEJQsddSy6+7AD7446t5lj+HLwf0EtxzzpBlf+7zV2rBWCxeRy+yZGa3my27oT9vyyCoSufh24X6wUVUH25sK3KyVz/07YDsi21ykSsc4mrPuhMP5h+67nkAH/Yr8W02T3fskjxe4FiF8pPPOtCO55keOozdi2oGjd5/YToxTT633lkSUoDzPeiuFy8rqkcDKv6xHTplq8PrpFLNKyP/toWExqVP/g4LqTAws0cvcUtc6KzrZSY/XE8d7iRSa53etobtanN/8BmT7zhCyqAYCzuGx51glxR037iPS7IXBVLKAoGdkNMSHZrrXX/U4QA3mUaP1xrLwKZhJ/vxMHbBtc5FLi0ydmZWR4u58flnOqQDB1QUkGMRg7wM+EHFyrI727Fr+FYggnGvNPZ162C1YeHxML0eokfMI1Hf967IwIwxD2dBig4lSa3Elfz5wKQXlfufcvMeuvXlxbHawzF0D9oyF20Z7IJ8Sx2l3Wk84XE5sbhMwhP60XGYQirJkq+lvvw5JaEKVTIEzJ3fEH0Oig1bHJPAX17RDV77yNUCVutkmsGrERjFas+J3BMo9Hy+lo6qmbKvgR3dbU/nY4arcdNmCUtgKrjs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW3PR12MB4379.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(346002)(376002)(396003)(39860400002)(366004)(44832011)(186003)(66946007)(16526019)(66476007)(6486002)(66556008)(66574015)(2906002)(5660300002)(31696002)(8936002)(31686004)(26005)(316002)(8676002)(966005)(478600001)(54906003)(956004)(2616005)(83380400001)(86362001)(53546011)(16576012)(36756003)(4326008)(38100700002)(6916009)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?Sk01bmEyS3FFUXNtZld1VjFpaUErN3VCcHRtQ2VaT2xtWHFqQmEyeDVVMGN5?= =?utf-8?B?eWtrd1VmbU9OYUwvR2FjYnZXSjhneGdQRmFDNGQ3UWdTYXJmMS9jUCtSeGZP?= =?utf-8?B?UENRcGdFTHZyL3RmRHFWQjd5MTVaOTZwS3BQeGJ6QUU1eEExQzhnNTZqUE0v?= =?utf-8?B?MDdiWEFmbGRLL0dZK3pEY3Q5UEFPdHpMTHBYREZFTy8wNVp2Nmo5blZUT0lV?= =?utf-8?B?ZFpvS3ArTlRSa2tqcjZ4NXdtMFhsRW5BYml2cXVySHlBQmpKdVozSkk2MjQ2?= =?utf-8?B?eDhGVGZjVUFyYldpak5Ic0VLNUpGS2l2NHJVWi9uNzd5ZnFxN1YyRVo3RFo3?= =?utf-8?B?RTZTR0JtakpnTjEycmpmNGRsdE1EQWdRcXVjVGJCR3hQeUZBOVN3QTJGU2FI?= =?utf-8?B?WUNwMFVERW84b1NEc0ZCZTlTUUsyRFoxUUF4U1VFdHBKNHRtNmZyZWFKZWs2?= =?utf-8?B?ZFJoa29SYW56MFhST1d1VVRXU2dLQ1IwK2JPeHQzcGdRRzVSOG52TTVuVnBk?= =?utf-8?B?Q291ZFVHdGlTaTkzNGxKLzJ6U1doL0E2S2ZreW9UNUJRVnY3TGdoNEVmOEpO?= =?utf-8?B?d1lubTlPcjRaWCtnWis0Z3AyMXBIVHRib0YvaW9IUGpYbE9kQUduc2xrcHht?= =?utf-8?B?TDdnL1k4MURsajN2dDhHdDRiQXJQMzVZRVVzanJEVjZNRlpYUHdZWVJzM1dB?= =?utf-8?B?MDJGbVBGTXN0YjJBVCtJZFhYTWd0M3JXcDhXTi9RWFQ0ZXozd21KY2huMmFu?= =?utf-8?B?blg2c1F3am5nTWkxMnN4N1U2KzZHRnBHRk41ZjNmbFN4dHhZWERBRzRvL0J0?= =?utf-8?B?Q3BnUjhEM0VJYU1tcFVMNHRIeXNXSWN2TDlmVmY1MkpyNjZvME9RbVdQek5h?= =?utf-8?B?K0JrdDBNRkYzZmlJcmNFN2ZNd3E4NzZrb3BqTTJ2cUZ1ZG5EUG9Ma2VvVnkz?= =?utf-8?B?c3BUYzZSaVVYK3hoRDlIbjVkdFpYNDhjZkIxN296N2llejZldzQyMUlxQVR2?= =?utf-8?B?VmxJakZ2N3d2UmQ0bzFZb2RQU3Y1cjV2ZFlockRQSnQ3SWc2d1Rrd3B3RWlF?= =?utf-8?B?V1ByK2QxdVpuVUtIcnJIcVpuRnVXdFI0VWtpb3pYRk5ZZE5tRU13MVRQazRl?= =?utf-8?B?L2orSDlVdGhDM01VZklLU0NSQzhLcnF1eWFaYWtxZCtUUjFOa2piTEhwcHhy?= =?utf-8?B?b0VieEJIRlhjNWRtR2tsSmdTN01ZUVlFTURuQ2FOMEcxSERWbS9WM2I2RVlP?= =?utf-8?B?TjZmM2o2YWs1Q2ZEaHpQcUZjNzRzbnFyOXFwYnFwWCtnM296VmRhZUFDQUhM?= =?utf-8?B?K3AydVIxaFFvODZJd2htdjNBcFBjMVpHMFZ1dUU4U21BWURiYmhTbFh3L2NM?= =?utf-8?B?RDZpWjVZOCtiZ3phNlNKS3lZeTVKb3dQSGJReUN0VWpMbmdnb2Yzc0xHZlpK?= =?utf-8?B?YVRPTzRscXNyM1Mrbmw0N1o5UW5TUGp3SG1IMDN0S0NVVzcyRWl2MGxWOW1x?= =?utf-8?B?OGJVbnhHaGxpVVdnUkpTb3h3UytNSzdrY25LQlBZMlFPNTl3S0JGWmpQT2Jj?= =?utf-8?B?ZmNBc2VjdnRlUVljRmhmTXk2bmxxc2dzMFM4R3lSVEVMRFpHODBIV1hQZVlk?= =?utf-8?B?YlJ3UXI0UzlrenNxR2I4MXdmM3YyOTVhNXpwWVJ0QkNxWWl2OTZvUzNNbXNj?= =?utf-8?B?Qi81UlMxRXBaYzM2ZGx4ekhrQ0wvT3UzVUpEajZRbU1RUUNDM2Z1ZFJsWlBE?= =?utf-8?Q?ZSKZ+wRqO1KYQ8NqL/el0houo4Pq9x/ppwTWDQt?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0be6a9eb-8898-4897-f205-08d9171becf9 X-MS-Exchange-CrossTenant-AuthSource: MW3PR12MB4379.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2021 21:04:55.9942 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: u8PVBQic9Nz5CpO2UVlniuw19mPTrYUh2HExhZoOCtqQzXyUPy6khfynKmC6+H9BXiFbEVxVkHvX3P0d4/5sLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB0254 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Deepak.Sharma@amd.com, aric.cyr@amd.com, Krunoslav.Kovac@amd.com, mcasas@google.com, Shashank.Sharma@amd.com, dri-devel@lists.freedesktop.org, Shirish.S@amd.com, ppaalanen@gmail.com, Uma Shankar , hersenxs.wu@amd.com, amd-gfx@lists.freedesktop.org, laurentiu.palcu@oss.nxp.com, Bhawanpreet.Lakha@amd.com, Nicholas.Kazlauskas@amd.com, =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Vitaly.Prosyak@amd.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" CgpPbiAyMDIxLTA0LTMwIDg6NTMgcC5tLiwgU2ViYXN0aWFuIFdpY2sgd3JvdGU6Cj4gT24gMjAy MS0wNC0yNiAyMDo1NiwgSGFycnkgV2VudGxhbmQgd3JvdGU6Cj4+IE9uIDIwMjEtMDQtMjYgMjow NyBwLm0uLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+PiBPbiBNb24sIEFwciAyNiwgMjAyMSBh dCAwMTozODo1MFBNIC0wNDAwLCBIYXJyeSBXZW50bGFuZCB3cm90ZToKPj4+PiBGcm9tOiBCaGF3 YW5wcmVldCBMYWtoYSA8Qmhhd2FucHJlZXQuTGFraGFAYW1kLmNvbT4KPj4+Pgo+Pj4+IEFkZCB0 aGUgZm9sbG93aW5nIGNvbG9yIGVuY29kaW5ncwo+Pj4+IC0gUkdCIHZlcnNpb25zIGZvciBCVDYw MSwgQlQ3MDksIEJUMjAyMAo+Pj4+IC0gRENJLVAzOiBVc2VkIGZvciBkaWdpdGFsIG1vdmllcwo+ Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogQmhhd2FucHJlZXQgTGFraGEgPEJoYXdhbnByZWV0Lkxh a2hhQGFtZC5jb20+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogSGFycnkgV2VudGxhbmQgPGhhcnJ5Lndl bnRsYW5kQGFtZC5jb20+Cj4+Pj4gLS0tCj4+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2RybV9jb2xv cl9tZ210LmMgfCA0ICsrKysKPj4+PiDCoCBpbmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5owqDC oMKgwqAgfCA0ICsrKysKPj4+PiDCoCAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQo+ Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMKPj4+PiBpbmRleCBiYjE0ZjQ4OGM4ZjYu LmExODNlYmFlMjk0MSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9y X21nbXQuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jCj4+Pj4g QEAgLTQ2OSw2ICs0NjksMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjb2xvcl9lbmNv ZGluZ19uYW1lW10gPSB7Cj4+Pj4gwqDCoMKgwqDCoCBbRFJNX0NPTE9SX1lDQkNSX0JUNjAxXSA9 ICJJVFUtUiBCVC42MDEgWUNiQ3IiLAo+Pj4+IMKgwqDCoMKgwqAgW0RSTV9DT0xPUl9ZQ0JDUl9C VDcwOV0gPSAiSVRVLVIgQlQuNzA5IFlDYkNyIiwKPj4+PiDCoMKgwqDCoMKgIFtEUk1fQ09MT1Jf WUNCQ1JfQlQyMDIwXSA9ICJJVFUtUiBCVC4yMDIwIFlDYkNyIiwKPj4+PiArwqDCoMKgIFtEUk1f Q09MT1JfUkdCX0JUNjAxXSA9ICJJVFUtUiBCVC42MDEgUkdCIiwKPj4+PiArwqDCoMKgIFtEUk1f Q09MT1JfUkdCX0JUNzA5XSA9ICJJVFUtUiBCVC43MDkgUkdCIiwKPj4+PiArwqDCoMKgIFtEUk1f Q09MT1JfUkdCX0JUMjAyMF0gPSAiSVRVLVIgQlQuMjAyMCBSR0IiLAo+Pj4+ICvCoMKgwqAgW0RS TV9DT0xPUl9QM10gPSAiRENJLVAzIiwKPj4+Cj4+PiBUaGVzZSBhcmUgYSB0b3RhbGx5IGRpZmZl cmVudCB0aGluZyB0aGFuIHRoZSBZQ2JDciBzdHVmZi4KPj4+IFRoZSBZQ2JDciBzdHVmZiBqdXN0 IHNwZWNpZmllcyB0aGUgWUNiQ3I8LT5SR0IgY29udmVyaXNvbiBtYXRyaXgsCj4+PiB3aGVyZWFz IHRoZXNlIGFyZSBJIGd1ZXNzIHN1cHBvc2VkIHRvIHNwZWNpZnkgdGhlIHByaW1hcmllcy93aGl0 ZXBvaW50Pwo+Pj4gQnV0IHdpdGhvdXQgc3BlY2lmeWluZyB3aGF0IHdlJ3JlIGNvbnZlcnRpbmcg KnRvKiB0aGVzZSBtZWFuIGFic29sdXRlbHkKPj4+IG5vdGhpbmcuIEllLiBJIGRvbid0IHRoaW5r IHRoZXkgYmVsb25nIGluIHRoaXMgcHJvcGVydHkuCj4+Pgo+Pgo+PiBJZiB0aGlzIGlzIHRoZSBp bnRlbnRpb24gSSBkb24ndCBzZWUgaXQgZG9jdW1lbnRlZC4KPj4KPj4gSSBtaWdodCBoYXZlIG92 ZXJsb29rZWQgc29tZXRoaW5nIGJ1dCBkbyB3ZSBoYXZlIGEgd2F5IHRvIGV4cGxpY2l0bHkKPj4g c3BlY2lmeSB0b2RheSB3aGF0ICp0byogZm9ybWF0IHRoZSBZQ2JDciBjb2xvciBlbmNvZGluZ3Mg Y29udmVydCBpbnRvPwo+PiBXb3VsZCB0aGF0IGJlIGEgY29tYmluYXRpb24gb2YgdGhlIG91dHB1 dCBjb2xvciBlbmNvZGluZyBzcGVjaWZpZWQgdmlhCj4+IGNvbG9yc3BhY2VfcHJvcGVydHkgYW5k IHRoZSBjb2xvciBzcGFjZSBlbmNvZGVkIGluIHRoZSBwcmltYXJpZXMgYW5kCj4+IHdoaXRlcG9p bnQgb2YgdGhlIGhkcl9vdXRwdXRfbWV0YWRhdGE/Cj4+Cj4+IEZ1bmRhbWVudGFsbHkgSSBkb24n dCBzZWUgaG93IHRoZSB1c2Ugb2YgdGhpcyBwcm9wZXJ0eSBkaWZmZXJzLAo+PiB3aGV0aGVyIHlv dSB0cmFuc2xhdGUgZnJvbSBZQ2JDciBvciBmcm9tIFJHQi4gSW4gZWl0aGVyIGNhc2UgeW91J3Jl Cj4+IGNvbnZlcnRpbmcgZnJvbSB0aGUgZGVmaW5lZCBpbnB1dCBjb2xvciBzcGFjZSBhbmQgcGl4 ZWwgZm9ybWF0IHRvIGFuCj4+IG91dHB1dCBjb2xvciBzcGFjZSBhbmQgcGl4ZWwgZm9ybWF0Lgo+ Pgo+Pj4gVGhlIHByZXZpb3VzIHByb3Bvc2FscyBhcm91bmQgdGhpcyB0b3BpYyBoYXZlIHN1Z2dl c3RlZCBhIG5ldwo+Pj4gcHJvcGVydHkgdG8gc3BlY2lmeSBhIGNvbnZlcnNpb24gbWF0cml4IGVp dGhlciBleHBsaWNpdGx5LCBvcgo+Pj4gdmlhIGEgc2VwYXJhdGUgZW51bSAod2hpY2ggd291bGQg c3BlY2lmeSBib3RoIHRoZSBzcmMgYW5kIGRzdAo+Pj4gY29sb3JzcGFjZXMpLiBJJ3ZlIGFsd2F5 cyBhcmd1ZWQgdGhlIGVudW0gYXBwcm9hY2ggaXMgbmVlZGVkCj4+PiBhbnl3YXkgc2luY2Ugbm90 IGFsbCBoYXJkd2FyZSBoYXMgYSBwcm9ncmFtbWFibGUgbWF0cml4IGZvcgo+Pj4gdGhpcy4gQnV0 IGEgZnVsbHkgcHJvZ3JhbW1hYmxlIG1hdHJpeCBjb3VsZCBiZSBuaWNlIGZvciB0b25lCj4+PiBt YXBwaW5nIHB1cnBvc2VzL2V0Yywgc28gd2UgbWF5IHdhbnQgdG8gbWFrZSBzdXJlIGJvdGggYXJl Cj4+PiBwb3NzaWJsZS4KPj4+Cj4+PiBBcyBmb3IgdGhlIHRyYW5zZmVyIGZ1bmMsIHRoZSBwcm9w b3NhbHMgc28gZmFyIGhhdmUgbW9zdGx5IGp1c3QKPj4+IGJlZW4gdG8gZXhwb3NlIGEgcHJvZ3Jh bW1hYmxlIGRlZ2FtbWEvZ2FtbWEgTFVUcyBmb3IgZWFjaCBwbGFuZS4KPj4+IEJ1dCBjb25zaWRl cmluZyBob3cgcG9vciB0aGUgY3VycmVudCBnYW1tYSB1YXBpIGlzIHdlJ3ZlIHRocm93bgo+Pj4g YXJvdW5kIHNvbWUgaWRlYXMgaG93IHRvIGFsbG93IHRoZSBrZXJuZWwgdG8gcHJvcGVybHkgZXhw b3NlIHRoZQo+Pj4gaHcgY2FwYWJpbGl0aWVzLiBUaGlzIGlzIG9uZSBvZiB0aG9zZSBpZGVhczoK Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5 LUFwcmlsLzIxMjg4Ni5odG1sIEkgdGhpbmsgdGhhdCBiYXNpYyBpZGVhIGNvdWxkIGJlIGFsc28g YmUgZXh0ZW5kZWQgdG8gYWxsb3cgZml4ZWQKPj4+IGN1cnZlcyBpbiBjYXNlIHRoZSBodyBkb2Vz bid0IGhhdmUgYSBmdWxseSBwcm9ncmFtbWFibGUgTFVULiBCdXQKPj4+IGR1bm5vIGlmIHRoYXQn cyByZWxldmFudCBmb3IgeW91ciBody4KPj4+Cj4+Cj4+IFRoZSBwcm9ibGVtIHdpdGggZXhwb3Np bmcgZ2FtbWEsIHdoZXRoZXIgcGVyLXBsYW5lIG9yIHBlci1jcnRjLCBpcwo+PiB0aGF0IGl0IGlz IGhhcmQgdG8gZGVmaW5lIGFuIEFQSSB0aGF0IHdvcmtzIGZvciBhbGwgdGhlIEhXIG91dCB0aGVy ZS4KPj4gVGhlIGNhcGFiaWxpdGllcyBmb3IgZGlmZmVyZW50IEhXIGRpZmZlciBhIGxvdCwgbm90 IGp1c3QgYmV0d2Vlbgo+PiB2ZW5kb3JzIGJ1dCBhbHNvIGJldHdlZW4gZ2VuZXJhdGlvbnMgb2Yg YSB2ZW5kb3IncyBIVy4KPiAKPiBJbnRyb2R1Y2luZyBhbm90aGVyIEFQSSBpZiBoYXJkd2FyZSBp cyBzdWZmaWNpZW50bHkgZGlmZmVyZW50IGRvZXNuJ3QKPiBzZWVtIGxpa2UgdGhlIHdvcnN0IGlk ZWEuIEF0IGxlYXN0IGl0IHNvdW5kcyBhIGxvdCBtb3JlIHRyYWN0YWJsZSB0aGFuCj4gdGVhY2hp bmcgdGhlIGtlcm5lbCBhYm91dCBhbGwgdGhlIGRpZmZlcmVudCB1c2UgY2FzZXMsIG9waW5pb25z IGFuZAo+IG51YW5jZXMgdGhhdCBhcmlzZSBmcm9tIGNvbG9yIG1hbmFnZW1lbnQuCj4gCj4gSW4g dGhlIGVuZCBnZW5lcmljIHVzZXIgc3BhY2UgbXVzdCBhbHdheXMgYmUgYWJsZSB0byBmYWxsIGJh Y2sgdG8KPiBzb2Z0d2FyZSBzbyB0aGUgd29yc3QgY2FzZSBpcyB0aGF0IGl0IHdvbid0IGJlIGFi bGUgdG8gb2ZmbG9hZCBhbgo+IG9wZXJhdGlvbiBpZiBpdCBkb2Vzbid0IGtub3cgYWJvdXQgYSBu ZXcgQVBJLgo+IAo+PiBBbm90aGVyIHJlYXNvbiBJJ20gcHJvcG9zaW5nIHRvIGRlZmluZSB0aGUg Y29sb3Igc3BhY2UgKGFuZCBnYW1tYSkgb2YKPj4gYSBwbGFuZSBpcyB0byBtYWtlIHRoaXMgZXhw bGljaXQuIFVwIHVudGlsIHRoZSBjb2xvciBzcGFjZSBhbmQgZ2FtbWEKPj4gb2YgYSBwbGFuZSBv ciBmcmFtZWJ1ZmZlciBhcmUgbm90IHdlbGwgZGVmaW5lZCwgd2hpY2ggbGVhZHMgdG8gZHJpdmVy cwo+PiBhc3N1bWluZyB0aGUgY29sb3Igc3BhY2UgYW5kIGdhbW1hIG9mIGEgYnVmZmVyIChmb3Ig YmxlbmRpbmcgYW5kIG90aGVyCj4+IHB1cnBvc2VzKSBhbmQgbWlnaHQgbGVhZCB0byBzdWItb3B0 aW1hbCBvdXRjb21lcy4KPiAKPiBCbGVuZGluZyBvbmx5IGlzICJjb3JyZWN0IiB3aXRoIGxpbmVh ciBsaWdodCBzbyB0aGF0IHByb3BlcnR5IG9mIHRoZQo+IGNvbG9yIHNwYWNlIGlzIGltcG9ydGFu dC4gSG93ZXZlciwgd2h5IGRvZXMgdGhlIGtlcm5lbCBoYXZlIHRvIGJlCj4gaW52b2x2ZWQgaGVy ZT8gQXMgbG9uZyBhcyB1c2VyIHNwYWNlIGtub3dzIHRoYXQgZm9yIGNvcnJlY3QgYmxlbmRpbmcg dGhlCj4gZGF0YSBtdXN0IHJlcHJlc2VudCBsaW5lYXIgbGlnaHQgYW5kIGtub3dzIHdoZW4gaW4g dGhlIHBpcGVsaW5lIGJsZW5kaW5nCj4gaGFwcGVucyBpdCBjYW4gbWFrZSBzdXJlIHRoYXQgdGhl IGRhdGEgYXQgdGhhdCBwb2ludCBpbiB0aGUgcGlwZWxpbmUKPiBjb250YWlucyBsaW5lYXIgbGln aHQuCj4gCgpUaGUgb25seSByZWFzb24gdGhlIGtlcm5lbCBuZWVkcyB0byBiZSBpbnZvbHZlZCBp cyB0byB0YWtlIGZ1bGwgYWR2YW50YWdlCm9mIHRoZSBhdmFpbGFibGUgSFcgd2l0aG91dCByZXF1 aXJpbmcgS01TIGNsaWVudHMgdG8gYmUgYXdhcmUgb2YKdGhlIGRpZmZlcmVuY2UgaW4gZGlzcGxh eSBIVy4KCkhhcnJ5Cgo+IFdoYXQgb3RoZXIgcHVycG9zZXMgYXJlIHRoZXJlPwo+IAo+IEluIGdl bmVyYWwgSSBhZ3JlZSB3aXRoIHRoZSBvdGhlcnMgdGhhdCB1c2VyIHNwYWNlIG9ubHkgd2FudHMg YSBwaXBlbGluZQo+IG9mIHRyYW5zZm9ybWF0aW9ucyB3aGVyZSB0aGUgbWVjaGFuaXNtLCB0aGUg b3JkZXIgYW5kIGlkZWFsbHkgdGhlCj4gcHJlY2lzaW9uIGlzIGRlZmluZWQuCj4gCj4+IEhhcnJ5 Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQt Z2Z4IG1haWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4PgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcg bGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK