跳转至

驱动程序错误

已知驱动程序 bug 的非详尽列表。

另请参阅:Dolphin 模拟器 自己的驱动 bug 列表(其中包含此处所列的 bug)。

Vulkan

厂商/GPU 操作系统 驱动 版本 错误
AMD 所有 专有 ? 在 GCN4 及更低版本上,VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT 已损坏。
AMD 所有 专有 ? GCN4 及更早版本在 VK_EXT_sampler_filter_minmax 上存在问题。
AMD 所有 专有 ? 如果 offset + stride * count 大于 size,则顶点缓冲区的最后一个属性值将错误。
AMD 所有 专有 ? 在 GCN 上,超过 6 层的 2D mipmap 纹理数组(width == height)会导致 mipmap 损坏。
AMD 所有 RADV, MESA ? 使用 LLVM 发射器会导致 FP16 损坏,专有驱动不受影响。
AMD 所有 专有 ? 对 VK_EXT_depth_clamp_control 的错误实现会导致错误深度值被写入深度缓冲区。
AMD macOS 专有 ? gl_HelperInvocation 实际上是 !gl_HelperInvocation。
NVIDIA 所有 专有 ? 适用于 Ampere 及更新架构的驱动程序在 float16 数学运算上存在问题。
NVIDIA 所有 专有 >=510.0.0 版本 >= 510 不支持 MSAA->MSAA 图像 blits。
NVIDIA 所有 专有 ? 不支持着色器模板导出。
NVIDIA 所有 专有 ? 不能正确支持条件屏障。
NVIDIA 所有 专有 ? Turing 之前的 GPU 不能正确使用 push descriptors。
NVIDIA 所有 所有 ? 使用部分矩形调用 vkCmdClearAttachments,或者在渲染过程中指定渲染区域并将 load 操作设置为 clear,可能导致 GPU 锁定或引发边界违规。这种情况只发生在 MSAA 帧缓冲区上,而且似乎是在单个命令缓冲区中有多次清除时才会出现。通过在启用 MSAA 时回退到慢速路径(绘制四边形)来解决。
Intel 所有 专有 <27.20.100.0 27.20.100.0 之前的 Intel Windows 驱动程序版本在 VK_EXT_vertex_input_dynamic_state 上存在问题。
Intel 所有 专有 ? Intel 专有驱动程序不支持 MSAA->MSAA 图像 blits。
Intel 所有 专有 0.405.0
until
0.405.286
Intel 专有驱动程序 0.405.0 到 0.405.286 的计算(compute)功能已损坏。
Intel macOS 专有 ? 使用动态采样器索引会导致 GPU 锁定。
Intel macOS 专有 ? 在可丢弃结果的着色器中使用 subgroupMax 会导致数据损坏。
Intel 所有 Mesa ? 在顶点着色器中写入 gl_ClipDistance 时,几何着色器中的线条会损坏。
Qualcomm 所有 专有 ? 使用过多采样器(在 A8XX 上为 65536)可能导致堆耗尽,建议使用可用采样器总数的 75%。
Qualcomm 所有 专有 ? Qualcomm Adreno GPU 不处理缩放的顶点属性 VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME。
Qualcomm 所有 专有 ? 64 位整数扩展(VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME)会导致莫名的崩溃和稳定性问题。
Qualcomm 所有 所有 ? 驱动程序要求的绑定限制高于其报告的值(32)。
Qualcomm 所有 所有 ? 在 Adreno 上,启用光栅化器丢弃会以某种方式损坏视口状态;一种解决方法是强制其在下次使用时更新。
Qualcomm 所有 专有 ? 不支持并发 fence 等待。
Qualcomm 所有 专有 ? vkCmdCopyImageToBuffer 在用于从具有最优平铺(optimal tiling)的图像复制时,会分配一个暂存图像(staging image);这会导致整体性能较慢。
Qualcomm 所有 专有 ? 在 Adreno Vulkan 驱动程序中,32 位深度清除已损坏,且没有任何效果。
Qualcomm 所有 专有 ? 在真正重置 VkCommandPool 之前释放资源应该是安全的。然而,在运行 R 系列驱动的设备上,有几个月的时间里驱动程序存在一个 bug:当命令缓冲区正在被重置时,它错误地访问了命令缓冲区上的对象。如果这些对象已经被销毁(这是合法操作),就会崩溃。
Qualcomm 所有 专有 ? 在配备 Adreno 530 和 540 的 Pixel 和 Pixel 2 XL 上,将宽度和高度设置为几十(10s)时,会可靠地触发一种看似驱动程序竞态条件的问题。
Qualcomm 所有 专有 ? 非描述性的 OpPhi SPIRV 降级(lowering)错误;最初使用 OpPhi 来选择结果,在 Adreno 4xx 上崩溃。已改为像 glslang 那样将结果存储在临时变量中。
Qualcomm 所有 专有 ? 参见 crbug.com/1241134。该 bug 出现在搭载操作系统 PQ3A 的 Adreno 5xx 设备上。在早期的 PPR1 版本上无法复现,因为旧版驱动中没有 extend blend func 扩展。
Mali Android 专有 ? 在多个位置出现莫名的绿屏。
Mali Android 专有 ? 在 Mali Vulkan 驱动中,对于回读(readback),缓存内存(cached memory)明显比一致性内存(coherent memory)慢,导致内核函数 __pi___inval_cache_range 中的 CPU 使用率很高。
Mali Android 专有 ? 在某些旧版 ARM 驱动上,如果创建管线时提供的静态状态值为 0(alphaToCoverageEnable 和 rasterizerDiscardEnable),在有 discard 或 alpha to coverage 的情况下,模板写入掩码的动态状态无法正确工作。
Mali Android 专有 ? 因设备丢失而提交失败时,仍需等待 fence 发出信号后再删除。然而,ARM 有一个 bug(b/359822580):如果处于设备丢失状态,驱动程序会在 fence 等待上提前退出,因此我们无法等待它。于是我们只能等待队列完成。
Mali Android 专有 ? 在 Galaxy S7 上,当我们对 VkImage 进行子分配时,会出现大量渲染问题。
Mali Android 专有 ? 在 Galaxy S7 和 S9 上,当仅使用主命令缓冲区时,我们会看到大量渲染问题以及图像过滤器丢失。在运行 Android 28 的 P30 上也看到了问题。
Mali Android 专有 ? RGBA_F32 mipmap 在某些 Mali 设备上似乎存在问题。
Mali Android 专有 ? 矩阵 IR lowering 在处理矩阵 swizzle、标量乘法以及一元 (+m)/(-m) 时,当矩阵临时变量超过 32 个,会出现额外且无法解释的 Bug。
Apple 全部 MoltenVK ? 当使用超过 16 个顶点属性/绑定时,驱动程序会崩溃。
Apple macOS 专有 >4 某些驱动与 Apple Silicon GPU 的组合在启用早期深度测试时,片段丢弃会出现问题。被丢弃的片段可能出现损坏。
Apple iOS MoltenVK ? 空描述符会导致一些难以描述的问题。
Apple iOS MoltenVK ? 推送描述符会导致一些难以描述的问题。
Imagination Android 专有 ? 某些 Vulkan 实现无法接受 'clear' loadop renderpass:如果你尝试使用的 framebuffer 的 load/store 操作与创建该 framebuffer 时所用的不同,尽管规范说明它们应当兼容,这些实现仍会出问题。
Intel
Qualcomm
AMD
Apple
全部 全部
MoltenVK (Apple)
? 在某些 Vulkan 驱动上,反转视口深度范围无法按预期工作。Vulkan 规范允许视口中的 minDepth/maxDepth 字段反转,但在某些驱动上的实现是损坏的。

AMD:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_AMD_PROPRIETARY
  • 开源(OSS):VK_DRIVER_ID_AMD_OPEN_SOURCE
  • MESA:VK_DRIVER_ID_MESA_RADV

NVIDIA:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_NVIDIA_PROPRIETARY.
  • MESA:VK_DRIVER_ID_MESA_NVK.

Intel:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS.
  • MESA:VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA.

Qualcomm:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_QUALCOMM_PROPRIETARY.
  • MESA:VK_DRIVER_ID_MESA_TURNIP.

Mali:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_ARM_PROPRIETARY.
  • MESA:VK_DRIVER_ID_MESA_PANVK.

Samsung:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_SAMSUNG_PROPRIETARY.

Apple:驱动程序 ID 列表:

  • MoltenVK/MVK:VK_DRIVER_ID_MOLTENVK.
  • KosmicKrisp:VK_DRIVER_ID_MESA_KOSMICKRISP.
  • HoneyKrisp:VK_DRIVER_ID_MESA_HONEYKRISP.

PowerVR:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_IMAGINATION_PROPRIETARY.
  • MESA:VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA.

软件光栅化器:驱动程序 ID 列表:

  • SwiftShader:VK_DRIVER_ID_GOOGLE_SWIFTSHADER.
  • LLVMPipe:VK_DRIVER_ID_MESA_LLVMPIPE.

Broadcom:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_BROADCOM_PROPRIETARY.
  • MESA:VK_DRIVER_ID_MESA_V3DV.

Verisilicon:驱动程序 ID 列表:

  • 专有:VK_DRIVER_ID_VERISILICON_PROPRIETARY.

其他:驱动程序 ID 列表:

  • SC:VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN.
  • GGP(Stadia):VK_DRIVER_ID_GGP_PROPRIETARY.
  • CoreAVI(汽车):VK_DRIVER_ID_COREAVI_PROPRIETARY.
  • Juice(远程 GPU):VK_DRIVER_ID_JUICE_PROPRIETARY.
  • Venus(Virtio GPU):VK_DRIVER_ID_MESA_VENUS.
  • Dozen(基于 DirectX 的 Vulkan):VK_DRIVER_ID_MESA_DOZEN.

OpenGL

厂商/GPU 操作系统 驱动程序 版本 问题
全部 Android 全部 ? 在 OpenGL 中,多线程着色器预编译有时会崩溃。
全部 全部 Mesa ? https://github.com/KhronosGroup/glslang/pull/2646

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 eg/Eglantine