crocus/Gen6: WebGL Water test runs very choppy
Summary
Here follows another crocus and Intel "Sandy Bridge" aka Gen6 related bug report. While my previous WebGL water bug report #5813 (closed) was r300 related, this one here is about Intel hardware. So in some way that one is closer to the original WebGL water bug report #5302.
As already mentioned in #5302 the performance of the WebGL water test on Intel Gen6 hardware is quite bad. I can confirm this for older and newer Firefox builds like Firefox 102.6.0esr in conjunction with Mesa 23.0.0-devel (git-97c948fc 2022-12-23 jammy-oibaf-ppa). The used OS is Kubuntu 22.04 LTS.
I have no idea what the underlying problem is. This could be a flaw in crocus, a limitation of the Intel Gen4/5/6 hardware or a restriction in Firefox like a built-in fallback to some form of "software emulation". Note, it looks that Chromium is using some form of software fallback when the support for "Vertex Texture Fetch" is unclear, see this page for more information.
Or alternatively this here might be in the end related to my special Apple iMac 12,2 system which has a somewhat strange Multi-GPU configuration, see #6960 for more details.
Whatever, in #5813 (closed) it became clear that DX10 class hardware and newer should effectively have full support for the VTF feature which is required by the WebGL water test. This is true for the Intel Gen6 line which was Intel's first fully DX10.1 compliant iGPU generation.
Finally, I can confirm that this works perfectly well for the r600 driver and a Radeon HD 6670M or an even older Radeon HD 2600 GPU.
System information
urs@iMac-test:~$ DRI_PRIME=1 inxi -GSC -xx
System:
Host: iMac-test Kernel: 5.15.0-56-generic x86_64 bits: 64 compiler: gcc
v: 11.3.0 Desktop: KDE Plasma 5.24.7 tk: Qt 5.15.3 wm: kwin_x11 dm: SDDM
Distro: Ubuntu 22.04.1 LTS (Jammy Jellyfish)
CPU:
Info: quad core model: Intel Core i5-2400 bits: 64 type: MCP
arch: Sandy Bridge rev: 7 cache: L1: 256 KiB L2: 1024 KiB L3: 6 MiB
Speed (MHz): avg: 1600 min/max: 1600/3400 cores: 1: 1600 2: 1600 3: 1600
4: 1600 bogomips: 24800
Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
vendor: Apple driver: i915 v: kernel ports: active: none empty: VGA-1
bus-ID: 00:02.0 chip-ID: 8086:0102
Device-2: AMD Whistler [Radeon HD 6730M/6770M/7690M XT] vendor: Apple
driver: radeon v: kernel pcie: speed: 2.5 GT/s lanes: 16 ports:
active: eDP-1 empty: DP-1, DP-2, DP-3, DP-4, VGA-2 bus-ID: 01:00.0
chip-ID: 1002:6740
Device-3: Apple FaceTime HD Camera (Built-in) type: USB driver: uvcvideo
bus-ID: 1-2:3 chip-ID: 05ac:850b
Display: x11 server: X.Org v: 1.21.1.3 compositor: kwin_x11 driver: X:
loaded: ati,modesetting,radeon unloaded: fbdev,vesa gpu: radeon
display-ID: :0 screens: 1
Screen-1: 0 s-res: 2560x1440 s-dpi: 96
Monitor-1: eDP res: 2560x1440 dpi: 109 diag: 685mm (27")
OpenGL: renderer: Mesa Intel HD Graphics 2000 (SNB GT1)
v: 3.3 Mesa 23.0.0-devel (git-97c948f 2022-12-23 jammy-oibaf-ppa)
direct render: Yes
Any extra information would be greatly appreciated
Regarding the R500 hardware which is lacking proper VTF support there exist some speculation that the needed functionality could be implemented also via the "Render To VertexBuffer" aka R2VB. Maybe Intel is using such a workaround on their older iGPU generations, see the OpenGL "Vertex Texture Fetch" page for more information.