Hash :
c6a0618f
Author :
Date :
2018-04-13T14:11:46
Fix Vulkan renderer string for NVIDIA The Vulkan physical device properties "deviceName" field does not include "NVIDIA" for all NVIDIA GPUs. Add NVIDIA to the renderer name in case the PCI vendor ID matches, so that Vulkan backend test failures can be suppressed on NVIDIA using IsNVIDIA(). BUG=angleproject:2487 Change-Id: I8e440499664e5ba19773f72104d11d076dae727d Reviewed-on: https://chromium-review.googlesource.com/1013467 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
//
// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// driver_utils.h : provides more information about current driver.
#ifndef LIBANGLE_RENDERER_DRIVER_UTILS_H_
#define LIBANGLE_RENDERER_DRIVER_UTILS_H_
#include "libANGLE/angletypes.h"
namespace rx
{
enum VendorID : uint32_t
{
VENDOR_ID_UNKNOWN = 0x0,
VENDOR_ID_AMD = 0x1002,
VENDOR_ID_INTEL = 0x8086,
VENDOR_ID_NVIDIA = 0x10DE,
// This is Qualcomm PCI Vendor ID.
// Android doesn't have a PCI bus, but all we need is a unique id.
VENDOR_ID_QUALCOMM = 0x5143,
};
inline bool IsAMD(uint32_t vendor_id)
{
return vendor_id == VENDOR_ID_AMD;
}
inline bool IsIntel(uint32_t vendor_id)
{
return vendor_id == VENDOR_ID_INTEL;
}
inline bool IsNvidia(uint32_t vendor_id)
{
return vendor_id == VENDOR_ID_NVIDIA;
}
inline bool IsQualcomm(uint32_t vendor_id)
{
return vendor_id == VENDOR_ID_QUALCOMM;
}
const char *GetVendorString(uint32_t vendorId);
// Intel
class IntelDriverVersion
{
public:
// Currently, We only provide the constructor with one parameter. It mainly used in Intel
// version number on windows. If you want to use this class on other platforms, it's easy to
// be extended.
IntelDriverVersion(uint16_t lastPart);
bool operator==(const IntelDriverVersion &);
bool operator!=(const IntelDriverVersion &);
bool operator<(const IntelDriverVersion &);
bool operator>=(const IntelDriverVersion &);
private:
uint16_t mVersionPart;
};
bool IsHaswell(uint32_t DeviceId);
bool IsBroadwell(uint32_t DeviceId);
bool IsCherryView(uint32_t DeviceId);
bool IsSkylake(uint32_t DeviceId);
bool IsBroxton(uint32_t DeviceId);
bool IsKabylake(uint32_t DeviceId);
} // namespace rx
#endif // LIBANGLE_RENDERER_DRIVER_UTILS_H_