vkCmdSetViewport sometimes ignored on Ivy Bridge, Haswell
System information
System: Host: fedora Kernel: 5.14.11-200.fc34.x86_64 x86_64 bits: 64 compiler: gcc v: 2.35.2-6.fc34 Desktop: GNOME 40.4
tk: GTK 3.24.30 wm: gnome-shell dm: GDM Distro: Fedora release 34 (Thirty Four)
CPU: Info: Dual Core model: Intel Core i7-3667U bits: 64 type: MT MCP arch: Ivy Bridge rev: 9 cache: L2: 4 MiB
flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 19953
Speed: 941 MHz min/max: 800/3200 MHz Core speeds (MHz): 1: 941 2: 917 3: 1733 4: 843
Graphics: Device-1: Intel 3rd Gen Core processor Graphics vendor: Lenovo driver: i915 v: kernel bus-ID: 00:02.0
chip-ID: 8086:0166
Device-2: Chicony Integrated Camera type: USB driver: uvcvideo bus-ID: 1-1.6:4 chip-ID: 04f2:b315
Display: wayland server: X.Org 1.21.1.2 compositor: gnome-shell driver: loaded: modesetting unloaded: fbdev,vesa
resolution: 1600x900~60Hz s-dpi: 96
OpenGL: renderer: Mesa DRI Intel HD Graphics 4000 (IVB GT2) v: 4.2 Mesa 21.1.8 compat-v: 3.0 direct render: Yes
Describe the issue
It seems the viewport of vkCmdSetViewport is ignored in some cases on Ivy Bridge and Haswell.
Here's a Renderdoc trace: viewport.rdc. The correct rendering output (to attachment no. 257) captured on a Skylake machine is:
Note how the red rectangle only appear on some of the output, because of command no. 25, a vkCmdSetViewport.
Incorrect output from the Ivy Bridge machine is:
Note how all of the output is filled, which indicates the viewport is ignored.
I receive no warnings nor error from the Vulkan validator layers.