В
Windows, Metal ನಲ್ಲಿ Direct3D 3 ನಂತಹ ಆಧುನಿಕ ಸಿಸ್ಟಮ್ ಗ್ರಾಫಿಕ್ಸ್ API ಗಳು ಒದಗಿಸಿದ 12D ಗ್ರಾಫಿಕ್ಸ್ ತಂತ್ರಜ್ಞಾನಗಳು ಮತ್ತು ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹತೋಟಿಗೆ ತರಲು ವೆಬ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಾಗಿ ಸುರಕ್ಷಿತ, ಬಳಕೆದಾರ ಸ್ನೇಹಿ, ಪೋರ್ಟಬಲ್ ಮತ್ತು ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುವುದು WebGPU ನ ಪ್ರಮುಖ ಗುರಿಯಾಗಿದೆ. MacOS ನಲ್ಲಿ, ಮತ್ತು Linux ನಲ್ಲಿ Vulkan. ಕಲ್ಪನಾತ್ಮಕವಾಗಿ, ವೆಬ್ಜಿಪಿಯು ವೆಬ್ಜಿಎಲ್ನಿಂದ ವಲ್ಕನ್ ಓಪನ್ಜಿಎಲ್ನಿಂದ ಭಿನ್ನವಾಗಿದೆ ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ ಇದು ನಿರ್ದಿಷ್ಟ ಗ್ರಾಫಿಕ್ಸ್ ಎಪಿಐ ಅನ್ನು ಆಧರಿಸಿಲ್ಲ, ಆದರೆ ಸಾರ್ವತ್ರಿಕ ಪದರವಾಗಿದ್ದು ಅದು ಸಾಮಾನ್ಯವಾಗಿ ವಲ್ಕನ್ನಲ್ಲಿ ಕಂಡುಬರುವ ಅದೇ ಕಡಿಮೆ-ಮಟ್ಟದ ಮೂಲಗಳನ್ನು ಬಳಸುತ್ತದೆ, ಮೆಟಲ್ ಮತ್ತು ಡೈರೆಕ್ಟ್3ಡಿ.
ವೆಬ್ಜಿಪಿಯು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಸಂಘಟನೆಯ ಮೇಲೆ ಕೆಳಮಟ್ಟದ ನಿಯಂತ್ರಣವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಿಕೆ ಮತ್ತು GPU ಗೆ ಆಜ್ಞೆಗಳ ರವಾನೆ, ಸಂಬಂಧಿತ ಸಂಪನ್ಮೂಲಗಳು, ಮೆಮೊರಿ, ಬಫರ್ಗಳು, ಟೆಕ್ಸ್ಚರ್ ಆಬ್ಜೆಕ್ಟ್ಗಳು ಮತ್ತು ಕಂಪೈಲ್ ಮಾಡಿದ ಗ್ರಾಫಿಕ್ಸ್ ಶೇಡರ್ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಈ ವಿಧಾನವು ಓವರ್ಹೆಡ್ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ಮತ್ತು GPU ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಗ್ರಾಫಿಕ್ಸ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಾಧಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ವೆಬ್ಜಿಪಿಯು ವೆಬ್ಗಾಗಿ ಪೂರ್ಣ ಪ್ರಮಾಣದ ಸಂಕೀರ್ಣ 3D ಪ್ರಾಜೆಕ್ಟ್ಗಳನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಅದು ವಲ್ಕನ್, ಮೆಟಲ್ ಅಥವಾ ಡೈರೆಕ್ಟ್3D ಅನ್ನು ನೇರವಾಗಿ ಪ್ರವೇಶಿಸುವ ಸ್ವತಂತ್ರ ಪ್ರೋಗ್ರಾಂಗಳಿಗಿಂತ ಕೆಟ್ಟದ್ದಲ್ಲ, ಆದರೆ ನಿರ್ದಿಷ್ಟ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಿಗೆ ಸಂಬಂಧಿಸಿಲ್ಲ. ವೆಬ್ ಅಸೆಂಬ್ಲಿ ತಂತ್ರಜ್ಞಾನದ ಬಳಕೆಗೆ ಧನ್ಯವಾದಗಳು, ವೆಬ್ ತಂತ್ರಜ್ಞಾನಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸಾಮರ್ಥ್ಯವಿರುವ ರೂಪದಲ್ಲಿ ಸ್ಥಳೀಯ ಗ್ರಾಫಿಕ್ಸ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡುವಾಗ 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