Wine 11.17، یک نسخه آزمایشی از پیادهسازی API متنباز Win32، منتشر شد. از زمان انتشار نسخه ۱۱.۱۶، ۴۴ گزارش اشکال بسته شده و ۳۸۷ تغییر ایجاد شده است.
مهمترین تغییرات:
- پشتیبانی اولیه برای شبیهسازی حالت صفحه نمایش اضافه شده است که به برنامهها و بازیهای تمام صفحه اجازه میدهد با وضوح مجازی خودشان اجرا شوند، که بر اساس DPI مانیتور در طول رندر واقعی مقیاسبندی میشود. به عنوان مثال، یک بازی قدیمی ممکن است از وضوح 640x480 استفاده کند اما با حفظ نسبت ابعاد، روی صفحه نمایش با وضوح بالاتر نمایش داده شود.
- پشتیبانی از توابع RtlGetSystemPreferredUILanguages و RtlGetUserPreferredUILanguages برای بازیابی لیستی از زبانهای رابط کاربری ترجیحی، که در رجیستری برای کل سیستم و کاربران شخصی پیکربندی شده و به طور پیشفرض بر اساس تنظیمات محلی تولید میشوند، اضافه شده است. همچنین توابع RtlGetProcessPreferredUILanguages، SetProcessPreferredUILanguages، RtlGetSetThreadPreferredUILanguages و SetThreadPreferredUILanguages برای تعیین و تنظیم لیستی از زبانهای ترجیحی در سطح فرآیند و نخ اضافه شدهاند.
- بسته داخلی Vkd3d با اجرای Direct3D 12 به نسخه 2.1 به روز شده است.
- گزارشهای خطای بستهشده مربوط به برنامههای زیر: certmgr.exe، Signtools، Advanced SystemCare 6.4، Autodesk 3ds Max 9، SketchUp 2021، Nokia S60 5th Edition SDK 1.0، PDFCreator، SafeDisc v2.05.030، Bigrats، PTC Pro Engineer Wildfire V5، VisualSubSync 1.0.2.1، PS4 Remote Play 2.x، MigrosBank EBanking 8.2.x، Sparda Bank SecureApp 1.x، MSXML 6.0، Sennheiser Wireless Systems Manager 4.4، Netscape Navigator 3.04، xEdit.
- گزارشهای رفع اشکال مربوط به عملکرد بازیهای زیر بسته شدهاند: GTA: Vice City، GTA: San Andreas، Tetris JR، Worms Blast، Horizon Chase Turbo، Star Wars: Knights of the Old Republic I/II، GunBound، Marathon، Ground Control، Ankh — Anniversary Edition، Clive Barker's Jericho.
علاوه بر این، میتوانیم به انتشار نسخههای جدید پروژههای مرتبط با Wine اشاره کنیم:
- Wine Staging نسخه ۱۱.۱۷ منتشر شده است و نسخههای توسعهیافته Wine را ارائه میدهد که شامل وصلههای ناقص یا پرخطری هستند که هنوز برای ادغام در شاخه اصلی Wine مناسب نیستند. در مقایسه با Wine، Wine Staging تعداد ۲۷۹ وصله اضافی ارائه میدهد. نسخه جدید Wine Staging با کدبیس Wine 11.17 همگامسازی میشود و کد vkd3d را بهروزرسانی میکند. وصلهای که تابع SetThreadpoolTimerEx را در کتابخانه kernel32.dll پیادهسازی میکند، به توزیع اصلی Wine منتقل شده است.
- من vkd3d 2.1 را منتشر کردهام، یک پیادهسازی Direct3D 12 که از طریق ترجمه فراخوانی به API گرافیکی Vulkan کار میکند. این بسته شامل کتابخانه libvkd3d با پیادهسازی Direct3D 12، libvkd3d-shader با یک مترجم مدل shader و libvkd3d-utils با توابعی برای سادهسازی انتقال برنامههای Direct3D 12 است. همچنین شامل مجموعهای از نسخههای نمایشی، از جمله پورت glxgears به Direct3D 12 است. کتابخانه libvkd3d از اکثر ویژگیهای Direct3D 12، از جمله ابزارهای گرافیکی و محاسباتی، صفها و لیستهای فرمان، توصیفگرها و توصیفگرهای heap، امضاهای ریشه، دسترسی نامرتب، نمونهگیرها، امضاهای فرمان، ثابتهای ریشه، رندر غیرمستقیم و روشهای Clear*() و Copy*() پشتیبانی میکند. libvkd3d-shader ترجمه بایتکد مدل shader را به نمایش میانی SPIR-V پیادهسازی میکند.
در نسخه جدید vkd3d:
- پیادهسازی زبان سایهزن HLSL بهروزرسانی شده است تا از عملیات حسابی با نوع "نیمه" هنگام استفاده از مدلهای سایهزن ۴ و ۵ پشتیبانی کند.
- کامپایلر سایهزن HLSL بررسی دادههای ورودی و خروجی را تقویت کرده و یک گذرگاه برای حذف متغیرهای سراسری استفاده نشده (uniforms) در مدلهای سایهزن ۱ تا ۳ پیادهسازی کرده است.
- بخش پشتی GLSL (زبان سایهزنی OpenGL) پشتیبانی از آدرسدهی غیرمستقیم رجیسترهای ورودی، مقایسه اتمی و عملیات جمع اعداد صحیح، عملیات و موانع بیتی، عملیات بارگذاری/ذخیره برای UAV (نمای دسترسی نامرتب) و حافظه مشترک یک گروه نخ را پیادهسازی میکند.
- پشتیبانی بهبود یافته از فرمت سایهزن دودویی قدیمی Direct3D. دستورالعملهای "sub" و "break_cmp"، اصلاحکنندههای دستورالعمل "_x2"، "_x4"، "_x8"، "_d2"، "_d4" و "_d8" و اصلاحکنندههای عملوند "_bias"، "_x2" و "_bx2" پیادهسازی شدند.
- هنگام تبدیل به نمایش میانی سایهزنهای SPIR-V، پشتیبانی برای عملیات تبدیل اعداد اعشاری به اعداد صحیح ۶۴ بیتی اضافه شده است.
- Libvkd3d-utils پشتیبانی از API مربوط به shader reflection را گسترش داده است. رابطهای ID3D10ShaderReflection، ID3D10ShaderReflection1 و ID3D11ShaderReflection اکنون پیادهسازی شدهاند، همچنین اکثر متدهای رابطهای ID3D12ShaderReflection و ID3D12ShaderReflectionType نیز پشتیبانی میشوند.
- گزینه "--allow-half-globals" به vkd3d-compiler و پرچم VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS به libvkd3d-shader اضافه شد تا متغیرهای سراسری از نوع "half" را به نمایشی از نوع "float" کامپایل کنند.
- DXVK 3.1 منتشر شده است که پیادهسازی DXGI (زیرساخت گرافیکی DirectX)، Direct3D 8، 9، 10 و 11 را ارائه میدهد و از طریق ترجمه فراخوانی به Vulkan API کار میکند. استفاده از DXVK نیاز به درایورهایی دارد که از Vulkan API 1.4 پشتیبانی میکنند، مانند NVIDIA 575.51.02، Mesa AMD RADV 25.0، NVIDIA 25.1 و Intel ANV 25.1. DXVK میتواند برای اجرای برنامهها و بازیهای سهبعدی در Linux با استفاده از Wine، به عنوان جایگزینی با عملکرد بالاتر برای پیادهسازیهای Direct3D داخلی Wine که بر روی OpenGL اجرا میشوند، عمل میکند.
در نسخه های جدید:
- پشتیبانی از رندر افزایشی در DXGI، که با استفاده از افزونه VK_KHR_incremental_present Vulkan پیادهسازی شده است، اضافه شد. این امکان را فراهم میکند که فقط قسمتهایی از صفحه که تغییر کردهاند، بهروزرسانی شوند. این ویژگی جدید، مشکلات رندرینگ را در VirtualDJ و لانچرهای مختلف بازی، مانند Ubisoft Connect، برطرف میکند.
- پشتیبانی از ایجاد نماهای هدف رندر مستقیماً در بافرها اضافه شد، که مشکلات مربوط به مصنوعات رندر ابری را در برخی از بازیهای مبتنی بر Frostbite، مانند Battlefield 3، حل کرد.
- بارگذاری کتابخانهها برای پشتیبانی از افزونههای مخصوص پردازندههای گرافیکی اینتل (افزونههای فروشنده) پیادهسازی شد.
- مشکلات مربوط به Mabinogi، The Witcher 1، Ghost Recon Breakpoint، Mirrors Edge و RaceRoom Racing Experience برطرف شد.
- پروژه D7VK 2.2 منتشر شده است که پیادهسازی APIهای گرافیکی Direct3D 3، 5، 6 و 7 را که توسط مایکروسافت در سالهای 1996، 1997، 1998 و 1999 پیشنهاد شده بود، توسعه میدهد. D7VK با ترجمه فراخوانیها به API Vulkan کار میکند و به شما امکان میدهد تا ... را اجرا کنید. Linux بازیهای قدیمی مبتنی بر رابطهای برنامهنویسی کاربردی (API) Direct3D 3، 5، 6 و 7. کد پروژه با زبان C++ نوشته شده و تحت مجوز Zlib توزیع شده است. توسعه بر اساس کد backend d3d9 از پروژه DXVK انجام میشود. D7VK رابطهای برنامهنویسی کاربردی Direct3D 3، 5، 6 و 7 را به فراخوانیهای Direct3D 9 تبدیل میکند که سپس به API Vulkan ترجمه میشوند. توسعهدهنده قصد ندارد D7VK را در DXVK بگنجاند، همانطور که در پیادهسازیهای Direct3D 8 و Direct3D 9 بر روی Vulkan اتفاق افتاد.
نسخه جدید به DXVK نسخه ۳.۱ منتقل میشود، بررسی و بازشماری بافر اجرایی D3D3 را برای دستگاههای D3D3 دوباره انجام میدهد و مدیریت بافت را برای D3D5/3 بهبود میبخشد. اصلاحاتی برای بهبود پشتیبانی از بازیهای زیر انجام شده است: پالانتیرها در ارباب حلقهها، رزیدنت اویل ۲ و قورباغه.
منبع: opennet.ru
