9 #include "impeller/renderer/backend/vulkan/test/mock_vulkan.h"
18 ASSERT_TRUE(GetContext());
19 const auto& driver_info =
21 ASSERT_NE(driver_info,
nullptr);
23 ASSERT_TRUE(driver_info->GetAPIVersion().IsAtLeast(
Version{1, 1, 0}));
26 ASSERT_NE(driver_info->GetDriverName(),
"");
27 EXPECT_FALSE(driver_info->IsKnownBadDriver());
31 ASSERT_TRUE(GetContext());
32 const auto& driver_info =
34 ASSERT_NE(driver_info,
nullptr);
35 fml::testing::LogCapture log;
36 driver_info->DumpToLog();
37 EXPECT_TRUE(log.str().find(
"Driver Information") != std::string::npos);
42 MockVulkanContextBuilder()
43 .SetPhysicalPropertiesCallback(
44 [](VkPhysicalDevice device, VkPhysicalDeviceProperties* prop) {
45 prop->vendorID = 0x19E5;
46 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
50 EXPECT_TRUE(context->GetDriverInfo()->IsKnownBadDriver());
55 MockVulkanContextBuilder()
56 .SetPhysicalPropertiesCallback(
57 [&driver_name, qc](VkPhysicalDevice device,
58 VkPhysicalDeviceProperties* prop) {
60 prop->vendorID = 0x168C;
62 prop->vendorID = 0x13B5;
64 driver_name.copy(prop->deviceName, driver_name.size());
65 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
68 return context->GetDriverInfo()->IsKnownBadDriver();
73 MockVulkanContextBuilder()
74 .SetPhysicalPropertiesCallback(
75 [&driver_name, qc](VkPhysicalDevice device,
76 VkPhysicalDeviceProperties* prop) {
78 prop->vendorID = 0x168C;
80 prop->vendorID = 0x13B5;
82 driver_name.copy(prop->deviceName, driver_name.size());
83 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
101 MockVulkanContextBuilder()
102 .SetPhysicalPropertiesCallback(
103 [&driver_name, qc](VkPhysicalDevice device,
104 VkPhysicalDeviceProperties* prop) {
106 prop->vendorID = 0x168C;
108 prop->vendorID = 0x13B5;
110 driver_name.copy(prop->deviceName, driver_name.size());
111 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
129 MockVulkanContextBuilder()
130 .SetPhysicalPropertiesCallback(
131 [&driver_name, qc](VkPhysicalDevice device,
132 VkPhysicalDeviceProperties* prop) {
134 prop->vendorID = 0x168C;
136 prop->vendorID = 0x13B5;
138 driver_name.copy(prop->deviceName, driver_name.size());
139 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
199 MockVulkanContextBuilder()
200 .SetPhysicalPropertiesCallback(
201 [&driver_name, qc](VkPhysicalDevice device,
202 VkPhysicalDeviceProperties* prop) {
204 prop->vendorID = 0x168C;
206 prop->vendorID = 0x13B5;
208 driver_name.copy(prop->deviceName, driver_name.size());
209 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
228 MockVulkanContextBuilder()
229 .SetPhysicalPropertiesCallback(
230 [](VkPhysicalDevice device, VkPhysicalDeviceProperties* prop) {
231 prop->vendorID = 0x144D;
232 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
234 prop->apiVersion = (1 << 22) | (1 << 12);
238 EXPECT_TRUE(context->GetDriverInfo()->IsKnownBadDriver());
241 MockVulkanContextBuilder()
242 .SetPhysicalPropertiesCallback(
243 [](VkPhysicalDevice device, VkPhysicalDeviceProperties* prop) {
244 prop->vendorID = 0x144D;
245 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
247 prop->apiVersion = (1 << 22) | (3 << 12);
251 EXPECT_FALSE(context->GetDriverInfo()->IsKnownBadDriver());
255 std::shared_ptr<ContextVK> context =
256 MockVulkanContextBuilder()
257 .SetPhysicalPropertiesCallback(
258 [](VkPhysicalDevice device, VkPhysicalDeviceProperties* prop) {
259 prop->vendorID = 0x1010;
260 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
261 std::string name =
"PowerVR Rogue GE8320";
262 name.copy(prop->deviceName, name.size());
266 EXPECT_TRUE(context->GetDriverInfo()->IsKnownBadDriver());
267 EXPECT_EQ(context->GetDriverInfo()->GetPowerVRGPUInfo(),
272 std::shared_ptr<ContextVK> context =
273 MockVulkanContextBuilder()
274 .SetPhysicalPropertiesCallback(
275 [](VkPhysicalDevice device, VkPhysicalDeviceProperties* prop) {
276 prop->vendorID = 0x1010;
277 prop->deviceType = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
278 std::string name =
"PowerVR DXT 123";
279 name.copy(prop->deviceName, name.size());
283 EXPECT_FALSE(context->GetDriverInfo()->IsKnownBadDriver());
284 EXPECT_EQ(context->GetDriverInfo()->GetPowerVRGPUInfo(),
static SurfaceContextVK & Cast(Context &base)
const std::shared_ptr< ContextVK > & GetParent() const
bool CanUseFramebufferFetch(std::string_view driver_name, bool qc=true)
TEST(AllocationSizeTest, CanCreateTypedAllocations)
bool CanUseMipgeneration(std::string_view driver_name, bool qc=true)
TEST_P(AiksTest, DrawAtlasNoColor)
bool IsBadVersionTest(std::string_view driver_name, bool qc=true)
INSTANTIATE_VULKAN_PLAYGROUND_SUITE(DriverInfoVKTest)
bool CanUsePrimitiveRestartSubmitTest(std::string_view driver_name, bool qc=true)
bool CanBatchSubmitTest(std::string_view driver_name, bool qc=true)
MaliGPU GetMaliVersion(std::string_view version)
AdrenoGPU GetAdrenoVersion(std::string_view version)
WorkaroundsVK GetWorkaroundsFromDriverInfo(DriverInfoVK &driver_info)
bool broken_mipmap_generation
bool batch_submit_command_buffer_timeout
bool slow_primitive_restart_performance
bool input_attachment_self_dependency_broken