| 
980 | 980 | <a href="#979" id="979">979</a>  | 
981 | 981 | <a href="#980" id="980">980</a>  | 
982 | 982 | <a href="#981" id="981">981</a>  | 
 | 983 | +<a href="#982" id="982">982</a>  | 
 | 984 | +<a href="#983" id="983">983</a>  | 
 | 985 | +<a href="#984" id="984">984</a>  | 
 | 986 | +<a href="#985" id="985">985</a>  | 
 | 987 | +<a href="#986" id="986">986</a>  | 
 | 988 | +<a href="#987" id="987">987</a>  | 
 | 989 | +<a href="#988" id="988">988</a>  | 
 | 990 | +<a href="#989" id="989">989</a>  | 
 | 991 | +<a href="#990" id="990">990</a>  | 
 | 992 | +<a href="#991" id="991">991</a>  | 
 | 993 | +<a href="#992" id="992">992</a>  | 
 | 994 | +<a href="#993" id="993">993</a>  | 
 | 995 | +<a href="#994" id="994">994</a>  | 
 | 996 | +<a href="#995" id="995">995</a>  | 
 | 997 | +<a href="#996" id="996">996</a>  | 
 | 998 | +<a href="#997" id="997">997</a>  | 
 | 999 | +<a href="#998" id="998">998</a>  | 
 | 1000 | +<a href="#999" id="999">999</a>  | 
 | 1001 | +<a href="#1000" id="1000">1000</a>  | 
 | 1002 | +<a href="#1001" id="1001">1001</a>  | 
 | 1003 | +<a href="#1002" id="1002">1002</a>  | 
 | 1004 | +<a href="#1003" id="1003">1003</a>  | 
 | 1005 | +<a href="#1004" id="1004">1004</a>  | 
 | 1006 | +<a href="#1005" id="1005">1005</a>  | 
 | 1007 | +<a href="#1006" id="1006">1006</a>  | 
983 | 1008 | </pre></div><pre class="rust"><code><span class="kw">use </span>std::sync::Arc;  | 
984 | 1009 | <span class="kw">use </span>std::{borrow::Cow, collections::HashMap};  | 
985 | 1010 | 
 
  | 
986 | 1011 | <span class="kw">use crate</span>::{  | 
987 |  | -    api_log,  | 
 | 1012 | +    api_log, api_log_debug,  | 
988 | 1013 |     device::{queue::Queue, resource::Device, DeviceDescriptor, DeviceError},  | 
989 | 1014 |     global::Global,  | 
990 | 1015 |     hal_api::HalApi,  | 
 | 
1287 | 1312 |             <span class="kw">let </span>hal_adapters = <span class="kw">unsafe </span>{ instance.enumerate_adapters(<span class="prelude-val">None</span>) };  | 
1288 | 1313 |             <span class="kw">for </span>raw <span class="kw">in </span>hal_adapters {  | 
1289 | 1314 |                 <span class="kw">let </span>adapter = Adapter::new(raw);  | 
1290 |  | -                <span class="macro">log::info!</span>(<span class="string">"Adapter {:?}"</span>, adapter.raw.info);  | 
 | 1315 | +                <span class="macro">api_log_debug!</span>(<span class="string">"Adapter {:?}"</span>, adapter.raw.info);  | 
1291 | 1316 |                 adapters.push(adapter);  | 
1292 | 1317 |             }  | 
1293 | 1318 |         }  | 
 | 
1318 | 1343 |                 backend_adapters.retain(|exposed| exposed.info.device_type == wgt::DeviceType::Cpu);  | 
1319 | 1344 |             }  | 
1320 | 1345 |             <span class="kw">if let </span><span class="prelude-val">Some</span>(surface) = desc.compatible_surface {  | 
1321 |  | -                backend_adapters  | 
1322 |  | -                    .retain(|exposed| surface.get_capabilities_with_raw(exposed).is_ok());  | 
 | 1346 | +                backend_adapters.retain(|exposed| {  | 
 | 1347 | +                    <span class="kw">let </span>capabilities = surface.get_capabilities_with_raw(exposed);  | 
 | 1348 | +                    <span class="kw">if let </span><span class="prelude-val">Err</span>(err) = capabilities {  | 
 | 1349 | +                        <span class="macro">log::debug!</span>(  | 
 | 1350 | +                            <span class="string">"Adapter {:?} not compatible with surface: {}"</span>,  | 
 | 1351 | +                            exposed.info,  | 
 | 1352 | +                            err  | 
 | 1353 | +                        );  | 
 | 1354 | +                        <span class="bool-val">false  | 
 | 1355 | +                    </span>} <span class="kw">else </span>{  | 
 | 1356 | +                        <span class="bool-val">true  | 
 | 1357 | +                    </span>}  | 
 | 1358 | +                });  | 
1323 | 1359 |             }  | 
1324 | 1360 |             adapters.extend(backend_adapters);  | 
1325 | 1361 |         }  | 
 | 
1360 | 1396 |             }  | 
1361 | 1397 |         }  | 
1362 | 1398 | 
 
  | 
 | 1399 | +        <span class="comment">// `request_adapter` can be a bit of a black box.  | 
 | 1400 | +        // Shine some light on its decision in debug log.  | 
 | 1401 | +        </span><span class="kw">if </span>adapters.is_empty() {  | 
 | 1402 | +            <span class="macro">log::debug!</span>(<span class="string">"Request adapter didn't find compatible adapters."</span>);  | 
 | 1403 | +        } <span class="kw">else </span>{  | 
 | 1404 | +            <span class="macro">log::debug!</span>(  | 
 | 1405 | +                <span class="string">"Found {} compatible adapters. Sorted by preference:"</span>,  | 
 | 1406 | +                adapters.len()  | 
 | 1407 | +            );  | 
 | 1408 | +            <span class="kw">for </span>adapter <span class="kw">in </span><span class="kw-2">&</span>adapters {  | 
 | 1409 | +                <span class="macro">log::debug!</span>(<span class="string">"* {:?}"</span>, adapter.info);  | 
 | 1410 | +            }  | 
 | 1411 | +        }  | 
 | 1412 | + | 
1363 | 1413 |         <span class="kw">if let </span><span class="prelude-val">Some</span>(adapter) = adapters.into_iter().next() {  | 
1364 |  | -            <span class="macro">log::info!</span>(<span class="string">"Adapter {:?}"</span>, adapter.info);  | 
 | 1414 | +            <span class="macro">api_log_debug!</span>(<span class="string">"Request adapter result {:?}"</span>, adapter.info);  | 
1365 | 1415 |             <span class="kw">let </span>adapter = Adapter::new(adapter);  | 
1366 | 1416 |             <span class="prelude-val">Ok</span>(adapter)  | 
1367 | 1417 |         } <span class="kw">else </span>{  | 
 | 
0 commit comments