getGPUKnownDataDetails.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import {t} from 'sentry/locale';
  2. import formatMemory from './formatMemory';
  3. import {GPUData, GPUKnownDataType} from './types';
  4. type Output = {
  5. subject: string;
  6. value?: React.ReactNode;
  7. };
  8. type Props = {
  9. data: GPUData;
  10. type: GPUKnownDataType;
  11. };
  12. export function getGPUKnownDataDetails({data, type}: Props): Output | undefined {
  13. switch (type) {
  14. case GPUKnownDataType.NAME:
  15. return {
  16. subject: t('Name'),
  17. value: data.name,
  18. };
  19. case GPUKnownDataType.VERSION:
  20. return {
  21. subject: t('Version'),
  22. value: data.version,
  23. };
  24. case GPUKnownDataType.MEMORY:
  25. return {
  26. subject: t('Memory'),
  27. value: data.memory_size ? formatMemory(data.memory_size) : undefined,
  28. };
  29. case GPUKnownDataType.NPOT_SUPPORT:
  30. return {
  31. subject: t('NPOT Support'),
  32. value: data.npot_support,
  33. };
  34. case GPUKnownDataType.VENDOR_NAME:
  35. return {
  36. subject: t('Vendor Name'),
  37. value: data.vendor_name,
  38. };
  39. case GPUKnownDataType.MULTI_THREAD_RENDERING:
  40. return {
  41. subject: t('Multi-Thread rendering'),
  42. value: data.multi_threaded_rendering,
  43. };
  44. case GPUKnownDataType.API_TYPE:
  45. return {
  46. subject: t('API Type'),
  47. value: data.api_type,
  48. };
  49. case GPUKnownDataType.VENDOR_ID:
  50. return {
  51. subject: t('Vendor ID'),
  52. value: data.vendor_id,
  53. };
  54. case GPUKnownDataType.ID:
  55. return {
  56. subject: t('GPU ID'),
  57. value: data.id,
  58. };
  59. default:
  60. return undefined;
  61. }
  62. }