এক সময়ে ভলকান ওয়ান সাবসিস্টেম ওয়ান সাবসিস্টেমকে সরলীকরণ করা

এক সময়ে ভলকান ওয়ান সাবসিস্টেম ওয়ান সাবসিস্টেমকে সরলীকরণ করা


যখন Vulkan® ওয়ার্কিং গ্রুপে আমরা যারা API-কে সংশোধন করতে চাই – তা প্রকাশ করার জন্য একটি নতুন হার্ডওয়্যার বৈশিষ্ট্য হোক, একটি নতুন ব্যবহারের ক্ষেত্রে যা আমরা সমাধান করতে চাই, বা এমনকি স্পেসিফিকেশনের একটি ফাঁক যা আমরা সমাধান করতে চাই – আমাদের কাছে একটি অমূল্য টুল রয়েছে যা আমরা খুব বেশি ব্যবহার করি: এক্সটেনশন!

নতুন মূল সংস্করণের জন্য অপেক্ষা না করে ডেভেলপারদের কাছে Vulkan API-এ উন্নতি আনার জন্য এক্সটেনশনগুলি আমাদের জন্য একটি দুর্দান্ত উপায়। তারা বিক্রেতাদের উদ্ভাবনী কার্যকারিতা হাইলাইট করতে দেয় এবং নতুন বৈশিষ্ট্যগুলিকে একটি মূল বৈশিষ্ট্যে পরিণত করার আগে আমাদের সম্প্রদায়ের প্রতিক্রিয়া সংগ্রহ করতে সক্ষম করে।

বিস্ময়কর! এই কারণেই আমরা ডেভেলপারদের কাছে দ্রুত নতুন কার্যকারিতা সরবরাহ করি—কী পছন্দ নয়!? ভাল…

সম্প্রসারণ বিস্ফোরণ সমস্যা 💥

এই ধরনের প্রস্থ অ্যাক্সেস একটি মূল্য আসে. যেহেতু আমরা API-তে আরও এক্সটেনশন যুক্ত করি, আমরা কখনও কখনও অসাবধানতাবশত এটি ব্যবহার করার সবচেয়ে সহজ উপায়টি অস্পষ্ট করে ফেলি। সর্বদা সেখানে থাকার জন্য আপনি কোন কার্যকারিতার উপর নির্ভর করতে পারেন? আপনি যা করতে চান তা করার কয়টি উপায় আছে? এই পদ্ধতিগুলির মধ্যে কোনটি সেরা পারফরম্যান্স দেবে? একটি API এর মাধ্যমে আপনি যুক্তিসঙ্গতভাবে একটি অ্যাপ্লিকেশনে কতগুলি পথ সমর্থন করতে পারেন?

আমরা মাঝে মাঝে ভালবাসার সাথে এটিকে “এক্সটেনশন বিস্ফোরণ সমস্যা” হিসাবে উল্লেখ করুন কারণ আমাদের এখন কতগুলি এক্সটেনশন রয়েছে – এবং কতগুলি ইতিমধ্যেই OpenGL/ES™ এ বিদ্যমান। আমরা যত বেশি যোগ করি, তত বেশি তারা একে অপরের সাথে সংযুক্ত এবং যোগাযোগ করে, বিকাশকারীদের জন্য সিদ্ধান্তের জায়গাতে সংযোগ যোগ করে।

এটি একটি চলমান চ্যালেঞ্জ যা আমরা Vulkan এর বিকাশকারী বেস থেকে উচ্চস্বরে এবং স্পষ্ট শুনেছি, কিন্তু এখনও পর্যন্ত আমাদের কাছে একটি ভাল সমাধান নেই।

যখন আমরা Vulkan 1.0 তৈরি করেছি, এটি আমাদেরকে OpenGL® থেকে এগিয়ে যাওয়ার জন্য একটি পরিষ্কার স্লেট দিয়েছে, কিন্তু এখন Vulkan-এ 10 বছর পর আমরা আবার একই সমস্যার সম্মুখীন হচ্ছি। তাহলে উত্তর কি? আমাদের কি প্রতি কয়েক বছরে পুরো API পুনরায় ডিজাইন করা উচিত?

বিশ্বাস করো আর না করো, আমরা আরো এক্সটেনশন যোগ!

…🤨?

সাবসিস্টেম প্রতিস্থাপন

এটি বিপরীতমুখী বলে মনে হতে পারে, কিন্তু আরও এক্সটেনশন যোগ করা একটি উপায় যা আমরা পরিস্থিতির উন্নতি করতে পারি। যাইহোক, এই পারে না যথারীতি ব্যবসা পরিচালনা করুন। আমরা পাস করতে ভিন্ন পন্থা অবলম্বন করা।

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

VK_EXT_descriptor_heap এই পদ্ধতির প্রথম কংক্রিট প্রচেষ্টা, সম্পূর্ণরূপে প্রতিস্থাপিত ভলকানে বিদ্যমান বর্ণনাকারী সেট সাবসিস্টেম। ভলকান ওয়ার্কিং গ্রুপের সদস্যরা তাদের যা আছে সবই এতে রেখেছেন, এবং এটিকে সেই ধরনের মনোযোগ দেওয়া হয়েছে যা আমরা ঐতিহাসিকভাবে শুধুমাত্র বড় এপিআই রিভিশনের সাথে দেখেছি (যেমন Vulkan 1.0)। যদিও এটি এখনই EXT হিসাবে শিপিং করছে, এটি ভবিষ্যতে মূল কার্যকারিতা হওয়ার পথে।

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

নতুন VK_EXT_descriptor_heap এক্সটেনশনটি লেআউট, পুশ বর্ণনাকারী বা বর্ণনাকারী বাফার সহ পূর্ববর্তী বর্ণনাকারী সেট APIগুলির সাথে ইন্টারঅ্যাক্ট করে না। এখনও– এটি সম্পূর্ণরূপে সবকিছু পরিবর্তন করে। এপিআইকে কিছুটা প্রবাহিত করার চেষ্টা করার পরিবর্তে, এই এক্সটেনশনটি মৌলিকভাবে পরিবর্তন করে যে কীভাবে ভলকান অ্যাপ্লিকেশন বর্ণনাকারীদের সাথে যোগাযোগ করে। বর্ণনাকারীরা আর অস্বচ্ছ জিনিস নয় যা আপনি অদ্ভুত API কমান্ড এবং সীমাবদ্ধ শেডার বাইন্ডিংয়ের মাধ্যমে পরিচালনা করেন। বর্ণনাকারীর স্তূপগুলি কেবল মেমরি, বর্ণনাকারীগুলি কেবল ডেটা, এবং আপনি করতে পারেন আরো মত তাদের সাথে যা খুশি তাই কর। আছে কিছু? বিধিনিষেধ, তবে এটি একটি পোর্টেবল API এর চেয়ে কনসোলে আপনি যা আশা করতে পারেন তার অনেক কাছাকাছি।

শিল্পের একটি বড় অংশও এই সম্প্রসারণে অবদান রেখেছে, যা আমাদের স্বাভাবিক সম্প্রসারণের চেয়ে অনেক বেশি। অবদানকারীদের তালিকাটি নির্দ্বিধায় দেখুন—এটি ব্যাপক. এই সম্প্রসারণটি ভলকান ওয়ার্কিং গ্রুপের প্রায় প্রত্যেকের কাছ থেকে অর্থপূর্ণ ইনপুট পেয়েছে। আমরা একসাথে গত তিন বছরের ভাল অংশ এটিকে পুনরাবৃত্তি এবং পরিমার্জন করে কাটিয়েছি, এটি নিশ্চিত করে যে এটি কেবল কাজ করে না কিন্তু কাজ করে। ভাল.

যদি এটিতে এত কেনাকাটা থাকে তবে কেন এটি KHR নয়?

আমরা নিশ্চিত করতে চাই যে আমরা আপনার কাছ থেকেও বাই-ইন পাব।

এই বড় কিছু দিয়ে, আমরা নিশ্চিত করতে চাই যে আমরা এটি সঠিকভাবে পেয়েছি। আমরা আত্মবিশ্বাসী যে আমরা যা তৈরি করেছি তা ইতিমধ্যেই একটি বিশাল উন্নতি এবং একটি চমৎকার বৈশিষ্ট্য, কিন্তু এটিকে EXT হিসাবে প্রকাশ করার মাধ্যমে, আমরা বৃহত্তর সম্প্রদায়কে এটি চেষ্টা করার, এর জটিলতাগুলি বোঝার এবং সম্ভবত এটিকে আরও ভাল করার উপায়গুলি সুপারিশ করার সুযোগ দিচ্ছি৷

EXT পরিবর্তন হবে না, তাই আপনি আজ শিপিং অ্যাপে এটি ব্যবহার করতে পারেন; যখন আমরা শেষ পর্যন্ত একটি KHR সংস্করণ পাঠাই, আমাদের লক্ষ্য হল রূপান্তরটিকে যতটা সম্ভব সহজ করা যদি আপনি এটি ব্যবহার করতে চান।

আপনি যদি নতুন এক্সটেনশনে এমন কিছু খুঁজে পান যা আপনার মনে হয় সরলীকৃত বা উন্নত করা যেতে পারে, আমরা KHR স্পেসিফিকেশন চূড়ান্ত করার সময় যেকোনো প্রতিক্রিয়া বিবেচনা করব। এটি করার মাধ্যমে, আমরা সবকিছুকে যথাসম্ভব ভালভাবে কাজ করার জন্য কাজ করব এবং পরে জিনিসগুলি ঠিক করার জন্য অতিরিক্ত এক্সটেনশনগুলি এড়িয়ে চলব৷

যদিও KHR শেষ পর্যন্ত কখন বাস্তবায়িত হবে সে সম্পর্কে আমরা কোনও গ্যারান্টি দিতে পারি না, পরবর্তী 9 মাসের মধ্যে প্রতিক্রিয়া পাওয়া আমাদের আপনার ইনপুট অন্তর্ভুক্ত করার সর্বোত্তম সুযোগ দেবে।

প্লিজ এই এক্সটেনশন ব্যবহার করুন এবং এটা কিভাবে যায় আমাদের জানান!

ঠান্ডা। আপনি বর্ণনাকারীদের সম্পর্কে কিছু করেছেন। কি সম্পর্কে?

বিকাশকারীর চাহিদাগুলি আমাদের রোডম্যাপ পরিকল্পনার কেন্দ্রবিন্দুতে রয়েছে এবং আমরা যে অনুরোধগুলি শুনছি তা সমাধান করতে আমরা প্রতিশ্রুতিবদ্ধ। আপনি যা খুঁজছেন তা নিয়ে আমরা ইতিমধ্যেই কাজ করার একটি ভাল সুযোগ রয়েছে৷.

যদি আমরা আপনার সমস্যাটি কোথাও লগ না করে থাকি, অথবা আপনি যদি মনে করেন যে এটি যথেষ্ট মনোযোগ পাচ্ছে না, আমরা আপনাকে আমাদের ডিসকর্ডে যেতে বা GitHub-এ একটি সমস্যা ফাইল করার জন্য উত্সাহিত করব এটি সম্পর্কে আমাদের জানাতে!

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

এই মুহূর্তে আমাদের শীর্ষ অগ্রাধিকারগুলির মধ্যে একটি হল Vulkan API ব্যবহার করা আনন্দদায়ক করা। আমরা জানি আমাদের এখনও অনেক দীর্ঘ পথ পাড়ি দিতে হবে, কিন্তু আমরা আশা করি যে এই ধরনের সুচিন্তিত সাবসিস্টেম প্রতিস্থাপন সেই দিকে একটি বড় ইতিবাচক পদক্ষেপ। আপনি এই পদ্ধতি সম্পর্কে কি মনে করেন দয়া করে আমাদের জানান—আমরা আপনার কাছ থেকে শুনতে চাই!

Leave a Reply

Your email address will not be published. Required fields are marked *