প্রকল্পটি মদ উন্মোচন কয়েকদিন আগেই লঞ্চ হয়েছে এর নতুন সংস্করণ vkd3d 1.7 প্যাকেজ একটি Direct3D 12 বাস্তবায়নের সাথে যা Vulkan গ্রাফিক্স API-তে কলের অনুবাদের মাধ্যমে কাজ করে।
প্যাকেজ libvkd3d লাইব্রেরি অন্তর্ভুক্ত Direct3D 12 ইমপ্লিমেন্টেশন সহ, libvkd3d-shader সহ shader মডেল 4 এবং 5 অনুবাদ করে, এবং Direct3D 3 অ্যাপ্লিকেশনগুলির স্থানান্তরকে সহজ করার জন্য ফাংশন সহ libvkd12d-utils, সেই সাথে Direct3D 12-এ glxgears-এর একটি পোর্ট সহ ডেমোগুলির একটি সেট।
libvkd3d লাইব্রেরি সর্বাধিক Direct3D 12 বৈশিষ্ট্য সমর্থন করে, গ্রাফিক্স এবং গণনা, কমান্ড তালিকা এবং সারি, বর্ণনাকারী এবং স্তূপ বর্ণনাকারী, রুট স্বাক্ষর, ক্রমবিহীন অ্যাক্সেস, নমুনা, কমান্ড স্বাক্ষর, রুট ধ্রুবক, পরোক্ষ উপস্থাপনা, পরিষ্কার*() এবং কপি*() পদ্ধতি সহ।
এটি ছাড়াও libvkd3d-shader বাইটকোড 4 এবং 5 এর অনুবাদ প্রয়োগ করে SPIR-V-এর মধ্যবর্তী উপস্থাপনায় শেডিং মডেলগুলির। ভার্টেক্স, পিক্সেল, টেসেলেশন, গণনা এবং সাধারণ জ্যামিতি শেডার, রুট সিগনেচার সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন সমর্থন করে।
পাটিগণিত, পারমাণবিক, এবং বিট অপারেশন, তুলনা এবং ডেটা প্রবাহ নিয়ন্ত্রণ অপারেটর, নমুনা, সংগ্রহ এবং লোড নির্দেশাবলী, আউট-অফ-অর্ডার অ্যাক্সেস অপারেশন (ইউএভি, আউট-অফ-অর্ডার অ্যাক্সেস ভিউ) ছায়াময় নির্দেশাবলী থেকে প্রয়োগ করা হয়।
vkd3d 1.7-এর প্রধান নতুন বৈশিষ্ট্য
vkd3d 1.7-এর উপস্থাপিত এই নতুন সংস্করণে é দেখা যাচ্ছেএইচএলএসএল শেডার কম্পাইলার উন্নত করার জন্য কাজ চালিয়ে যাচ্ছি (হাই-লেভেল শেডার ল্যাঙ্গুয়েজ), সেইসাথে ব্যবহারকারী-সংজ্ঞায়িত ফাংশন কল করার ক্ষমতা যোগ করা এবং ব্যবহারকারী-সংজ্ঞায়িত ফাংশন প্যারামিটার হিসাবে অ্যারে ব্যবহার করুন।
নতুন সংস্করণে দাঁড়িয়ে থাকা পরিবর্তনগুলির মধ্যে আরেকটি হল প্রোফাইলের জন্য উল্লেখযোগ্যভাবে উন্নত সমর্থন shader মডেল Direct3D ০১/০৩/২০১৫, min16float-এর মতো নিম্ন-নির্ভুলতা ফ্লোটিং-পয়েন্টের জন্য প্রাথমিক সমর্থন যোগ করা হয়েছে।
সেটাও তুলে ধরা হয়েছে SV_DispatchThreadID, SV_GroupID এবং SV_GroupThreadID প্যারামিটারের জন্য সমর্থন যোগ করা হয়েছে এবং একটি পাবলিক API পার্স (vkd3d_shader_parse_dxbc) এবং সিরিয়ালাইজ (vkd3d_shader_serialize_dxbc) DXBC বাইনারি ডেটাতে যোগ করা হয়েছে।
এর অন্যান্য পরিবর্তন যে দাঁড়ানো নতুন সংস্করণ:
- Load() টেক্সচার অবজেক্টের ঐচ্ছিক "অফসেট" প্যারামিটারের জন্য সমর্থন
পদ্ধতি - অন্তর্নিহিত ফাংশন all() এর জন্য সমর্থন।
- দূরত্ব() অভ্যন্তরীণ ফাংশনের জন্য সমর্থন।
- অন্তর্নিহিত ফাংশন exp() এবং exp2() এর জন্য সমর্থন।
- ফ্র্যাক() অভ্যন্তরীণ ফাংশনের জন্য সমর্থন।
- lit() অভ্যন্তরীণ ফাংশনের জন্য সমর্থন।
- প্রতিফলিত() অভ্যন্তরীণ ফাংশনের জন্য সমর্থন।
- অন্তর্নিহিত ফাংশন sin() এবং cos() এর জন্য সমর্থন।
- smoothstep() অভ্যন্তরীণ ফাংশনের জন্য সমর্থন।
- অন্তর্নিহিত sqrt() এবং rsqrt() ফাংশনের জন্য সমর্থন।
- step() অভ্যন্তরীণ ফাংশনের জন্য সমর্থন।
- অন্তর্নিহিত ফাংশন ট্রান্সপোজ() এর জন্য সমর্থন।
- ফ্লোট এবং ডওয়ার্ড ডেটার কেস-সংবেদনশীল রূপগুলির জন্য সমর্থন
আদর্শ - ন্যূনতম নির্ভুল ডেটা প্রকারের জন্য আংশিক সমর্থন যেমন "min16float"। এগুলিকে বর্তমানে তাদের নিয়মিত প্রতিরূপ হিসাবে ব্যাখ্যা করা হয়।
উন্নত ধ্রুবক প্রচার সমর্থন, বিশেষ করে swizzles মাধ্যমে ধ্রুবক প্রচারের জন্য। - VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE কম্পাইল বিকল্পটি নির্দিষ্ট করতে ব্যবহার করা যেতে পারে যে SPIR-V শেডারগুলি ভলকান পরিবেশকে লক্ষ্য করে জ্যামিতি এবং টেসেলেশন শেডারগুলির জন্য বিন্দু আকার লিখতে হবে কিনা তা নির্দিষ্ট করা না থাকলে, পয়েন্টের আকারগুলি লেখা হবে৷
পরিশেষে, যারা এটি সম্পর্কে আরও জানতে আগ্রহী তাদের জন্য, তাদের জানা উচিত যে প্রকল্প কোডটি LGPLv2.1 এর অধীনে লাইসেন্সপ্রাপ্ত এবং তারা এই নতুন প্রকাশের বিশদ বিবরণের সাথে পরামর্শ করতে পারে নীচের লিঙ্কে।
কিভাবে vkd3d 1.7 ইনস্টল করবেন?
জন্য vkd3d ইনস্টল করতে সক্ষম হতে আগ্রহী তাদের অবশ্যই জানা উচিত যে তাদের অবশ্যই সোর্স কোড কম্পাইল করতে হবে, তাই আমাদের অবশ্যই প্রথমে এটি পেতে হবে, এটি উল্লেখ করা গুরুত্বপূর্ণ যে Vkd3d SPIRV-হেডার এবং ভলকান-হেডার (>= 1.2.139) এর উপর নির্ভর করে।
সংকলনটি সম্পাদন করতে আমাদের অবশ্যই একটি টার্মিনাল খুলতে হবে এবং এতে আমরা নিম্নলিখিত কমান্ডটি টাইপ করব:
git clone https://gitlab.winehq.org/wine/vkd3d.git
একবার এটি সম্পন্ন হলে, আমরা সম্প্রতি ডাউনলোড করা ডিরেক্টরিতে প্রবেশ করতে এগিয়ে যাই:
cd vkd3d
এবং আমরা নিম্নলিখিত কমান্ডগুলি সম্পাদন করে কম্পাইল করতে এগিয়ে যাই:
./configure make make install
Si আপনি সংকলন সম্পর্কে আরও জানতে চান vkd3d এর আপনি বিস্তারিত দেখতে পারেন এই লিঙ্কটি