From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 979C849B3B for ; Sun, 3 Mar 2024 18:41:23 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BEA4068D3C2; Sun, 3 Mar 2024 20:41:16 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2069.outbound.protection.outlook.com [40.92.74.69]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5D98C68D3BA for ; Sun, 3 Mar 2024 20:41:10 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GFS7Tatl8PmvIo3HloLPW9yAXWJVRtQ3eEmVKYYMmXMYSC9Ib2tvcwDXcpTRcyP1kXjq2+awszbGOjdjCcm5Jy6ibGf8wnmrPNYrjDz/jBR35qOW4BYB8LUNhqbbMKi3yB7dYrovIHoyAG1PJ4jZH3uWfqqKrtaY3hdIMK0KW8xSmNPO8ET7IOyWQRcmVyHYggxSXUMDBgydqP2ebzY1pNZo81gFJvfrfzeUnPqSdF6Eu+57/wPwlk0AcDhZ6vrv0r6Xzkdm3eq5mmqcXYtUOuksqcLvBq8ZPg3UoUykd7QN4RCPK9HApThv0iWvuuS6+p85JaHFyBIOHiwRDCx1+w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7/QU8eIiiOQpb91onkDUQ7ZPtnWkTRdZ7lC3XXjounw=; b=L/WCpUXqwJ9TcEjJLgP1h6SMSvdTW6yx0gmgoRcf8lfY4+G+ToOVtyIw7E8Xyq1STCXIdxIW2guy138yA7fW6a1jvkkX613qU2Y584I20zBpBgnBMSI/E8uBvHu1OIFcsyr7tTBe3KwAxN0pVZTJSyXIUTQ5VOPh6AIHlVOvxaQ/LqGbfNnn+KIvGFrE+gcUIwRZ/O3FhCVWa0bnVrvsq6JOMqxTzaStXAYZLFHkhfMBAUifoKpLp9FXc9ct9bGBS5eTCTH6NWA1WXYT4322/XglWtBwn17EsnHM6m4pmrklzt0SDzv9XzA3kiUWeWWlVup3Qd6qXNZqGuNpAxGAyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7/QU8eIiiOQpb91onkDUQ7ZPtnWkTRdZ7lC3XXjounw=; b=slxeuTboSdJ7XjEXBuhQzkq3PUuYDFlaRnJsUouLeI4VxJQnDvHoeccYI1iORg9vqWsKsaORw+VnugvMP3bTv3OvHHUPGOn3ACKBGSXlr440mFLzR6DotyqbVC/iiqjFh3b686dFPu5IwaJM21I19MEyKN9OtWcmAvdEoa0ux0r+DWCrVI3p8c6JGlBkAStchVYAHgkh2ThPOTAYeXOMq/xMMjKC6uijG3Jd+P9z8QR+bg3EBz9rZ5Blqj46o+2yb6RyzcKdrU013TsSl5YpJnUPXiB5EtVYwCiPtQUiO52Cq7bSOr3F4QJqrLCxyrdo7/m5HjSHNhPRuMiC0Ohkww== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PRAP250MB0538.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:295::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.37; Sun, 3 Mar 2024 18:41:04 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7316.023; Sun, 3 Mar 2024 18:41:04 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 3 Mar 2024 19:42:46 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [+6se2w2xmIS/RZAAJ3JnjSgo9rb7lIHSfs6ViJcWwu8=] X-ClientProxiedBy: ZR2P278CA0066.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::20) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240303184250.541590-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PRAP250MB0538:EE_ X-MS-Office365-Filtering-Correlation-Id: e06e66ed-5d90-4735-3e6e-08dc3bb17b03 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnqnx/C+6DC/TIciLJ1/n0Vp9OyQnCkjKBIU7ouvlD833GxeaKo0AnJLKG24nqEYd0ZccQSGUh4xjd5f4kmopQ651bFMGLQfbc+VolUsCEWfa0z4GddIasRezMbNyD0jaWF9jFLaqB62HwxgS5M4GV685k5UM6EsM5RNtSboCNnWSfp7u6iokmoHb2wgDPG/i2dDTxP1LpCMQhY6qwag5/EB8zwZnLyfZL/N884TXvmmwzjSoQgjy2l66T/kt4ljQMWYwA0P2naJ8RiWgewwHL7dGvAk8eSpJMUflouhXOdslU3qXOpla4hsA4kwm4X7cI8I0eQBeYk+N7LdItx8S/wQqPOLMJt/6JwM6dIkcx3nCfux0bswXOVsGaXupcWaimgoE+R480YSa1LpedYI9YsAGCeXJ/w7fn1OvBl7YAwQyn3ZZdIU03BvjDQeFX1zQPxqa4rG04IJnjqZHqE76cu0QxE4I96bugaLvTWFk2kmBRlFbDEeS72Vu4wXQc+luxx9jX1ZXy1YahUAgwfru84UkT11Nauzs5eGLjgSvppdT7fCHUernJ20TZcOXGj3nSOAT+lDhDuQg960lB2hndRvLKEYgL2pTmSIEWRvO3erig07XGauqv4ZirCqddpVvJpgyXCTCkChDTNWTXVYdwaUGkOmr5/ab8c5/HgKsYzHGG2pWsG07gUyBI7QBiPCgKIFjP2lmN5EZNZVUFSTsgOVJyoeoc7UepZMgXLJShNFwOxduoBDVv4FpZBcsCKuqYw= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TZ5zVGP2JGamKS9Dfx+10bht/vCVXua1NuZA4By/W5c+P7jAIbF45xTZ5W5Pz/iX9Cv4SppfM7Sqvail4Ww4drS1Wg/+Pr7GTXtOk+vM7VajtquR8xkRchkZuY4h9JLl+as2HNveRQROoseVpLmkp9MhZYA7jQrVGLV7w2s4gr0bvIt+zsvuoaIHSNqEx7E0RNlQwN+aPF1+9u+FQhD7pzPZ2iKAGrc8SR01/LwxHUtgauF673+6QMzZO2IrevVnVEiebCnRZ6zxkLIOJafvcugLkrDzxh4ygULpFjeWn9G8oULTXQKNB+5kX39h/F3Jv6Ovk8Xj21HmeG3MJSxBoNIUdK2NkZ++d8+RvOmFNWLbbYs+dB3a4Wvmg5uovV6M+xAamMKiWOv5TNhC8wtyiXBWYfS/PJfdqZN9lHCVsga9T/YqBYKH4T4TQGqOxKKDRXJhhcD0ZpAHmmD11qpTHPJXD+XVjMuu5zgVaPfYU2dHcMmY5AvhVKEbLwk77PrkHD8Vm9denmCGGaUNghYmoobH7wxxoIm95pCN0k0fJy40qY9jp5I0G4WfHxNTf8fSHhP1BnkZwLsoztMurBRElbwas4R+sxpUhSWnlhYqd9c= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Qkg3cHTDGOvQXEtDYSaV6yN+wy58kBbnm93VqYbcMhbC708cYr22N8qa+teP?= =?us-ascii?Q?JWNmvgZyUHL1xY3MK01yNhdLy95yd8IL7X4F+xwIhsSSOfIOOF4b0EoxAhNb?= =?us-ascii?Q?qqzfVx2KGuPzSNhnHcIMgWCHKAP0JbkwM5h8suOOcbqdl2PHzC1G85ADlwP8?= =?us-ascii?Q?hpTuMZiJi90VE49i4Yu4jGlH2CTHfeps4okhuV1vW9Bpp5Dj/zLL1VqfEIA9?= =?us-ascii?Q?8DpIzBigwL/FXG6KxdY1NuObZgm0eISjNUNAFE2nuHHZdMMvZ+v/0y/QrsNK?= =?us-ascii?Q?de5+FrGXC1eKk6/EaO8Ryy1rtmoctDpRqs6xy3Bgte3EviTn1p8tlDYEzcyQ?= =?us-ascii?Q?EnksX8isF4NE6BPKVsTVRC+CRiY3rNggXDtOU/WgWzqXPp5kuqaOBil7cTmB?= =?us-ascii?Q?xNrXNNnmnGoYQcn7+B+bGyokyLVx2IsC+ETafE9JMD5XNaWXeCV8KrzKY2jF?= =?us-ascii?Q?yQf/ihuJI+9GO4zsI/lm01hdl+qB9M/Cis5z7hB5WF/YfTS0DjtuPSSJyCuc?= =?us-ascii?Q?WQlqwdFpz3rD3GQuahN/qPq7vSbtv2AjKdzrxZvunMiFGZYSw6NHcuyFYT2q?= =?us-ascii?Q?WdQ1Z8K7PE2+EtYvwDePnEl8E4s23Mq96opfdNcwOv/99Kk40evUyTRwXMxW?= =?us-ascii?Q?STPTX2esC90DasusHlaWHb5gl22NwH78G4KpfpTJ62n4n7cbqfmI/Bt/e/PP?= =?us-ascii?Q?BS5rR9UyAhJI8W5KhBCJPLx/HWGxo92yEoqijmMjkSq6uKCFFoBGdsMirXBC?= =?us-ascii?Q?YDiOtCw9hQPPZPMkls2GZS4tnbEP38hSAGkMj5FuYTwqpXeDWNQj1pV2xZKE?= =?us-ascii?Q?HG2FwvxxvEqIJcYTXzZmwE1vjYSxY5bLmg1yscOnok441gpaNFp7r5UA9JsP?= =?us-ascii?Q?7WzR7jrEXJF088sUW5utzofVNTDW9pqLr/BTOenQKieJxpqGNUKElBM0NEID?= =?us-ascii?Q?/aernRLlVWk0oALGI2rPW8PbksFmbcBc5Spd0vb1ViSk1vVe2Ef6lihdHKWJ?= =?us-ascii?Q?xlAmysZpxSec/2KNmmCt9t+/NT6BM8rOTInl9xXdNtEftyamOCr/sgSl30BL?= =?us-ascii?Q?YPoq0nApd0t4CbhMTBEAV/IJXhZJBJkcDtyOl4ckYmJl8LMOaf1dADE75hHm?= =?us-ascii?Q?R0glg9wZgNEaHtFfe19/tkF/E1o5s3+Zd4ObprTRmTtDItxQ2hYOQuVrDCwV?= =?us-ascii?Q?/rXZiul8P2EazfcmaFnidPiEMUvFSzd3ntP+h0CYaCv/uW5MEilzYWX25lU4?= =?us-ascii?Q?88wHyp5nvdgIM8sgxATr7XFy3YFAO9LhcEGwsAvx0g=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e06e66ed-5d90-4735-3e6e-08dc3bb17b03 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2024 18:41:04.0579 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PRAP250MB0538 Subject: [FFmpeg-devel] [PATCH 4/8] avutil/vulkan_loader: Avoid relocations for strings X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: To do so, concatenate all the names together to one big string name1\0name2\0....lastname\0\0. This avoids the pointer in the FunctionLoadInfo structure and thereby moves vk_load_info into .rodata (and makes it smaller by 888B). Signed-off-by: Andreas Rheinhardt --- libavutil/vulkan_loader.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libavutil/vulkan_loader.h b/libavutil/vulkan_loader.h index 37ce339e1d..f9e739e1e3 100644 --- a/libavutil/vulkan_loader.h +++ b/libavutil/vulkan_loader.h @@ -31,7 +31,6 @@ req_dev, \ offsetof(FFVulkanFunctions, name), \ ext_flag, \ - "vk"#name, \ }, static inline uint64_t ff_vk_extensions_to_mask(const char * const *extensions, @@ -101,18 +100,26 @@ static inline int ff_vk_load_functions(AVHWDeviceContext *ctx, char req_dev; uint16_t struct_offset; FFVulkanExtensions ext_flag; - const char *name; } vk_load_info[] = { FN_LIST(PFN_LOAD_INFO) #ifdef _WIN32 FN_LIST_WIN32(PFN_LOAD_INFO) #endif }; + // Concatenate the names to avoid relocations. The resulting string + // will end with \0\0 +#define FUNC_NAME(req_inst, req_dev, ext_flag, name) "vk"#name"\0" + const char *name = + FN_LIST(FUNC_NAME) +#ifdef _WIN32 + FN_LIST_WIN32(FUNC_NAME) +#endif + ; +#undef FUNC_NAME - for (int i = 0; i < FF_ARRAY_ELEMS(vk_load_info); i++) { + for (int i = 0; i < FF_ARRAY_ELEMS(vk_load_info); name += strlen(name) + 1, i++) { const struct FunctionLoadInfo *load = &vk_load_info[i]; static const char extensions[][4] = { "", "EXT", "KHR" }; - const char *name = load->name; PFN_vkVoidFunction fn; if (load->req_dev && !has_dev) @@ -146,6 +153,7 @@ static inline int ff_vk_load_functions(AVHWDeviceContext *ctx, *(PFN_vkVoidFunction *)((uint8_t *)vk + load->struct_offset) = fn; } + av_assert1(*name == '\0'); return 0; } -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".