@@ -179,16 +179,20 @@ pub fn prepare_windows(
179
179
render_device. configure_surface ( surface, & swap_chain_descriptor) ;
180
180
}
181
181
// A recurring issue is hitting `wgpu::SurfaceError::Timeout` on certain Linux
182
- // AMD drivers . This seems to be a quirk of the driver .
183
- // We'd rather keep panicking when not on Linux AMD , because in those case,
182
+ // mesa driver implementations . This seems to be a quirk of some drivers .
183
+ // We'd rather keep panicking when not on Linux mesa , because in those case,
184
184
// the `Timeout` is still probably the symptom of a degraded unrecoverable
185
185
// application state.
186
186
// see https://github.com/bevyengine/bevy/pull/5957
187
+ // and https://github.com/gfx-rs/wgpu/issues/1218
187
188
#[ cfg( target_os = "linux" ) ]
188
- let is_amd = || {
189
+ let may_erroneously_timeout = || {
189
190
render_instance
190
191
. enumerate_adapters ( wgpu:: Backends :: VULKAN )
191
- . any ( |adapter| adapter. get_info ( ) . name . starts_with ( "AMD" ) )
192
+ . any ( |adapter| {
193
+ let name = adapter. get_info ( ) . name ;
194
+ name. starts_with ( "AMD" ) || name. starts_with ( "Intel" )
195
+ } )
192
196
} ;
193
197
194
198
match surface. get_current_texture ( ) {
@@ -203,7 +207,7 @@ pub fn prepare_windows(
203
207
window. swap_chain_texture = Some ( TextureView :: from ( frame) ) ;
204
208
}
205
209
#[ cfg( target_os = "linux" ) ]
206
- Err ( wgpu:: SurfaceError :: Timeout ) if is_amd ( ) => {
210
+ Err ( wgpu:: SurfaceError :: Timeout ) if may_erroneously_timeout ( ) => {
207
211
debug ! (
208
212
"Couldn't get swap chain texture. This is probably a quirk \
209
213
of your Linux AMD GPU driver, so it can be safely ignored."
0 commit comments