Vulkan — এটি কী, ক্রস-প্ল্যাটফর্ম API এবং রেন্ডারিং

লেখক: IT Sectr প্রকাশিত: 2026-05-03 পড়ার সময়: 9 মিনিট

Vulkan হল GPU-তে গ্রাফিক্স এবং কম্পিউটিংয়ের জন্য একটি ক্রস-প্ল্যাটফর্ম API, যা Khronos Group কনসোর্টিয়াম দ্বারা তৈরি। Vulkan হার্ডওয়্যারের উপর নিম্ন-স্তরের নিয়ন্ত্রণ, মাল্টিথ্রেডেড কমান্ড জেনারেশন এবং অনুমানযোগ্য পারফরম্যান্স প্রদান করে। Khronos Group (2026) অনুসারে, Vulkan আধুনিক Android ডিভাইসের 98% ক্ষেত্রে সমর্থিত।

মূল পয়েন্ট

  • Vulkan — হার্ডওয়্যারের উপর নিম্ন-স্তরের নিয়ন্ত্রণ সহ একটি ক্রস-প্ল্যাটফর্ম GPU API
  • VkDevice এবং VkQueue GPU-তে মাল্টিথ্রেডেড কমান্ড প্রেরণ সক্ষম করে
  • SPIR-V — GLSL এবং HLSL থেকে কম্পাইল করা একটি ইউনিভার্সাল বাইনারি শেডার ফরম্যাট
  • Vulkan Memory Allocator স্পষ্ট GPU মেমরি বরাদ্দ পরিচালনা করে
  • Vulkan Ray Tracing (VK_KHR_ray_tracing) হার্ডওয়্যার-ত্বরিত রে ট্রেসিং সমর্থন করে

Vulkan কী?

Vulkan হল একটি নিম্ন-স্তরের, ক্রস-প্ল্যাটফর্ম API যা গ্রাফিক্স প্রসেসিং ইউনিটের সাথে কাজ করার জন্য, প্রথম 2016 সালে Khronos Group দ্বারা প্রকাশিত। Vulkan OpenGL-এর উত্তরসূরি, যা উল্লেখযোগ্যভাবে কম CPU ওভারহেড, অনুমানযোগ্য পারফরম্যান্স এবং মাল্টিথ্রেডেড কমান্ড জেনারেশনের ক্ষমতা প্রদান করে।

OpenGL-এর বিপরীতে, যেখানে ড্রাইভার CPU-তে ভ্যালিডেশন এবং সিঙ্ক্রোনাইজেশন করে, Vulkan রিসোর্স ম্যানেজমেন্ট ডেভেলপারের ওপর ছেড়ে দেয়। মেমরি বরাদ্দ, সেমাফোর এবং ব্যারিয়ারের মাধ্যমে সিঙ্ক্রোনাইজেশন, পাইপলাইন তৈরি — এই সব স্পষ্টভাবে নিয়ন্ত্রিত হয়। এই পদ্ধতি CPU-বাউন্ড পরিস্থিতিতে 50% পর্যন্ত পারফরম্যান্স উন্নতি প্রদান করে।

Vulkan Windows, Linux, Android, iOS (MoltenVK-এর মাধ্যমে), macOS (MoltenVK), Nintendo Switch এবং কনসোলে সমর্থিত। Khronos Group (2026) অনুসারে, APIটি NVIDIA, AMD, Intel, Qualcomm (Adreno), ARM (Mali) এবং Apple (Metal স্তরের মাধ্যমে) থেকে GPU সম্বলিত ডিভাইসে চলে। Vulkan 1.4 (2026) Mesh Shaders এবং Video Encode API-র জন্য সমর্থন যুক্ত করেছে।

Vulkan-এর ইতিহাস

মূলত, Vulkan কোডনেম “glNext” — OpenGL-এর উত্তরসূরি — হিসেবে বিকশিত হয়েছিল। Vulkan 1.0 (2016) স্পষ্ট মেমরি ম্যানেজমেন্ট, SPIR-V শেডার এবং মাল্টিথ্রেডেড কিউ সহ একটি মৌলিক API প্রদান করে। Vulkan 1.1 (2018) Subgroup Operations এবং 16-বিট টাইপের সমর্থন যুক্ত করে। Vulkan 1.2 (2020) Buffer Device Address এবং Timeline Semaphores প্রবর্তন করে।

Vulkan 1.3 (2022) Dynamic Rendering এবং Graphics Pipeline Library-কে মানসম্মত করে। Vulkan 1.4 (2026) Mesh Shaders-এর সমর্থন বাধ্যতামূলক করে এবং H.264/HEVC/AV1-এর হার্ডওয়্যার এনকোডিংয়ের জন্য Video Encode/Decode API যুক্ত করে। Khronos (2026) অনুসারে, Vulkan 1.4 সব নতুন NVIDIA RTX 50xx, AMD RX 9000 এবং Intel Arc B-সিরিজ GPU-তে সমর্থিত।

Vulkan আর্কিটেকচার: ডিভাইস এবং কিউ

Vulkan আর্কিটেকচার হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HW লেয়ার)-এর ওপর নির্মিত। অ্যাপ্লিকেশনটি একটি লজিক্যাল ডিভাইস (VkDevice)-এর মাধ্যমে একটি ফিজিক্যাল ডিভাইস (VkPhysicalDevice)-এর সাথে ইন্টারঅ্যাক্ট করে। কমান্ডগুলো কিউ (VkQueue)-তে প্রেরণ করা হয়, প্রতিটি একটি নির্দিষ্ট কিউ পরিবারের (graphics, compute, transfer) অন্তর্গত।

VkInstance, VkDevice এবং VkQueue

VkInstance হল মূল Vulkan অবজেক্ট, যা ভ্যালিডেশন লেয়ার এবং এক্সটেনশন সম্পর্কে তথ্য সংরক্ষণ করে। VkPhysicalDevice ফিজিক্যাল GPU-কে প্রতিনিধিত্ব করে এবং এর বৈশিষ্ট্য, মেমরি হিপ এবং কিউ পরিবার কোয়েরি করার অনুমতি দেয়। VkDevice হল স্পষ্টভাবে অনুরোধ করা কিউ এবং এক্সটেনশন সহ একটি লজিক্যাল ডিভাইস।

cpp
// একটি Vulkan লজিক্যাল ডিভাইস তৈরি করা
VkDeviceCreateInfo devInfo {};
devInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
devInfo.queueCreateInfoCount = 1;
 
float queuePriority = 1.0f;
VkDeviceQueueCreateInfo queueInfo {};
queueInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queueInfo.queueFamilyIndex = 0;
queueInfo.queueCount = 1;
queueInfo.pQueuePriorities = &queuePriority;
devInfo.pQueueCreateInfos = &queueInfo;
 
VkDevice device;
vkCreateDevice(physicalDevice, &devInfo,
    nullptr, &device);
 
VkQueue queue;
vkGetDeviceQueue(device, 0, 0, &queue);

vkCreateDevice ফাংশন নির্দিষ্ট কিউ সহ একটি লজিক্যাল ডিভাইস তৈরি করে। VkQueue হল কমান্ড প্রেরণের জন্য একটি কিউ হ্যান্ডল। একটি একক কিউ গ্রাফিক্স, কম্পিউট এবং কপির জন্য ব্যবহার করা যেতে পারে যদি সংশ্লিষ্ট ফ্ল্যাগগুলো কিউ পরিবার দ্বারা সমর্থিত হয়। কিউ প্রায়োরিটি (0.0–1.0) প্রতিযোগিতায় এক্সিকিউশন অর্ডারকে প্রভাবিত করে।

VkMemory এবং VkBuffer — মেমরি ম্যানেজমেন্ট

Vulkan-এ, মেমরি স্পষ্টভাবে VkDeviceMemory-এর মাধ্যমে বরাদ্দ করা হয়। ডেভেলপার ফিজিক্যাল ডিভাইস থেকে মেমরি টাইপ (HOST_VISIBLE, DEVICE_LOCAL) কোয়েরি করে এবং ব্লক বরাদ্দ করে। বাফার (VkBuffer) এবং টেক্সচার (VkImage)-এর নিজস্ব মেমরি নেই — এগুলি vkBindBufferMemory-এর মাধ্যমে বরাদ্দ করা ব্লকের সাথে আবদ্ধ হয়।

Vulkan Memory Allocator (VMA) হল AMD-এর একটি লাইব্রেরি যা মেমরি ম্যানেজমেন্ট সহজ করে। VMA স্বয়ংক্রিয়ভাবে ছোট বরাদ্দগুলোকে বড় ব্লকে গ্রুপ করে, ডিফ্র্যাগমেন্টেশন পরিচালনা করে এবং উপযুক্ত মেমরি টাইপ নির্বাচন করে। AMD (2025) অনুসারে, VMA ম্যানুয়াল ম্যানেজমেন্টের তুলনায় মেমরি বরাদ্দের সংখ্যা 50–100 গুণ কমিয়ে দেয়।

VkCommandPool এবং VkCommandBuffer

VkCommandPool কমান্ড বাফারের জন্য মেমরি পরিচালনা করে। বাফার (VkCommandBuffer) CPU-তে রেকর্ড করা হয় এবং vkQueueSubmit-এর মাধ্যমে GPU-তে প্রেরণ করা হয়। Vulkan প্রাথমিক এবং মাধ্যমিক বাফার সমর্থন করে: প্রাথমিক সরাসরি প্রেরণ করা হয়, মাধ্যমিক মাল্টিথ্রেডেড কমান্ড নির্মাণের জন্য প্রাথমিক থেকে কল করা যেতে পারে।

কমান্ড রেকর্ডিং vkBeginCommandBuffer দিয়ে শুরু হয় এবং vkEndCommandBuffer-এ শেষ হয়। তাদের মধ্যে, রেন্ডারিং কমান্ড রেকর্ড করা হয়: vkCmdDraw, vkCmdDispatch, vkCmdCopyBuffer এবং সিঙ্ক্রোনাইজেশনের জন্য vkCmdPipelineBarrier। প্রতিটি ফ্রেমের জন্য পুল রিসেটের মাধ্যমে পুলিং সহ একটি নতুন কমান্ড বাফার তৈরি করা হয়।

Vulkan-এর মাধ্যমে রেন্ডারিং: পাইপলাইন এবং কমান্ড

Vulkan-এ রেন্ডারিং পাইপলাইন (VkPipeline)-এর মাধ্যমে সংগঠিত হয়। OpenGL-এর বিপরীতে, যেখানে পাইপলাইন স্টেট গ্লোবালি পরিবর্তিত হয়, Vulkan VkPipeline ব্যবহার করে — একটি প্রাক-কম্পাইল করা পাইপলাইন যা সব ধাপ অন্তর্ভুক্ত করে: ভার্টেক্স ইনপুট, শেডার, রাস্টারাইজেশন, depth-stencil এবং ব্লেন্ডিং।

VkPipeline — রেন্ডারিং পাইপলাইন

VkGraphicsPipelineCreateInfo সম্পূর্ণ পাইপলাইন বর্ণনা করে: ভার্টেক্স এবং ফ্র্যাগমেন্ট শেডার, টোপোলজি (triangle list, triangle strip), রাস্টারাইজার (fill mode, cull mode), মাল্টিস্যাম্পলিং, depth-stencil টেস্ট, ব্লেন্ডিং এবং ভিউপোর্ট সেটিংস। পাইপলাইন একবার তৈরি হয় এবং পুনরায় ব্যবহার করা হয় — স্টেট পরিবর্তনের জন্য নতুন পাইপলাইন বা ডায়নামিক স্টেট প্রয়োজন।

cpp
// গ্রাফিক্স পাইপলাইন সেট আপ করা
VkGraphicsPipelineCreateInfo pipelineInfo {};
pipelineInfo.sType =
    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
pipelineInfo.stageCount = 2;
pipelineInfo.pStages = shaderStages;
pipelineInfo.pVertexInputState =&;
    vertexInputState;
pipelineInfo.pRasterizationState =&;
    rasterState;
 
VkPipeline graphicsPipeline;
vkCreateGraphicsPipelines(device,
    VK_NULL_HANDLE, 1, &pipelineInfo,
    nullptr, &graphicsPipeline);

ডায়নামিক স্টেট (VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR) নতুন পাইপলাইন তৈরি না করেই নির্দিষ্ট প্যারামিটার পরিবর্তন করতে দেয়। Vulkan 1.4 চলাকালীন blend constants, depth bias এবং টোপোলজি পরিচালনার জন্য Dynamic State 3 (VK_EXT_extended_dynamic_state_3)-এর সমর্থন বাধ্যতামূলক করেছে, যা প্রকল্পে পাইপলাইনের সংখ্যা হ্রাস করে।

Render Pass এবং Dynamic Rendering

VkRenderPass রেন্ডারিং পাসের কাঠামো বর্ণনা করে: কোন অ্যাটাচমেন্ট ব্যবহার করা হয়, সেগুলি কীভাবে ক্লিয়ার এবং লোড করা হয়। ডায়নামিক রেন্ডারিং (VK_KHR_dynamic_rendering, Vulkan 1.4 থেকে বাধ্যতামূলক) প্রক্রিয়াটি সহজ করে: রেন্ডার পাস কোনও পূর্ব VkRenderPass অবজেক্ট ছাড়াই কমান্ড বাফারে vkCmdBeginRendering-এর মাধ্যমে চলাকালীন তৈরি হয়।

Khronos (2026) অনুসারে, Dynamic Rendering Vulkan ইনিশিয়ালাইজেশন কোড 30–40% হ্রাস করে এবং পাইপলাইন পারমিউটেশনের সংখ্যা কমায়। জটিল ডিফার্ড রেন্ডারিং টেকনিকের (Deferred Shading) জন্য, G-buffer এবং আলোর জন্য একাধিক সাবপাস সহ ক্লাসিক VkRenderPass এখনও সুবিধাজনক।

Vulkan-এ শেডার: SPIR-V এবং GLSL

SPIR-V হল Vulkan-এ একটি ইউনিভার্সাল বাইনারি শেডার ফরম্যাট, যা Khronos দ্বারা তৈরি। শেডার GLSL, HLSL বা Zink ভাষায় লেখা যেতে পারে এবং glslangValidator, dxc বা Google Shaderc-এর মাধ্যমে SPIR-V-তে কম্পাইল করা যেতে পারে। Vulkan সোর্স কোডে শেডার গ্রহণ করে না — শুধুমাত্র বাইনারি SPIR-V।

Vulkan-এ GLSL

Vulkan-এর জন্য GLSL স্ট্যান্ডার্ড OpenGL GLSL থেকে ভিন্ন। বিল্ট-ইন ভেরিয়েবলের পরিবর্তে স্পষ্ট set এবং binding নম্বর সহ ব্লক (layout) ব্যবহার করা হয়। ভার্টেক্স অ্যাট্রিবিউট location-এর মাধ্যমে নির্দিষ্ট করা হয়, ইউনিফর্ম ইউনিফর্ম ব্লক বা বাফারের মাধ্যমে। Push constants (128 বাইট পর্যন্ত) বাফার ছাড়াই দ্রুত ডেটা স্থানান্তরের জন্য উপলব্ধ।

glsl
// Vulkan/GLSL ভার্টেক্স শেডার
#version 460
 
layout(location = 0) in vec3 inPosition;
layout(location = 1) in vec3 inNormal;
 
layout(binding = 0, set = 0)
uniform UniformBufferObject {
    mat4 modelViewProjection;
} ubo;
 
layout(location = 0) out vec3 outNormal;
 
void main() {
    gl_Position = ubo.modelViewProjection *
        vec4(inPosition, 1.0);
    outNormal = inNormal;
}

কোয়ালিফায়ার layout(set = N, binding = M) Vulkan GLSL এবং OpenGL-এর মধ্যে মূল পার্থক্য। Set একটি ডেসক্রিপ্টর সেট (VkDescriptorSet)-এর সাথে মিলে যায়, binding একটি নির্দিষ্ট রিসোর্সের (বাফার, টেক্সচার, স্যাম্পলার) সাথে মিলে যায়। সেটে বিভাজন পৃথক রিসোর্স বাঁধাই না করেই draw calls-এর মধ্যে রিসোর্স সেট দক্ষতার সাথে পরিবর্তন করতে দেয়।

ডেসক্রিপ্টর এবং ডেসক্রিপ্টর সেট

VkDescriptorSet হল শেডারের সাথে আবদ্ধ রিসোর্সের (বাফার, টেক্সচার, স্যাম্পলার) একটি গ্রুপ। ডেসক্রিপ্টর লেআউট রিসোর্স টাইপ এবং তাদের binding নম্বর বর্ণনা করে। ডেসক্রিপ্টর সেট vkUpdateDescriptorSets-এর মাধ্যমে আপডেট করা হয় এবং draw calls-এর মধ্যে পুনরায় ব্যবহার করা হয়। Vulkan 1.4 GPU থেকে ডেসক্রিপ্টরে সরাসরি অ্যাক্সেসের জন্য VK_EXT_descriptor_buffer সমর্থন করে।

Push Constants হল ডেসক্রিপ্টর তৈরি না করেই শেডারে ছোট ডেটা ভলিউম (128 বাইট পর্যন্ত) দ্রুত স্থানান্তরের একটি মেকানিজম। Push constants কমান্ড বাফারে vkCmdPushConstants-এর মাধ্যমে সেট করা হয়। Khronos (2025) অনুসারে, ইউনিফর্ম বাফারের পরিবর্তে push constants ব্যবহার করলে প্রতি ফ্রেমে 10 হাজারের বেশি draw calls-এর হারে CPU ওভারহেড 10–15% হ্রাস পায়।

বিভিন্ন প্ল্যাটফর্মে Vulkan

Vulkan হল একমাত্র API যা সব প্রধান প্ল্যাটফর্মে কাজ করে: Windows (অফিসিয়াল ICD ড্রাইভারের মাধ্যমে), Linux (RADV, AMDVLK, NVIDIA), Android (Vulkan 1.3+, Android 10 থেকে বাধ্যতামূলক), এবং Apple ডিভাইসে MoltenVK-এর মাধ্যমে — Vulkan থেকে Metal-এ অনুবাদ স্তর।

Android-এ Vulkan

Android-এ, Vulkan Android 10 এবং নতুনের জন্য বাধ্যতামূলক। Google নতুন প্রকল্পের জন্য Vulkan সুপারিশ করে, বিশেষ করে উচ্চ-পারফরম্যান্স গেম এবং ARCore-এর মাধ্যমে AR অ্যাপ্লিকেশন। Qualcomm Adreno এবং ARM Mali Adreno 8xx এবং Mali-G720-এ হার্ডওয়্যার রে ট্রেসিং সহ সম্পূর্ণ Vulkan 1.3 সমর্থন প্রদান করে।

Google (2026) অনুসারে, Android 10+ সহ 98% Android ডিভাইস Vulkan সমর্থন করে। পশ্চাদগামী সামঞ্জস্যের জন্য, ANGLE (Almost Native Graphics Layer Engine) উপলব্ধ, যা OpenGL ES-কে Vulkan-এ অনুবাদ করে। এটি পুরোনো OpenGL অ্যাপ্লিকেশনকে 20% পর্যন্ত পারফরম্যান্স উন্নতি সহ Vulkan ড্রাইভারে চালানোর অনুমতি দেয়।

Android-এ, Vulkan শক্তি দক্ষতার জন্য উচ্চ অগ্রাধিকার পায়: Vulkan অ্যাপ্লিকেশন Adreno 7xx+ সম্বলিত ডিভাইসে একই গ্রাফিক্স লোডের অধীনে OpenGL ES-এর তুলনায় 25–40% কম শক্তি খরচ করে। এটি Vulkan-কে মোবাইল ডিভাইসে গেমের জন্য পছন্দের API করে তোলে।

MoltenVK-এর মাধ্যমে Apple-এ Vulkan

MoltenVK হল Metal-এর ওপর Vulkan-এর একটি বাস্তবায়ন, যা LunarG এবং Valve দ্বারা তৈরি। MoltenVK Vulkan API কলগুলিকে Metal-এ অনুবাদ করে, iOS এবং macOS-এ Vulkan 1.2 সমর্থন করে। MoltenVK-এর পারফরম্যান্স নেটিভ Metal-এর কাছাকাছি: অনুবাদ ওভারহেড পরিস্থিতির উপর নির্ভর করে 5–15%।

LunarG (2025) অনুসারে, MoltenVK CrossOver (Mac-এর জন্য Wine)-এ macOS-এ Windows গেম চালানোর জন্য ব্যবহৃত হয়। macOS-এ Dota 2, Civilization VI এবং Baldur's Gate 3 M3/M4-তে 30–60 FPS পারফরম্যান্স সহ MoltenVK-এর মাধ্যমে চলে। MoltenVK পারফরম্যান্স উন্নতির জন্য MetalFX আপস্কেলিং সমর্থন করে।

Vulkan Ray Tracing

VK_KHR_ray_tracing হল Vulkan-এ হার্ডওয়্যার রে ট্রেসিংয়ের জন্য একটি এক্সটেনশন, Vulkan 1.4 থেকে বাধ্যতামূলক। RT কোর সহ GPU-তে সমর্থিত: NVIDIA RTX 20xx/30xx/40xx/50xx, AMD RX 6000+/9000, Intel Arc A/B। Vulkan RT VkAccelerationStructure, VkRayTracingPipeline এবং Shader Binding Table প্রদান করে।

Vulkan Ray Tracing রিফ্লেকশন, শ্যাডো, অ্যাম্বিয়েন্ট অক্লুজন এবং রিয়েল-টাইমে গ্লোবাল ইলুমিনেশন সমর্থন করে। Khronos (2026) অনুসারে, NVIDIA RTX 5090-তে, Vulkan Ray Tracing রেফারেন্স কোয়ালিটি দৃশ্যে 100 Giga rays/s পর্যন্ত অর্জন করে। পোর্টেবল প্ল্যাটফর্মের জন্য, Vulkan RT ব্লার রিডাকশন এবং টেম্পোরাল ডিনয়জিং-এর মাধ্যমে স্কেল করে।

সচরাচর জিজ্ঞাসিত প্রশ্ন

Vulkan কী এবং এটি OpenGL থেকে কীভাবে আলাদা?

Vulkan হল একটি নিম্ন-স্তরের ক্রস-প্ল্যাটফর্ম GPU API যার স্পষ্ট রিসোর্স ম্যানেজমেন্ট রয়েছে। OpenGL-এর বিপরীতে, এটি মেমরি, সিঙ্ক্রোনাইজেশন এবং মাল্টিথ্রেডিং-এর উপর নিয়ন্ত্রণ প্রদান করে, CPU-বাউন্ড পরিস্থিতিতে 50% পর্যন্ত পারফরম্যান্স উন্নতি প্রদান করে।

Vulkan কোন প্ল্যাটফর্মে কাজ করে?

Vulkan Windows, Linux, Android, Nintendo Switch-এ এবং iOS/macOS-এ MoltenVK (Metal-এ অনুবাদ)-এর মাধ্যমে কাজ করে। NVIDIA, AMD, Intel, Qualcomm, ARM এবং Apple (MoltenVK-এর মাধ্যমে) GPU-তে সমর্থিত।

Vulkan-এ SPIR-V কী?

SPIR-V হল Vulkan-এর জন্য একটি ইউনিভার্সাল বাইনারি শেডার ফরম্যাট। শেডার GLSL বা HLSL-এ লেখা হয়, SPIR-V-তে কম্পাইল করা হয় এবং Vulkan-এ ফিড করা হয়। এটি শেডার ভাষার স্বাধীনতা এবং অনুমানযোগ্য কম্পাইলেশন পারফরম্যান্স নিশ্চিত করে।

Vulkan কি রে ট্রেসিং সমর্থন করে?

হ্যাঁ, VK_KHR_ray_tracing-এর মাধ্যমে — Vulkan 1.4 থেকে একটি বাধ্যতামূলক এক্সটেনশন। RT কোর সহ GPU-তে সমর্থিত: NVIDIA RTX, AMD RX 6000+, Intel Arc। Vulkan RT BVH ত্বরণ কাঠামো, Shader Binding Table এবং হার্ডওয়্যার রে ইন্টারসেকশন প্রদান করে।

Vulkan ব্যবহার শুরু করা কি কঠিন?

প্রবেশের বাধা স্পষ্ট মেমরি ম্যানেজমেন্ট, সিঙ্ক্রোনাইজেশন এবং পাইপলাইনের কারণে OpenGL বা DirectX 11-এর থেকে উচ্চতর। Khronos Vulkan Tutorial, Vulkan Samples এবং Vulkan Guide প্রদান করে। প্রথম ত্রিভুজের জন্য প্রায় 500 লাইন কোড প্রয়োজন।

সারসংক্ষেপ

  • Vulkan — Khronos Group-এর একটি ক্রস-প্ল্যাটফর্ম নিম্ন-স্তরের GPU API
  • স্পষ্ট ব্যবস্থাপনা মেমরি, সিঙ্ক্রোনাইজেশন এবং কিউ-এর CPU ওভারহেড হ্রাস করে
  • VkPipeline — গ্রাফিক্স এবং কম্পিউটের জন্য প্রাক-কম্পাইল করা পাইপলাইন
  • SPIR-V — GLSL এবং HLSL থেকে কম্পাইল করা বাইনারি শেডার ফরম্যাট
  • Dynamic Rendering (Vulkan 1.4) VkRenderPass ছাড়াই Render Pass তৈরি সহজ করে
  • MoltenVK Metal-এর মাধ্যমে iOS এবং macOS-এ Vulkan সক্ষম করে
  • Vulkan 1.4 Mesh Shaders, Video Encode API এবং বাধ্যতামূলক রে ট্রেসিং যুক্ত করেছে

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন