mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-08-25 05:02:17 +00:00
The 4th field of Intel new graphics driver will overflow soon. For example, the lastest driver version is 27.20.100.9466 and the 4th field, 9466, will meet the maximum 9999 soon. Future driver will bump the 3rd field from 100 to 101. This CL extends driver version check from 4th field to both 3rd and 4th fields. Check below 2 documents for more details. https://www.intel.com/content/www/us/en/support/articles/000005654/graphics.html https://docs.google.com/document/d/1Xm4afyGR3Ow3W2G-uig9fLQR01XzmSXeanM9OXDVhlg/edit#heading=h.k8onwbxk2ig Bug: None Change-Id: I0ce59ca81b1edd4c63b9f3b0128788c2bf6ade17 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/57180 Reviewed-by: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
65 lines
2.5 KiB
C++
65 lines
2.5 KiB
C++
// Copyright 2019 The Dawn Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#ifndef COMMON_GPUINFO_H
|
|
#define COMMON_GPUINFO_H
|
|
|
|
#include <array>
|
|
#include <cstdint>
|
|
|
|
using PCIVendorID = uint32_t;
|
|
using PCIDeviceID = uint32_t;
|
|
|
|
namespace gpu_info {
|
|
|
|
static constexpr PCIVendorID kVendorID_AMD = 0x1002;
|
|
static constexpr PCIVendorID kVendorID_ARM = 0x13B5;
|
|
static constexpr PCIVendorID kVendorID_ImgTec = 0x1010;
|
|
static constexpr PCIVendorID kVendorID_Intel = 0x8086;
|
|
static constexpr PCIVendorID kVendorID_Nvidia = 0x10DE;
|
|
static constexpr PCIVendorID kVendorID_Qualcomm = 0x5143;
|
|
static constexpr PCIVendorID kVendorID_Google = 0x1AE0;
|
|
static constexpr PCIVendorID kVendorID_Microsoft = 0x1414;
|
|
|
|
static constexpr PCIDeviceID kDeviceID_Swiftshader = 0xC0DE;
|
|
static constexpr PCIDeviceID kDeviceID_WARP = 0x8c;
|
|
|
|
bool IsAMD(PCIVendorID vendorId);
|
|
bool IsARM(PCIVendorID vendorId);
|
|
bool IsImgTec(PCIVendorID vendorId);
|
|
bool IsIntel(PCIVendorID vendorId);
|
|
bool IsNvidia(PCIVendorID vendorId);
|
|
bool IsQualcomm(PCIVendorID vendorId);
|
|
bool IsSwiftshader(PCIVendorID vendorId, PCIDeviceID deviceId);
|
|
bool IsWARP(PCIVendorID vendorId, PCIDeviceID deviceId);
|
|
|
|
using D3DDriverVersion = std::array<uint16_t, 4>;
|
|
|
|
// Do comparison between two driver versions. Currently we only support the comparison between
|
|
// Intel D3D driver versions.
|
|
// - Return -1 if build number of version1 is smaller
|
|
// - Return 1 if build number of version1 is bigger
|
|
// - Return 0 if version1 and version2 represent same driver version
|
|
int CompareD3DDriverVersion(PCIVendorID vendorId,
|
|
const D3DDriverVersion& version1,
|
|
const D3DDriverVersion& version2);
|
|
|
|
// Intel architectures
|
|
bool IsSkylake(PCIDeviceID deviceId);
|
|
bool IsKabylake(PCIDeviceID deviceId);
|
|
bool IsCoffeelake(PCIDeviceID deviceId);
|
|
|
|
} // namespace gpu_info
|
|
#endif // COMMON_GPUINFO_H
|