مدیر رندرینگ مستقیم

در رایانش، مدیر رندرینگ مستقیم   یک زیر سیستم از هسته لینوکس است که یک واسط با کارت گرافیک‌های امروزی است.
DRM یک API فضای کاربر ایجاد می‌کند تا بتوان اطلاعات و دستورها را به کارت گرافیک ارسال کرد و عملکردهای از جمله پیکربندی تنظیمات صفحه نمایش را انجام داد.
DRM اولین توسعه فضای هسته Xسرور بود. اما پس از آن از پشته گرافیک جایگزینی مانند Wayland استفاده کردند.

برنامه‌های فضای کاربری از APIهای DRM برای فرمان دادن به کارت گرافیک استفاده می‌کنند تا دستورها سخت‌افزاری سه بعدی رندر، کدگشایی ویدئویی و محاسبات GPGPU را انجام دهد.

کاربر برنامه‌های فضایی می‌تواند با استفاده از DRM API به فرمان GPU برای انجام سخت‌افزاری 3D رندر و رمز گشایی ویدئویی و همچنین محاسبات GPGPU.

بررسی اجمالی 
هسته لینوکس قبلاً فقط یک api به نام fbdev داشت؛ که برای مدیریت بافر فریم در یک تبدیل گرافیک استفاده می‌شود. اما برای شتاب دهنده‌های گرافیکی سه بعدی کارت گرافیک‌های جدید نمی‌توانند نیازها را بر طرف کند. این نوع کارت گرافیک‌ها معمولاً نیازمند یک صف مدیریت دستورها در حافظه رم گرافیک هستند تا دستورها را از حافظه به کارت گرافیک اعزام کنند. همچنین به یک مدیریت مناسب نیاز برای بافر و آزاد سازی حافظه اختصاص داده نیازمند است.

در ابتدا برنامه‌های فضای کاربری خودشان مستقیم منابع را مدیریت می‌کردند اما این برنامه‌ها معمولاً وقتی اجرا می‌شوند که در آن واحد فقط یکی از آنها بخواهد به منابع کارت دسترسی داشته باشد. وقتی دو یا بیشتر برنامه بخواهند در یک زمان یک کارت گرافیک را کنترل کنند. یک فاجعه را منتهی می‌شود.

وقتی اولین مدیریت مستقیم رندر ساخته شد. هدف این بود که چندین برنامه بتواند از منابع کارت ویدئو استفاده کنند.

DRM یک دسترسی انحصاری به کارت گرافیک می‌گیرد. همچنین مسئول آغاز و نگهدارندگی دستورها در صف، VRAM و سایر منابع سخت‌افزاری است.
می‌شود منحصر به فرد دسترسی به کارت ویدئو و آن را مسئول راه اندازی و حفظ فرماندهی صف VRAM و سایر منابع سخت‌افزاری. برنامه‌هایی که می‌خواهند از کارت گرافیک استفاده کنند درخواست خود را برای DRM ارسال می‌کنند و DRM به عنوان یک داور عمل می‌کند و همچنین از تداخل‌های ممکن جلوگیری می‌کند.

معماری نرم‌افزار 

یک کتابخانه به نام libdrm به منظور تسهیل در رابط فضای کار برنامه‌ها با زیر سیستم DRM ساخته شد. این کتاب‌خانه صرفاً یک لفاف بسته‌بندی است که توابع آن در زبان سی نوشته شده است. استفاده از کتابخانه libdrm یک رابط مستقیم با کاربر، استفاده مجدد، اشتراک گذاری کد بین برنامه‌ای را سبب می‌شود. 
DRM شامل دو بخش است: هسته عمومی DRM
و درایور اختصاصی DRM

هسته DRM یک فریم ورک پایه را فراهم می‌کند که درایوهای DRMهای مختلف می‌توانند ثبت شوند و همچنین یک فضای کاربر از حداقل مجموعه رایج ioctls را فراهم می‌کند.
DRM هسته‌ای را فراهم می‌کند چارچوب اساسی که در. یک درایور DRM به عبارت دیگر بخشی از api وابستگی سخت‌افزار را پیاده‌سازی می‌کند.

منابع 

زیرساخت‌های رندرینگ مستقیم
ویژگی‌های کرنل لینوکس