Commit 298c2768 by Kyle Griffiths Committed by Commit Bot

Add PowerVR Vendor ID & Vulkan GL Line Emulation Exclusion

Adds the PowerVR VendorID into the accepted vendor list, and prevent basic GL line emulation from being ran on PowerVR hardware as it's not required on those platforms, yet causes CTS failures when enabled. Fixes a variety of line failure tests across OGLES3/3.1 test suites seen on PowerVR hardware. Bug: angleproject:5145 Change-Id: I7383f1c09d026b8d33e6fbda66418c5f8b7f90bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462094Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
parent d5296d99
......@@ -71,6 +71,7 @@ The Qt Company Ltd.
Imagination Technologies Ltd.
Gregoire Payen de La Garanderie
Kyle Griffiths
Intel Corporation
Jin Yang
......
......@@ -149,6 +149,8 @@ const char *GetVendorString(uint32_t vendorId)
return "Intel";
case VENDOR_ID_NVIDIA:
return "NVIDIA";
case VENDOR_ID_POWERVR:
return "Imagination Technologies";
case VENDOR_ID_QUALCOMM:
return "Qualcomm";
default:
......
......@@ -25,6 +25,7 @@ enum VendorID : uint32_t
VENDOR_ID_GOOGLE = 0x1AE0,
VENDOR_ID_INTEL = 0x8086,
VENDOR_ID_NVIDIA = 0x10DE,
VENDOR_ID_POWERVR = 0x1010,
// 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,
......@@ -71,6 +72,11 @@ inline bool IsNvidia(uint32_t vendorId)
return vendorId == VENDOR_ID_NVIDIA;
}
inline bool IsPowerVR(uint32_t vendorId)
{
return vendorId == VENDOR_ID_POWERVR;
}
inline bool IsQualcomm(uint32_t vendorId)
{
return vendorId == VENDOR_ID_QUALCOMM;
......
......@@ -1703,6 +1703,7 @@ void RendererVk::initFeatures(DisplayVk *displayVk, const ExtensionNameList &dev
bool isNvidia = IsNvidia(mPhysicalDeviceProperties.vendorID);
bool isQualcomm = IsQualcomm(mPhysicalDeviceProperties.vendorID);
bool isARM = IsARM(mPhysicalDeviceProperties.vendorID);
bool isPowerVR = IsPowerVR(mPhysicalDeviceProperties.vendorID);
bool isSwiftShader =
IsSwiftshader(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID);
......@@ -1716,7 +1717,7 @@ void RendererVk::initFeatures(DisplayVk *displayVk, const ExtensionNameList &dev
{
// Use OpenGL line rasterization rules if extension not available by default.
// TODO(jmadill): Fix Android support. http://anglebug.com/2830
ANGLE_FEATURE_CONDITION(&mFeatures, basicGLLineRasterization, !IsAndroid());
ANGLE_FEATURE_CONDITION(&mFeatures, basicGLLineRasterization, !IsAndroid() && !isPowerVR);
}
if (mProvokingVertexFeatures.provokingVertexLast == VK_TRUE)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment