В
Windows, Metalలో Direct3D 3 వంటి ఆధునిక సిస్టమ్ గ్రాఫిక్స్ APIల ద్వారా అందించబడిన 12D గ్రాఫిక్స్ సాంకేతికతలు మరియు సామర్థ్యాలను ఉపయోగించుకోవడానికి వెబ్ ప్లాట్ఫారమ్ కోసం సురక్షితమైన, వినియోగదారు-స్నేహపూర్వక, పోర్టబుల్ మరియు అధిక-పనితీరు గల ప్రోగ్రామింగ్ ఇంటర్ఫేస్ను అందించడం WebGPU యొక్క ముఖ్య లక్ష్యం. MacOSలో మరియు Linuxలో Vulkan. సంభావితంగా, WebGPU WebGL నుండి వల్కన్ OpenGL నుండి భిన్నంగా ఉంటుంది మరియు అదే సమయంలో ఇది నిర్దిష్ట గ్రాఫిక్స్ APIపై ఆధారపడి ఉండదు, అయితే ఇది సాధారణంగా వల్కాన్లో కనిపించే అదే తక్కువ-స్థాయి ఆదిమాలను ఉపయోగించే సార్వత్రిక పొర, మెటల్ మరియు Direct3D.
WebGPU సంస్థ, ప్రాసెసింగ్ మరియు GPUకి ఆదేశాలను ప్రసారం చేయడం, అనుబంధిత వనరులు, మెమరీ, బఫర్లు, ఆకృతి వస్తువులు మరియు కంపైల్డ్ గ్రాఫిక్స్ షేడర్లను నిర్వహించడంపై దిగువ-స్థాయి నియంత్రణతో జావాస్క్రిప్ట్ అప్లికేషన్లను అందిస్తుంది. ఈ విధానం ఓవర్హెడ్ ఖర్చులను తగ్గించడం మరియు GPUతో పని చేసే సామర్థ్యాన్ని పెంచడం ద్వారా గ్రాఫిక్స్ అప్లికేషన్ల కోసం అధిక పనితీరును సాధించడానికి మిమ్మల్ని అనుమతిస్తుంది.
వల్కాన్, మెటల్ లేదా డైరెక్ట్3డిని నేరుగా యాక్సెస్ చేసే స్వతంత్ర ప్రోగ్రామ్ల కంటే అధ్వాన్నంగా పని చేసే వెబ్ కోసం పూర్తి స్థాయి సంక్లిష్టమైన 3D ప్రాజెక్ట్లను రూపొందించడం WebGPU సాధ్యం చేస్తుంది, కానీ నిర్దిష్ట ప్లాట్ఫారమ్లతో ముడిపడి ఉండదు. WebGPU వెబ్అసెంబ్లీ టెక్నాలజీని ఉపయోగించడం ద్వారా స్థానిక గ్రాఫిక్స్ ప్రోగ్రామ్లను వెబ్-ప్రారంభించబడిన రూపంలోకి పోర్ట్ చేసేటప్పుడు అదనపు సామర్థ్యాలను కూడా అందిస్తుంది. 3D గ్రాఫిక్స్తో పాటు, WebGPU GPUకి లెక్కలను ఆఫ్లోడ్ చేయడం మరియు షేడర్ అభివృద్ధికి మద్దతు ఇవ్వడం వంటి సామర్థ్యాలను కూడా కవర్ చేస్తుంది. షేడర్స్
WebGPU వనరుల ప్రత్యేక నిర్వహణ, సన్నాహక పని మరియు GPUకి ఆదేశాల ప్రసారాన్ని ఉపయోగిస్తుంది (WebGLలో, ఒక వస్తువు అన్నింటికీ ఒకేసారి బాధ్యత వహిస్తుంది). మూడు వేర్వేరు సందర్భాలు అందించబడ్డాయి:
అల్లికలు మరియు బఫర్ల వంటి వనరులను సృష్టించడానికి GPU పరికరం; రెండరింగ్ మరియు గణన దశలతో సహా వ్యక్తిగత ఆదేశాలను ఎన్కోడింగ్ చేయడానికి GPUCommandEncoder; GPUలో అమలు చేయడానికి GPUCommandBuffer క్యూలో ఉంచబడుతుంది. ఫలితం ఒకటి లేదా అంతకంటే ఎక్కువ కాన్వాస్ మూలకాలతో అనుబంధించబడిన ప్రాంతంలో అందించబడుతుంది లేదా అవుట్పుట్ లేకుండా ప్రాసెస్ చేయబడుతుంది (ఉదాహరణకు, కంప్యూట్ టాస్క్లను అమలు చేస్తున్నప్పుడు). దశలను వేరు చేయడం వలన వివిధ థ్రెడ్లపై అమలు చేయగల వివిధ హ్యాండ్లర్లుగా వనరుల సృష్టి మరియు తయారీ కార్యకలాపాలను వేరు చేయడం సులభం అవుతుంది.
WebGPU మరియు WebGL మధ్య రెండవ వ్యత్యాసం రాష్ట్రాలను నిర్వహించడానికి భిన్నమైన విధానం. WebGPU రెండు ఆబ్జెక్ట్లను అందిస్తుంది - GPURenderPipeline మరియు GPUComputePipeline, ఇది డెవలపర్ ద్వారా ముందే నిర్వచించబడిన వివిధ స్థితులను కలపడానికి మిమ్మల్ని అనుమతిస్తుంది, ఇది షేడర్లను రీకంపైల్ చేయడం వంటి అదనపు పనిలో వనరులను వృథా చేయకుండా బ్రౌజర్ని అనుమతిస్తుంది. మద్దతు ఉన్న స్థితులలో ఇవి ఉన్నాయి: షేడర్లు, వెర్టెక్స్ బఫర్ మరియు అట్రిబ్యూట్ లేఅవుట్లు, స్టిక్కీ గ్రూప్ లేఅవుట్లు, బ్లెండింగ్, డెప్త్ మరియు ప్యాటర్న్లు మరియు పోస్ట్-రెండర్ అవుట్పుట్ ఫార్మాట్లు.
WebGPU యొక్క మూడవ లక్షణాన్ని బైండింగ్ మోడల్ అంటారు
వల్కాన్లో ఉన్న వనరుల సమూహ సాధనాలను గుర్తుకు తెస్తుంది.
వనరులను సమూహపరచడానికి, WebGPU GPUBindGroup ఆబ్జెక్ట్ను అందిస్తుంది, ఇది ఆదేశాలను వ్రాసేటప్పుడు షేడర్లలో ఉపయోగించడానికి ఇతర సారూప్య వస్తువులతో అనుబంధించబడుతుంది. అటువంటి సమూహాలను సృష్టించడం వలన డ్రైవర్ ముందుగానే అవసరమైన సన్నాహక చర్యలను నిర్వహించడానికి అనుమతిస్తుంది మరియు డ్రా కాల్ల మధ్య వనరుల బైండింగ్లను చాలా వేగంగా మార్చడానికి బ్రౌజర్ని అనుమతిస్తుంది. GPUBindGroupLayout ఆబ్జెక్ట్ని ఉపయోగించి రిసోర్స్ బైండింగ్ల లేఅవుట్ని ముందే నిర్వచించవచ్చు.
Firefoxలో, about:configలో WebGPUని ప్రారంభించడానికి, “dom.webgpu.enabled” సెట్టింగ్ ఉంది. CanvasContext రెండరింగ్కు కూడా కంపోజిటింగ్ ప్రారంభించబడాలి
మూలం: opennet.ru