PanCSF: یک درایور DRM جدید برای پردازندههای گرافیکی مبتنی بر CSF مالی
چند روز قبل Collabora راه اندازی را ارائه کرد کنترل کننده PanCSF DRM (مدیر رندر مستقیم)، که در سطح هسته لینوکس کار می کند.
کنترل کننده PanCSF DRM برای استفاده با GPU Mali طراحی شده است (G710+) از نسل دهم که از فناوری CSF (Command Stream Frontend) استفاده می کند که برخی از عملکردهای درایور را در کنار سیستم عامل برای کاهش بار روی CPU آورده و مدل جدیدی برای سازماندهی کار بر روی GPU ارائه می دهد.
طبق سرنوشت، درایور جدید DRM برای پردازندههای گرافیکی اخیر مالی در اوایل این ماه رونمایی شد. این در دنیای زیرسیستم DRM کمی عجیب است، جایی که پشتیبانی از سخت افزار جدید معمولاً به درایورهای GPU اضافه می شود که از نسل های قدیمی سخت افزار پشتیبانی می کنند.
درباره درایور PanCSF DRM
در ابتدا ، تلاش کرد تا از GPU های مالی مبتنی بر CSF پشتیبانی کند در درایور Panfrost، اما توسعه دهندگان به این نتیجه رسیدند که این امر منجر به پیچیدگی بزرگ درایور موجود می شود و برای CSF بهینه تر است که یک درایور جدید ایجاد شده با معماری متفاوت ایجاد کند.
درایور جدید PanCSF برای آزمایش پیشنهاد شده است یک uAPI کاملاً جدید را پیاده سازی می کند، یک منطق زمانبندی کار جدید و یک منطق کنترل جدید MMU/GPU-VA. کد Panfrost موجود به عنوان مبنایی برای درایور جدید استفاده می شود.
و این است که در نسل جدید GPU مالی، برنامه زمانبندی Job Manager با رابط CSF جایگزین شد (Command Stream Frontend)، که از یک مدل مبتنی بر جریان فرمان با زمانبندی صف جریان فرمان در سمت سیستمافزار به جای مدل مبتنی بر جریان کار استفاده میکند.
ما توضیح مفصلی در مورد نحوه عملکرد CSF ارائه نمی دهیم، اما شایان ذکر است که رابط CSF دارای یک مجموعه دستورالعمل اختصاصی و دسته ای از ثبات ها برای ارسال داده یا حفظ وضعیت داخلی است. دستورالعملهایی برای ارسال مشاغل (محاسبات، موزاییک، و کارهای تکهای) و موارد دیگر برای انجام کارهای بیاهمیتتر، مانند حافظه خواندن/نوشتن، صبر کردن برای تکمیل کار، منتظر ماندن برای حصارها، پرش/شاخه کردن وجود دارد.
ذکر شده است که برای سازماندهی کار برنامه نویس، یک میکروکنترلر Cortex-M7 یکپارچه شده است جداگانه بر روی GPU و یک واحد اجرای فرمان ویژه برای اجرای دستورالعمل های CSF ارائه شده است. چنین ویژگی هایی نیاز به سازماندهی اساساً متفاوتی برای انتقال کار به GPU از فضای کاربر دارد.
کنترل کننده PanCSF الگوهای اولیه سازی معمولی کنترلر را قرض می گیرد، مدیریت فرکانس و مدیریت توان، که احتمالاً با انتقال برخی از ویژگیهای مدیریت انرژی در پردازندههای گرافیکی جدید Mali به سیستم عامل تغییر خواهد کرد.
اگر CSF صرفاً به دنبال دور شدن از یک رویکرد ارسال شغل مبتنی بر توصیف بود، میتوانستیم با حداقل تعداد تغییرات هسته از بین بریم و پشتیبانی CSF از درایور هسته موجود را متوقف کنیم.
شایان ذکر است که برای کسانی که با API های گرافیکی آشنایی ندارند، لازم به یادآوری است که Vulkan سعی می کند با شفاف کردن بیشتر مدیریت خط لوله گرافیکی، کنترل را به کاربر بازگرداند، در حالی که OpenGL سعی می کند چیزهایی را برای کاربران خود پنهان کند تا زندگی آنها را بسازد. آسان تر.
در پایان ذکر شده است که توسعه دهندگان آینده توجه داشته باشید که این RFC، در حالی که حداقل تا حدی کاربردی است (تاکنون فقط روی بار کاری GLES2 آزمایش شده است)، هنوز آماده نیست و ذکر کنید که مواردی وجود دارد که باید مورد توجه قرار گیرد: مانند تلاش برای استفاده از drm_sched به جای پیادهسازی زمانبندی مبتنی بر اشتراکگذاری زمانی، داشتن یک مکانیسم تخلیه شی بافر مناسب برای رسیدگی به شرایطی که سیستم تحت فشار حافظه است.
علاوه بر این ذکر شده است که پشتیبانی از مدیریت توان در حال حاضر وجود ندارد، مقیاسبندی فرکانس دستگاه و احتمالاً سایر ویژگیهای مفید مانند شمارندههای عملکرد، اما اجرای آنها در مقایسه با برنامهنویسی و منطق مدیریت حافظه باید نسبتاً آسان باشد.
آخرین موضوع ولی به همان اهمیت، انتظار می رود تغییرات به زودی منتشر شود برای استفاده از درایور جدید روی میز.
اگر هستی علاقه مند به دانستن بیشتر در مورد آن، شما می توانید جزئیات را بررسی کنید در لینک زیر.
اولین کسی باشید که نظر