লিনাক্স থেকে উইন্ডোজে এএমডি-র RADV ড্রাইভার পোর্ট করার চ্যালেঞ্জ

সর্বশেষ আপডেট: এক্সএনএমএক্স আগস্ট এক্সএনএমএক্স
লেখক: Alexandra
  • প্রোপাইটারি ড্রাইভারের বিকল্প হিসেবে ওপেন-সোর্স RADV ড্রাইভারটিকে উইন্ডোজে পোর্ট করার জন্য Valve এবং Collabora কাজ করছে।
  • প্রকল্পটি এএমডি-র কার্নেল-মোড ড্রাইভারের সাথে যোগাযোগের জন্য WDDM2 ইন্টারফেসের রিভার্স ইঞ্জিনিয়ারিংয়ের উপর ভিত্তি করে তৈরি।
  • কাউন্টার-স্ট্রাইক ২ চালু করার মতো গুরুত্বপূর্ণ মাইলফলক অর্জিত হয়েছে, যদিও এএমডি-র পক্ষ থেকে আনুষ্ঠানিক নথিপত্রের অভাব একটি প্রতিবন্ধকতা।
  • এই উদ্যোগটির লক্ষ্য হলো উইন্ডোজের অধীনে এএমডি জিপিইউ-এর স্থিতিশীলতা, ডিবাগিং এবং পারফরম্যান্স উন্নত করা।

লিনাক্স এবং উইন্ডোজ লোগোকে সংযোগকারী একটি ডিজিটাল সেতুর ধারণাগত উপস্থাপনা, যেখানে একটি উজ্জ্বল জিপিইউ চিপ RADV ড্রাইভার পোর্টের প্রতীক হিসেবে কাজ করছে।

আপনি সম্ভবত শুনেছেন যে লিনাক্স হলো মুক্ত সফটওয়্যার প্রেমীদের জন্য একটি স্বর্গ, এবং এএমডি গ্রাফিক্সের জগতে RADV ড্রাইভারের রাজত্ব চলে। মেসা-তে সমন্বিত এই ভলকান ড্রাইভারটি স্টিম ডেক বা যেকোনো লিনাক্স ডিস্ট্রিবিউশনের গেমারদের জন্য একটি মানদণ্ডে পরিণত হয়েছে, যা এমনকি কোম্পানির নিজস্ব অফিশিয়াল বিকল্পগুলোকেও ছাড়িয়ে গেছে। কিন্তু কেমন হতো যদি আমরা উইন্ডোজেও সেই একই ক্ষমতা এবং স্বচ্ছতা পেতাম? হ্যাঁ, একদল অত্যন্ত উদ্যমী মানুষ ঠিক এটাই করার চেষ্টা করছেন।

উদ্দেশ্যটি আমাদের কাছে থাকা ড্রাইভারগুলোকে বাতিল করা নয়, বরং একটি বিকল্প প্রস্তাব করা। ভালভ, যা ওপেন সোর্সকে ক্রমাগত উৎসাহিত করে চলেছে, কোলাবোরার বিশেষজ্ঞদের মাইক্রোসফটের সিস্টেমে RADV পোর্ট করার প্রচেষ্টার জন্য অর্থায়ন করেছে। যদিও এটিকে একটি অসম্ভব মিশন বলে মনে হতে পারে, তারা ইতিমধ্যেই কাউন্টার-স্ট্রাইক ২-এর মতো গেম চালু করতে সক্ষম হয়েছে , যা প্রমাণ করে যে এই পথটি চ্যালেঞ্জিং হলেও, প্রয়োজনীয় ধৈর্য থাকলে তা সম্পূর্ণরূপে সম্ভব।

উইন্ডোজ ১১-এ গ্রাফিক্সের সমস্যা
সম্পর্কিত নিবন্ধ:
উইন্ডোজ ১১-এ গ্রাফিক্সের সমস্যা: ত্রুটি, প্যাচ এবং সেগুলি আপনাকে কীভাবে প্রভাবিত করে

প্রযুক্তিগতভাবে এই পোর্টটি কী নিয়ে গঠিত?

একটি বিস্তারিত ও আলোকিত এএমডি রেডিয়ন গ্রাফিক্স কার্ডের ক্লোজ-আপ ছবি, যা RADV ড্রাইভারের মূল হার্ডওয়্যার।

বিষয়টি বোঝার জন্য এটা জানা জরুরি যে, একটি ড্রাইভার দুটি ভাগে বিভক্ত: ইউজার মোড (UMD), যেখানে RADV থাকে, এবং কার্নেল মোড (KMD), যা সরাসরি হার্ডওয়্যারের সাথে যোগাযোগ করে। উইন্ডোজে, মাইক্রোসফট WDDM2 নামক একটি ইন্টারফেস ব্যবহার করে। মূল পার্থক্যটি হলো, উইন্ডোজ ১০ থেকে এই ইন্টারফেসটি থার্ড-পার্টি ড্রাইভারগুলোকে আগের চেয়ে আরও নমনীয়ভাবে কার্নেলের সাথে কাজ করার সুযোগ দেয় ।

সমস্যাটি হলো, এএমডি তাদের গোপনীয় বিষয়গুলো অত্যন্ত সুরক্ষিত রাখে। RADV-কে কাজ করার জন্য এএমডি কার্নেলে ডেটা পাঠাতে হয়, কিন্তু সেই ডেটা অস্বচ্ছ "ব্লব" দিয়ে গঠিত এবং এর কোনো ডকুমেন্টেশন নেই। এই সমস্যা সমাধানের জন্য ফেইথ একস্ট্র্যান্ড wddm2-pdd-re নামে একটি টুল তৈরি করেন, যা সিস্টেম কলগুলো লগিং এবং বিশ্লেষণ করতে সক্ষম । এই রিভার্স ইঞ্জিনিয়ারিংয়ের কল্যাণে, তারা মেমরি অনুরোধ করার পদ্ধতি, ওয়ার্ক কিউ তৈরি করার প্রক্রিয়া এবং পরিশেষে, স্ক্রিনে বিভিন্ন জিনিস আঁকার পদ্ধতি উদ্ঘাটন করতে সক্ষম হন।

পথের বাধা: হার্ডওয়্যার এবং কম্পাইলার

স্ক্রিনে প্রোগ্রামিং কোডের বিস্তারিত দৃশ্য, যা রিভার্স ইঞ্জিনিয়ারিং এবং ড্রাইভার ডেভেলপমেন্টের প্রতিনিধিত্ব করে।

সবকিছু সবসময় মসৃণ ছিল না। ডেভেলপাররা বুঝতে পেরেছিলেন যে সব জিপিইউ একরকম হয় না; উদাহরণস্বরূপ, একটি RX 7800 XT থেকে RX 7900 XT-তে আপগ্রেড করার ফলে সিস্টেমটি ক্রমাগত ক্র্যাশ করতে শুরু করে। এর ফলে তারা তাদের ডিবাগিং টুলগুলো উন্নত করতে বাধ্য হন এবং কমান্ড ফ্লো ঠিক কোথায় ভেঙে পড়ছিল তা নির্ভুলভাবে চিহ্নিত করার জন্য আরও অনেক বেশি শক্তিশালী একটি WDDM2 লগিং লেয়ার তৈরি করেন।

তাছাড়া, কম্পাইলার নিয়ে কাজ করাটা একটা বিরাট ঝামেলার ব্যাপার। মেসা জিসিসি (GCC) এবং ক্ল্যাং (Clang)-এর জন্য ডিজাইন করা হলেও, উইন্ডোজে এমএসভিসি (MSVC)-ই প্রধান কম্পাইলার। দেখা যায় যে, এমএসভিসি এনুমেটরগুলোকে ভিন্নভাবে পরিচালনা করে , কখনও কখনও সেগুলোকে সাইনড ভ্যালু (signed values) হিসেবে গণ্য করে, যার ফলে এমন খামখেয়ালি আচরণ দেখা যায় যা যেকোনো প্রোগ্রামারকে পাগল করে দিতে পারে।

মূল প্রতিবন্ধকতা: এএমডি-র অস্বচ্ছতা

যদি আমরা চাই যে এটি এমন কিছু হোক যা যেকোনো ব্যবহারকারী তাদের পিসি ক্র্যাশ হওয়া ছাড়াই ইনস্টল ও ব্যবহার করতে পারে, তাহলে আমাদের স্থিতিশীলতা প্রয়োজন। বর্তমানে, উইন্ডোজে RADV বেশ নাজুক, কারণ এটি এমন কিছু ব্যক্তিগত ডেটা কাঠামোর উপর নির্ভর করে যা AMD কাউকে না জানিয়েই যেকোনো আনুষ্ঠানিক ড্রাইভার আপডেটে পরিবর্তন করতে পারে । এটা অনেকটা এমন একটি পাজলের টুকরো মেলানোর চেষ্টার মতো, যার আকৃতি প্রতি সপ্তাহে বদলে যায়।

এই প্রতিবন্ধকতা কাটিয়ে উঠতে, কোলাবোরা জরুরিভাবে এএমডি বা মাইক্রোসফটের কাছে একটি ডকুমেন্টসহ ইন্টারফেস অথবা একটি 'শিম' লাইব্রেরি সরবরাহের অনুরোধ করেছে, যা একটি সেতু হিসেবে কাজ করবে। এটি ছাড়া রক্ষণাবেক্ষণ একটি দুঃস্বপ্নে পরিণত হবে। আরেকটি গুরুতর বিষয় হলো ইমেজ প্রেজেন্টেশন; বর্তমানে, তারা একটি ধীরগতির সিপিইউ-ভিত্তিক পদ্ধতি ব্যবহার করে এবং সত্যিকারের প্রতিযোগিতামূলক পারফরম্যান্স অর্জন ও প্রতিবন্ধকতা এড়াতে ডিএক্সজিআই সোয়াপচেইন প্রয়োগ করা প্রয়োজন।

এই প্রকল্পটি নিয়ে আমাদের কেন মাথা ঘামানো উচিত?

উইন্ডোজে RADV থাকাটা শুধু কোনো প্রোগ্রামারের খেয়ালখুশি নয়। উইন্ডোজে AMD-এর নিজস্ব ড্রাইভারগুলো মাঝে মাঝে অস্থিতিশীল হওয়ার জন্য, অথবা উইন্ডোজ ১১-এ গ্রাফিক্যাল ত্রুটি বা নির্দিষ্ট কিছু গেমে সমস্যা তৈরি করার জন্য পরিচিত। RADV ওপেন সোর্স হওয়ায়, এটি কমিউনিটিকে অনেক দ্রুত বাগ রিপোর্ট করতে এবং প্যাচ প্রয়োগ করতে সাহায্য করে । এছাড়াও, এটি গেম ডেভেলপারদের কাজ সহজ করে দেবে, কারণ তারা উভয় অপারেটিং সিস্টেমের জন্য একটিমাত্র ভলকান ইমপ্লিমেন্টেশনে তাদের কোড পরীক্ষা করতে পারবে।

এর মাধ্যমে এএমডি-র বন্ধ করে দেওয়া পুরোনো গ্রাফিক্স কার্ডগুলোও নতুন জীবন পেতে পারে। একটি কমিউনিটি প্রজেক্ট হওয়ায়, পুরোনো হার্ডওয়্যারের সাথে এর সামঞ্জস্যতা প্রায়শই অফিশিয়াল সাপোর্টের চেয়ে অনেক বেশি দিন টিকে থাকে। ভালভ যদি এর প্রচার চালিয়ে যায়, তাহলে আমরা এমন এক পর্যায়ে পৌঁছাতে পারি যেখানে স্ট্যাবিলিটি বা এমনকি কয়েকটি অতিরিক্ত এফপিএস পাওয়ার জন্য উইন্ডোজে RADV ইনস্টল করাই পছন্দের বিকল্প হয়ে উঠবে।

ভালভ এবং কোলাবোরার প্রচেষ্টায় একটি উদ্ভট ধারণা একটি কার্যকরী প্রোটোটাইপে পরিণত হয়েছে, যা ইতোমধ্যেই বাস্তব গেমগুলিতে পলিগন রেন্ডার করছে। কম্পাইলার সংক্রান্ত প্রযুক্তিগত বাধা এবং এএমডি-র পক্ষ থেকে আনুষ্ঠানিক ম্যানুয়ালের অভাব থাকা সত্ত্বেও এর ভিত্তি স্থাপন করা হয়েছে। এই উদ্যোগের ভবিষ্যৎ এখন নির্ভর করছে কার্নেল উন্মুক্ত করার সদিচ্ছার উপর, যাতে ওপেন সোর্সও লক্ষ লক্ষ উইন্ডোজ ব্যবহারকারীর ডেস্কটপে তার দ্যুতি ছড়াতে পারে।