// The Intel Haswell family of iGPUs had support for the D3D12 API but it was later // removed due to a security vulnerability. // // We are explicitly filtering out all the devices in the family because we are now // getting reports of device loss at a later time than at device creation time (`D3D12CreateDevice`). // // See https://www.intel.com/content/www/us/en/support/articles/000057520/graphics.html // This list of device IDs is from https://dgpu-docs.intel.com/devices/hardware-table.html let haswell_device_ids = [ 0x0422, 0x0426, 0x042A, 0x042B, 0x042E, 0x0C22, 0x0C26, 0x0C2A, 0x0C2B, 0x0C2E, 0x0A22, 0x0A2A, 0x0A2B, 0x0D2A, 0x0D2B, 0x0D2E, 0x0A26, 0x0A2E, 0x0D22, 0x0D26, 0x0412, 0x0416, 0x0D12, 0x041A, 0x041B, 0x0C12, 0x0C16, 0x0C1A, 0x0C1B, 0x0C1E, 0x0A12, 0x0A1A, 0x0A1B, 0x0D16, 0x0D1A, 0x0D1B, 0x0D1E, 0x041E, 0x0A16, 0x0A1E, 0x0402, 0x0406, 0x040A, 0x040B, 0x040E, 0x0C02, 0x0C06, 0x0C0A, 0x0C0B, 0x0C0E, 0x0A02, 0x0A06, 0x0A0A, 0x0A0B, 0x0A0E, 0x0D02, 0x0D06, 0x0D0A, 0x0D0B, 0x0D0E,
]; if desc.VendorId == 0x8086 && haswell_device_ids.contains(&desc.DeviceId) { returnfalse;
}
// If run completely headless, windows will show two different WARP adapters, one // which is lying about being an integrated card. This is so that programs // that ignore software adapters will actually run on headless/gpu-less machines. // // We don't want that and discourage that kind of filtering anyway, so we skip the integrated WARP. if desc.VendorId == 5140
&& !Dxgi::DXGI_ADAPTER_FLAG(desc.Flags as i32).contains(Dxgi::DXGI_ADAPTER_FLAG_SOFTWARE)
{ let adapter_name = super::conv::map_adapter_name(desc.Description); if adapter_name.contains("Microsoft Basic Render Driver") { returnfalse;
}
}
true
}
pubenum DxgiAdapter { /// Provided by DXGI 1.4
Adapter3(Dxgi::IDXGIAdapter3), /// Provided by DXGI 1.6
Adapter4(Dxgi::IDXGIAdapter4),
}
impl Deref for DxgiAdapter { type Target = Dxgi::IDXGIAdapter3;
fn deref(&self) -> &Self::Target { matchself {
DxgiAdapter::Adapter3(a) => a,
DxgiAdapter::Adapter4(a) => a,
}
}
}
if instance_flags.contains(wgt::InstanceFlags::VALIDATION) { // The `DXGI_CREATE_FACTORY_DEBUG` flag is only allowed to be passed to // `CreateDXGIFactory2` if the debug interface is actually available. So // we check for whether it exists first. iflet Ok(Some(_)) = lib_dxgi.debug_interface1() {
factory_flags |= Dxgi::DXGI_CREATE_FACTORY_DEBUG;
}
}
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.10Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-06-22)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.