Seregon/StratoSDK

StratoSDK is a framework with a declarative approach similar to Flutter/React, written and designed entirely for Rust.

Rust/27.3 KB/No license
crates/strato-ui-renderer/src/rendering/wgpu/resources_tests.rs
StratoSDK / crates / strato-ui-renderer / src / rendering / wgpu / resources_tests.rs
1use super::*;
2 
3#[test]
4fn test_is_unsupported_llvmpipe_adapter() {
5 let supported_adapter_info = wgpu::AdapterInfo {
6 name: "llvmpipe (LLVM 17.0.6, 256 bits)".to_owned(),
7 // not used
8 vendor: 0,
9 // not used
10 device: 0,
11 device_type: wgpu::DeviceType::Cpu,
12 driver: "llvmpipe".to_owned(),
13 driver_info: "Mesa 24.0.2-arch1.2 (LLVM 17.0.6)".to_owned(),
14 backend: wgpu::Backend::Vulkan,
15 device_pci_bus_id: "01:00.0".to_owned(),
16 subgroup_min_size: wgpu::MINIMUM_SUBGROUP_MIN_SIZE,
17 subgroup_max_size: wgpu::MAXIMUM_SUBGROUP_MAX_SIZE,
18 transient_saves_memory: false,
19 };
20 assert!(!is_older_lavapipe_adapter(&supported_adapter_info));
21 
22 let unsupported_adapter_info = wgpu::AdapterInfo {
23 name: "llvmpipe (LLVM 17.0.6, 256 bits)".to_owned(),
24 // not used
25 vendor: 0,
26 // not used
27 device: 0,
28 device_type: wgpu::DeviceType::Cpu,
29 driver: "llvmpipe".to_owned(),
30 driver_info: "Mesa 23.2.1-1ubuntu3.1~22.04.2 (LLVM 15.0.7)".to_owned(),
31 backend: wgpu::Backend::Vulkan,
32 device_pci_bus_id: "01:00.0".to_owned(),
33 subgroup_min_size: wgpu::MINIMUM_SUBGROUP_MIN_SIZE,
34 subgroup_max_size: wgpu::MAXIMUM_SUBGROUP_MAX_SIZE,
35 transient_saves_memory: false,
36 };
37 
38 assert!(is_older_lavapipe_adapter(&unsupported_adapter_info));
39}
40 
41#[test]
42fn test_is_unsupported_intel_uhd_adapter() {
43 assert!(is_older_vulkan_intel_uhd_adapter(&wgpu::AdapterInfo {
44 name: String::from("Intel(R) HD Graphics 620 (KBL GT2)"),
45 vendor: 0,
46 device: 0,
47 device_type: wgpu::DeviceType::IntegratedGpu,
48 driver: String::from("Intel open-source Mesa driver"),
49 driver_info: String::from("Mesa 21.2.6"),
50 backend: wgpu::Backend::Vulkan,
51 device_pci_bus_id: "01:00.0".to_owned(),
52 subgroup_min_size: wgpu::MINIMUM_SUBGROUP_MIN_SIZE,
53 subgroup_max_size: wgpu::MAXIMUM_SUBGROUP_MAX_SIZE,
54 transient_saves_memory: false,
55 }));
56 assert!(!is_older_vulkan_intel_uhd_adapter(&wgpu::AdapterInfo {
57 name: String::from("Intel(R) HD Graphics 620 (KBL GT2)"),
58 vendor: 0,
59 device: 0,
60 device_type: wgpu::DeviceType::IntegratedGpu,
61 driver: String::from("Intel open-source Mesa driver"),
62 // Version is recent enough
63 driver_info: String::from("Mesa 23.2.6"),
64 backend: wgpu::Backend::Vulkan,
65 device_pci_bus_id: "01:00.0".to_owned(),
66 subgroup_min_size: wgpu::MINIMUM_SUBGROUP_MIN_SIZE,
67 subgroup_max_size: wgpu::MAXIMUM_SUBGROUP_MAX_SIZE,
68 transient_saves_memory: false,
69 }));
70 assert!(!is_older_vulkan_intel_uhd_adapter(&wgpu::AdapterInfo {
71 name: String::from("Intel(R) HD Graphics 620 (KBL GT2)"),
72 vendor: 0,
73 device: 0,
74 device_type: wgpu::DeviceType::IntegratedGpu,
75 driver: String::from("Intel open-source Mesa driver"),
76 // Info string is messed up
77 driver_info: String::from("Mssa 21.2.6"),
78 backend: wgpu::Backend::Vulkan,
79 device_pci_bus_id: "01:00.0".to_owned(),
80 subgroup_min_size: wgpu::MINIMUM_SUBGROUP_MIN_SIZE,
81 subgroup_max_size: wgpu::MAXIMUM_SUBGROUP_MAX_SIZE,
82 transient_saves_memory: false,
83 }));
84 assert!(is_older_vulkan_intel_uhd_adapter(&wgpu::AdapterInfo {
85 name: String::from("Intel(R) HD Graphics 620 (KBL GT2)"),
86 vendor: 0,
87 device: 0,
88 device_type: wgpu::DeviceType::IntegratedGpu,
89 driver: String::from("Intel open-source Mesa driver"),
90 // Additional info should be ignored
91 driver_info: String::from("Mesa 21.2.6 foo bar"),
92 backend: wgpu::Backend::Vulkan,
93 device_pci_bus_id: "01:00.0".to_owned(),
94 subgroup_min_size: wgpu::MINIMUM_SUBGROUP_MIN_SIZE,
95 subgroup_max_size: wgpu::MAXIMUM_SUBGROUP_MAX_SIZE,
96 transient_saves_memory: false,
97 }));
98 assert!(!is_older_vulkan_intel_uhd_adapter(&wgpu::AdapterInfo {
99 name: String::from("Intel(R) HD Graphics 620 (KBL GT2)"),
100 vendor: 0,
101 device: 0,
102 device_type: wgpu::DeviceType::IntegratedGpu,
103 driver: String::from("Intel open-source Mesa driver"),
104 // No version number
105 driver_info: String::from("Mesa"),
106 backend: wgpu::Backend::Vulkan,
107 device_pci_bus_id: "01:00.0".to_owned(),
108 subgroup_min_size: wgpu::MINIMUM_SUBGROUP_MIN_SIZE,
109 subgroup_max_size: wgpu::MAXIMUM_SUBGROUP_MAX_SIZE,
110 transient_saves_memory: false,
111 }));
112 assert!(is_older_vulkan_intel_uhd_adapter(&wgpu::AdapterInfo {
113 name: String::from("Intel(R) HD Graphics 620 (KBL GT2)"),
114 vendor: 0,
115 device: 0,
116 device_type: wgpu::DeviceType::IntegratedGpu,
117 driver: String::from("Intel open-source Mesa driver"),
118 // Nonsense version string
119 driver_info: String::from("Mesa wtfis&this"),
120 backend: wgpu::Backend::Vulkan,
121 device_pci_bus_id: "01:00.0".to_owned(),
122 subgroup_min_size: wgpu::MINIMUM_SUBGROUP_MIN_SIZE,
123 subgroup_max_size: wgpu::MAXIMUM_SUBGROUP_MAX_SIZE,
124 transient_saves_memory: false,
125 }));
126}
127