W3C డ్రాఫ్ట్ WebGPU ప్రమాణాన్ని ఆవిష్కరించింది

W3C WebGPU మరియు WebGPU షేడింగ్ లాంగ్వేజ్ (WGSL) స్పెసిఫికేషన్‌ల యొక్క మొదటి చిత్తుప్రతులను విడుదల చేసింది, ఇది రెండరింగ్ మరియు కంప్యూటింగ్ వంటి GPU కార్యకలాపాలను నిర్వహించడానికి APIలను నిర్వచిస్తుంది, అలాగే GPUలో పనిచేసే ప్రోగ్రామ్‌లను వ్రాయడానికి షేడర్ భాషను నిర్వచిస్తుంది. సంభావితంగా Vulkan, Metal మరియు Direct3D 12 APIలను పోలి ఉంటుంది. Mozilla, Google, Apple మరియు Microsoft నుండి ఇంజనీర్‌లను కలిగి ఉన్న వర్కింగ్ గ్రూప్ ద్వారా స్పెసిఫికేషన్‌లు తయారు చేయబడ్డాయి.

సంభావితంగా, WebGPU WebGL నుండి వల్కాన్ గ్రాఫిక్స్ API ఎలా OpenGLకి భిన్నంగా ఉంటుందో అదే విధంగా విభిన్నంగా ఉంటుంది, కానీ ఇది ఒక నిర్దిష్ట గ్రాఫిక్స్ APIపై ఆధారపడి ఉండదు, కానీ వల్కాన్, మెటల్ మరియు లలో కనిపించే అదే తక్కువ-స్థాయి ఆదిమాలను ఉపయోగించే సార్వత్రిక పొర. డైరెక్ట్3D. WebGPU సంస్థపై తక్కువ-స్థాయి నియంత్రణతో JavaScript అప్లికేషన్‌లను అందిస్తుంది, GPUకి ఆదేశాలను ప్రాసెస్ చేయడం మరియు ప్రసారం చేయడం, అనుబంధిత వనరులు, మెమరీ, బఫర్‌లు, ఆకృతి వస్తువులు మరియు కంపైల్డ్ గ్రాఫిక్స్ షేడర్‌లను నిర్వహించడం. ఈ విధానం ఓవర్‌హెడ్ ఖర్చులను తగ్గించడం మరియు GPUతో పని చేసే సామర్థ్యాన్ని పెంచడం ద్వారా గ్రాఫిక్స్ అప్లికేషన్‌ల కోసం అధిక పనితీరును సాధించడానికి మిమ్మల్ని అనుమతిస్తుంది.

WebGPU వెబ్ కోసం సంక్లిష్టమైన 3D ప్రాజెక్ట్‌లను సృష్టించడం సాధ్యం చేస్తుంది, అవి వల్కాన్, మెటల్ లేదా డైరెక్ట్3డిని నేరుగా యాక్సెస్ చేసే స్వతంత్ర ప్రోగ్రామ్‌ల కంటే అధ్వాన్నంగా పని చేస్తాయి, కానీ నిర్దిష్ట ప్లాట్‌ఫారమ్‌లతో ముడిపడి ఉండవు. WebGPU వెబ్‌అసెంబ్లీకి సంకలనం చేయడం ద్వారా స్థానిక గ్రాఫిక్స్ ప్రోగ్రామ్‌లను వెబ్-ప్రారంభించబడిన రూపంలోకి పోర్ట్ చేయడానికి అదనపు సామర్థ్యాలను కూడా అందిస్తుంది. 3D గ్రాఫిక్స్‌తో పాటు, WebGPU GPUకి లెక్కలను ఆఫ్‌లోడ్ చేయడం మరియు షేడర్‌లను అమలు చేయడం వంటి సామర్థ్యాలను కూడా కలిగి ఉంటుంది.

WebGPU యొక్క ముఖ్య లక్షణాలు:

  • వనరుల యొక్క ప్రత్యేక నిర్వహణ, సన్నాహక పని మరియు GPUకి ఆదేశాలను ప్రసారం చేయడం (WebGLలో, ఒక వస్తువు ప్రతిదానికీ ఒకేసారి బాధ్యత వహిస్తుంది). మూడు వేర్వేరు సందర్భాలు అందించబడ్డాయి: అల్లికలు మరియు బఫర్‌ల వంటి వనరులను సృష్టించడానికి GPU పరికరం; రెండరింగ్ మరియు గణన దశలతో సహా వ్యక్తిగత ఆదేశాలను ఎన్‌కోడింగ్ చేయడానికి GPUCommandEncoder; GPU కమాండ్‌బఫర్‌ను GPU రన్ క్యూకి పంపండి. ఫలితం ఒకటి లేదా అంతకంటే ఎక్కువ కాన్వాస్ మూలకాలతో అనుబంధించబడిన ప్రాంతంలో అందించబడుతుంది లేదా అవుట్‌పుట్ లేకుండా ప్రాసెస్ చేయబడుతుంది (ఉదాహరణకు, గణన పనులను అమలు చేస్తున్నప్పుడు). దశల విభజన వివిధ థ్రెడ్‌లపై అమలు చేయగల వివిధ హ్యాండ్లర్‌లుగా వనరుల సృష్టి మరియు ప్రొవిజనింగ్ కార్యకలాపాలను వేరు చేయడం సులభం చేస్తుంది.
  • రాష్ట్రాలను నిర్వహించడానికి భిన్నమైన విధానం. WebGPU రెండు ఆబ్జెక్ట్‌లను అందిస్తుంది - GPURenderPipeline మరియు GPUComputePipeline, ఇది డెవలపర్ ద్వారా ముందే నిర్వచించబడిన వివిధ స్థితులను మిళితం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, దీని వలన షేడర్‌లను రీకంపైల్ చేయడం వంటి అదనపు పనిలో వనరులను వృథా చేయకుండా బ్రౌజర్‌ని అనుమతిస్తుంది. మద్దతు ఉన్న రాష్ట్రాలు: షేడర్‌లు, వెర్టెక్స్ బఫర్ మరియు అట్రిబ్యూట్ లేఅవుట్‌లు, స్టిక్కీ గ్రూప్ లేఅవుట్‌లు, బ్లెండింగ్, డెప్త్ మరియు ప్యాటర్న్‌లు, పోస్ట్-రెండర్ అవుట్‌పుట్ ఫార్మాట్‌లు.
  • వల్కాన్ యొక్క వనరుల సమూహ సాధనాల మాదిరిగానే బైండింగ్ మోడల్. సమూహాలలో వనరులను సమూహపరచడానికి, WebGPU GPUBindGroup ఆబ్జెక్ట్‌ను అందిస్తుంది, ఇది ఆదేశాలను వ్రాసే సమయంలో, షేడర్‌లలో ఉపయోగించడానికి ఇతర సారూప్య వస్తువులతో అనుబంధించబడుతుంది. అటువంటి సమూహాలను సృష్టించడం వలన డ్రైవర్ ముందుగానే అవసరమైన సన్నాహక చర్యలను నిర్వహించడానికి అనుమతిస్తుంది మరియు డ్రా కాల్‌ల మధ్య వనరుల బైండింగ్‌లను చాలా వేగంగా మార్చడానికి బ్రౌజర్‌ని అనుమతిస్తుంది. GPUBindGroupLayout ఆబ్జెక్ట్‌ని ఉపయోగించి రిసోర్స్ బైండింగ్‌ల లేఅవుట్‌ని ముందే నిర్వచించవచ్చు.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి