1 पॉइंट द्वारा GN⁺ 2024-06-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Honeykrisp अभी अंतिम उपयोगकर्ताओं के लिए जारी नहीं हुआ है, और फिलहाल डेवलपर्स के लिए केवल source code ही सार्वजनिक किया गया है
  • M1 के लिए Honeykrisp, Apple hardware पर पहला conformant Vulkan implementation है, और यह portability waiver के बिना Vulkan 1.3 की पूरी specification लागू करता है
  • Honeykrisp, M1 के लिए पहले से चल रहे Vulkan कार्य पर आधारित नहीं है, बल्कि NVIDIA GPU के लिए ओपन सोर्स NVK driver पर आधारित है, और इसकी शुरुआत M1 code जोड़कर तथा NVIDIA-संबंधित हिस्से हटाकर की गई
  • Vulkan 1.3 conformance test suite का अंतिम परिणाम Pass 686930, Fail 0 दर्ज किया गया
  • सभी state को dynamic state के रूप में संभालते हुए, prolog और epilog को build·compile·cache करने वाला code जोड़ा गया, जिससे इसे full dynamic state और EXT_shader_object दिशा में लागू किया गया
  • zero-copy rendering के लिए EXT_image_drm_format_modifier लागू किया गया
  • Direct3D compatibility के लिए DXVK और vkd3d-proton द्वारा आवश्यक EXT_custom_border_color को सपोर्ट किया गया है, और border colour correction को shader में code inject करके emulate किया गया
  • custom border colour emulation को “simple, correct, and slow” बताया गया है, और आगे driver tricks से इसकी गति बढ़ाने की योजना है
  • अगला काम DXVK और vkd3d-proton द्वारा Direct3D layering के लिए आवश्यक items को लागू करना है, जिनमें उदाहरण के तौर पर transform feedback दिया गया है

1 टिप्पणियां

 
GN⁺ 2024-06-06
Hacker News की राय
  • वाकई प्रभावशाली काम है, और साझा व लगातार सुधारे जाने वाले open components की अहमियत साफ दिखती है
    सोच रहा हूं Proton को port होने में कितना समय लगेगा, लेकिन Vulkan implementation कितना भी optimal हो, GPU architecture के अंतर, ARM translation overhead और Proton की अपनी लागत की वजह से कई games की performance खराब हो सकती है
    फिर भी Snapdragon जैसे SoC desktop पर ज्यादा आम हो जाएं, तो आगे और games unified memory और ARM को target करेंगे—इसको लेकर आशावादी हूं

    • अगर Asahi पर gaming experience macOS से भी ज्यादा आसान और सरल हो जाए, तो यह काफी ironic होगा
      यह दिखाता है कि पिछले 10 सालों में Apple का Vulkan को ignore करना कितनी बड़ी गलती थी, लेकिन लगता नहीं कि बहुत देर होने से पहले वे इसे कभी मानेंगे
    • कई games जिन्हें dxvk की जरूरत नहीं है, वे 60FPS से ऊपर चलते हैं। https://vt.social/@lina/112524118075585601 देखें
      Alyssa हाल में FEX performance improvements पर भी काम कर रही हैं
  • Linux में Vulkan जोड़ने और Asahi Linux पर DirectX को translate करने का यह काम Apple Silicon पर AAA games लाने के Apple के सपने को प्रभावित करेगा या नहीं, यह सोचने वाली बात है
    Apple शायद चाहता होगा कि AAA developers अपने games को Metal पर port करें, ताकि वे iPhone, iPad, Mac और Vision Pro पर एक ही codebase से चलें
    हो सकता है Mac gamers AAA PC titles खेलने के लिए Asahi Linux install करने लगें

    • Apple का सपना AAA games को Apple Silicon पर लाना नहीं, बल्कि उन्हें Apple App Store पर लाना है। Proton जैसी layer GPTK की तरह बनाई जा सकती है
      असल चाहत यह है कि AAA games Steam या Epic Games Store पर नहीं, बल्कि App Store में आएं; इसलिए मेरे हिसाब से GPTK आधा-अधूरा है और इसकी license भी Valve को इसे सीधे Steam में integrate करने से रोकती है
    • Asahi Linux उन Mac users के लिए नया Boot Camp बन सकता है जो gaming के लिए dual boot करते थे
      मैंने M1 पर Whiskey से Diablo II Resurrected खेला था, और Windows native game का यूं सीधे चल जाना काफी impressive था। अभी बस बेवकूफी भरा Blizzard launcher update crash कर रहा है और game launch होने से रोक रहा है
      यह पुराना DX9 game है, लेकिन EverQuest II भी M1 Mac mini पर 1440p में बहुत अच्छा चला, और Asahi Linux Guild Wars जैसे पुराने 32-bit titles में भी मदद कर सकता है
    • अगर Apple सचमुच यही चाहता, तो बस Vulkan implement कर देता
    • Apple ने पहले ही Game Porting Toolkit जारी कर दिया है
  • अगर Vulkan 1.3 के बारे में ज्यादा नहीं जानते, लेकिन low-level graphics API work में दिलचस्पी है, तो इसे जरूर देखना चाहिए। यह Vulkan 1.0 से बिल्कुल अलग स्तर पर है और game-changer है
    शुरुआती barrier पार कर लें तो इस पर काम करना मजेदार है, और सभी dynamic state व pre-render pass setup हटने से यह कहीं ज्यादा manageable हो गया है। 20 साल से इस्तेमाल किए जा रहे OpenGL से भी आसान हो गया है, और graphics programming फिर से मजेदार लगने लगी है
    अगर modern drivers हैं, तो लगभग पिछले 10 साल के भीतर बने GPU वाले सभी desktop platforms पर ज्यादातर features इस्तेमाल किए जा सकते हैं
    अफसोस कि तुरंत शुरू कराने वाला “reasonable defaults” framework नहीं है, लेकिन कई languages के लिए उपयोगी helper libraries काफी हैं

    • OpenGL को मैं 20 साल से थोड़ा-थोड़ा छेड़ता रहा हूं, और professional game programmer नहीं हूं, लेकिन खाली समय में 3D content बनाता हूं
      Vulkan पर जाने का समय नहीं मिला, पर लगता है आखिरकार बस initialization और setup barrier पार करना होगा। उसके बाद शायद OpenGL पर वापस नहीं जाऊंगा
      इस लेख ने थोड़ा push दिया है कि सच में इसे आजमाना चाहिए
    • Vulkan 1.3 को specifically शुरू करने के लिए कोई tutorial या documentation है क्या? आखिरी बार देखा था तो सामग्री में पुराने और नए तरीकों के कई combinations उलझे हुए थे
      OpenGL भी मूल रूप से ऐसा ही था, तो शायद बहुत अलग नहीं है, लेकिन लगता है Khronos ने वाकई कमाल कर दिया
  • ES 3.2 support की वजह से अभी update किया और पहले से ही हैरान हूं। मेरा M1 तो जैसे Asahi के लिए ही बना लगता है
    सच कहूं तो macOS शायद सिर्फ install करते समय या गलती से एक बार boot हुआ होगा। ऐसी detailed updates मिलना अच्छा है
    सोच रहा हूं कि browsers में कोई zero-copy rendering support करता है या अभी भी compositor layers की कई परतें बीच में हैं। याद है WebGL2 transform feedback readback trigger कर रहा था और उसी में अटक गया था

    • क्या macOS को पूरी तरह हटाया जा सकता है? यह देखकर travel के लिए Mac mini consider करने लगा हूं
  • जब कुछ crash होता था तो मैं सोचता था कि यह compiler bug तो बिल्कुल हो ही नहीं सकता, लेकिन 16 अप्रैल को सच में compiler bug निकला
    मैं confidently कह सकता हूं कि अपने career में ऐसा कभी नहीं देखा, लेकिन abstraction level जितना नीचे जाता है, यह उतना कम दुर्लभ भी हो सकता है

    • compiler bug नहीं हो सकता, और CPU bug तो बिल्कुल भी नहीं
      बशर्ते आप low-level kernel developer हों—तब दोनों सही हो सकते हैं
      मजाक अलग, असल में ज्यादातर बार ऐसा नहीं होता, लेकिन यह सचमुच होता है
    • कम से कम register allocator वाला हिस्सा खुद नहीं लिखा था क्या?
      अगर यह आपका अपना in-progress compiler है जिसे test किया जा रहा है, तो “compiler bug नहीं हो सकता” वाली कहावत बहुत लागू नहीं होती
  • शेडर में एक अजीब स्ट्रक्चर है: if (condition) { while (true) { } }
    condition हमेशा false है, लेकिन compiler को यह पता नहीं है
    standards-compliant shader compiler लिखने वालों को परेशान करने वाले ज़हर के अलावा, मुझे जिज्ञासा है कि इस स्ट्रक्चर का उद्देश्य क्या है

  • जिज्ञासा है कि क्या इसे VM के अंदर इस्तेमाल किया जा सकता है। मैं macOS पर develop करता हूं और कुल मिलाकर संतुष्ट हूं, लेकिन testing के लिए VMware का Ubuntu image चलाता हूं
    मैं 3D graphics app बना रहा हूं, इसलिए पता नहीं VMware का passthrough कितना अच्छा है। जानना चाहता हूं कि VM में Apple Silicon GPU virtualize होता है या नहीं, और क्या इस distro को चलाने से graphics performance बेहतर हो सकती है

    • Native install करना होगा। अगर macOS के ऊपर Windows/Linux/macOS VM में अच्छी 3D performance चाहिए, तो VMware के मुकाबले Parallels काफी बेहतर है
  • क्या कोई समझा सकता है कि इसका MoltenVK से क्या संबंध है? क्या native driver होने की वजह से MoltenVK की जरूरत खत्म हो जाती है?

    • MoltenVK macOS पर Vulkan applications चलाने देने के लिए Metal पर आधारित एक Vulkan implementation है
      Asahi Linux Apple M series processors पर Linux compatible बनाने की कोशिश में विकसित हो रहा distro है, और यह लेख Asahi में GPU-accelerated Vulkan चलाने के बारे में है
    • यह M1 Mac hardware पर Asahi Linux में Vulkan इस्तेमाल करने की बात है। MoltenVK macOS पर Metal के ऊपर Vulkan उपलब्ध कराता है
    • यह macOS नहीं, बल्कि Linux पर Vulkan के बारे में है
    • MoltenVK, Metal को Vulkan में translate करता है। Metal OS X और iOS का मुख्य graphics API है, और यह Linux के लिए native Vulkan implementation है
      लेख में भी यही कहा गया है। यह OS X पर directly चल नहीं सकता, इसलिए MoltenVK की जरूरत को खत्म नहीं करता