WebGPU.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. if ( self.GPUShaderStage === undefined ) {
  2. self.GPUShaderStage = { VERTEX: 1, FRAGMENT: 2, COMPUTE: 4 };
  3. }
  4. // statics
  5. let isAvailable = navigator.gpu !== undefined;
  6. if ( typeof window !== 'undefined' && isAvailable ) {
  7. isAvailable = await navigator.gpu.requestAdapter();
  8. }
  9. class WebGPU {
  10. static isAvailable() {
  11. return Boolean( isAvailable );
  12. }
  13. static getStaticAdapter() {
  14. return isAvailable;
  15. }
  16. static getErrorMessage() {
  17. const message = 'Your browser does not support <a href="https://gpuweb.github.io/gpuweb/" style="color:blue">WebGPU</a> yet';
  18. const element = document.createElement( 'div' );
  19. element.id = 'webgpumessage';
  20. element.style.fontFamily = 'monospace';
  21. element.style.fontSize = '13px';
  22. element.style.fontWeight = 'normal';
  23. element.style.textAlign = 'center';
  24. element.style.background = '#fff';
  25. element.style.color = '#000';
  26. element.style.padding = '1.5em';
  27. element.style.maxWidth = '400px';
  28. element.style.margin = '5em auto 0';
  29. element.innerHTML = message;
  30. return element;
  31. }
  32. }
  33. export default WebGPU;