User avatar
bomblord
Posts: 200
Joined: Sun Jul 14, 2019 2:54 am

Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 11:37 am

In some discussions with a Dolphin Emulator developer (see here) after a long and frustrating process the software finally reached a point of booting on a pi 4 (largely thanks to people more intelligent than I finding workarounds and creating 64 bit OS releases). However, despite loading and opening we're running into an issue where the current Video VI driver doesn't appear to support EXT_buffer_storage in OpenGL ES which is necessary for proper performance.

I'm wondering if the Pi engineers help maintain the Videocore VI driver and if so if that could be added to the OpenGL ES support (the developers think it seems to be possible). If the Pi engineers don't do you know who I could bother to see if it's possible?
Last edited by bomblord on Fri Aug 23, 2019 4:18 pm, edited 4 times in total.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7889
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Possible to add OpenGL buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 1:27 pm

Things like ARB_buffer_storage I would expect to be implemented in the base mesa library rather than the platform specific code. A fair amount of stuff appears to be conditional on the GL / GLES version that the driver claims to support though.
https://gitlab.freedesktop.org/mesa/mes ... ble.h#L216 says I'm right, and GLES EXT_buffer_storage directly maps to GL ARB_buffer_storage.

The VC6 V3D hardware can support GLES 3.2, but under mesa it is currently failing conformance testing for reasons that are still being tracked down. I suspect that if the v3d driver claimed to do GLES 3.2 then it may automagically work.

Looking at some of our status emails from Igalia, they are fixing the GLES 3.1 conformance issues at present, so hopefully soon we'll be able to adopt that and you should get GLES EXT_buffer_storage.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
bomblord
Posts: 200
Joined: Sun Jul 14, 2019 2:54 am

Re: Possible to add OpenGL buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 1:36 pm

6by9 wrote:
Fri Aug 23, 2019 1:27 pm
Things like ARB_buffer_storage I would expect to be implemented in the base mesa library rather than the platform specific code. A fair amount of stuff appears to be conditional on the GL / GLES version that the driver claims to support though.
https://gitlab.freedesktop.org/mesa/mes ... ble.h#L216 says I'm right, and GLES EXT_buffer_storage directly maps to GL ARB_buffer_storage.

The VC6 V3D hardware can support GLES 3.2, but under mesa it is currently failing conformance testing for reasons that are still being tracked down. I suspect that if the v3d driver claimed to do GLES 3.2 then it may automagically work.

Looking at some of our status emails from Igalia, they are fixing the GLES 3.1 conformance issues at present, so hopefully soon we'll be able to adopt that and you should get GLES EXT_buffer_storage.
Sounds like potentially good news ^_^ thank you for the detailed response so I'm looking forward to the day that the conformance issues are fixed buffer storage is implemented!

jdonald
Posts: 432
Joined: Fri Nov 03, 2017 4:36 pm

Re: Possible to add OpenGL buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 2:44 pm

6by9 wrote:
Fri Aug 23, 2019 1:27 pm
I suspect that if the v3d driver claimed to do GLES 3.2 then it may automagically work.
So as I understand it, from what you're saying if we change one line and recompile Mesa we can test Dolphin with EXT_buffer_storage today? The GLES 3.1 conformance issues being unrelated to any features used by Dolphin.

That could immediately provide an idea as to whether whether Wii games will run noticeably faster or if it could address some of the graphical glitching issues seen by bomblord.
bomblord wrote:
Fri Aug 23, 2019 11:37 am
Video VI driver doesn't support buffer_storage in OpenGL which is necessary for proper performance.
6by9 touched upon this, but to be clear the driver does already support ARB_buffer_storage in OpenGL. It's EXT_buffer_storage that it currently lacks in GLES 3.0. You may want to edit and correct the thread title!

pica200
Posts: 175
Joined: Tue Aug 06, 2019 10:27 am

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 4:08 pm

Well, i would not get my hopes up Dolphin will run at even remotely playable speeds with the current driver. On 64 bit kernel + userland there seem to be performance issues generally right now to the point where GPU rendering lags behind a few hundred milliseconds (noticeable in many places in the desktop environment). There is only a chance of somewhat playable speeds when all drivers work hand in hand.

I'm not sure if the VC6 is fast enough anyway. On the Nintendo Switch with Cortex-A57, 2 LPDDR4 chips at 1600 MHz and many times stronger GPU Dolphin just about reaches fullspeed.

jdonald
Posts: 432
Joined: Fri Nov 03, 2017 4:36 pm

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 4:14 pm

pica200 wrote:
Fri Aug 23, 2019 4:08 pm
Well, i would not get my hopes up Dolphin will run at even remotely playable speeds
Several GameCube games are already running at full speed (usually) when windowed. You can follow on in the other threads:
* https://forums.dolphin-emu.org/Thread-d ... -4?page=11
* https://www.raspberrypi.org/forums/view ... p?t=248950

But we are still seeking EXT_buffer_storage to speed up the Wii games, as well as make the GameCube experience more reliable.

Your Firefox lag problems may be more software-specific than something intrinsic to VC6. Chromium runs WebGL demos 3x faster than Firefox and it's hardly implemented efficiently.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7889
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Possible to add OpenGL buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 4:22 pm

jdonald wrote:
Fri Aug 23, 2019 2:44 pm
6by9 wrote:
Fri Aug 23, 2019 1:27 pm
I suspect that if the v3d driver claimed to do GLES 3.2 then it may automagically work.
So as I understand it, from what you're saying if we change one line and recompile Mesa we can test Dolphin with EXT_buffer_storage today? The GLES 3.1 conformance issues being unrelated to any features used by Dolphin.

That could immediately provide an idea as to whether whether Wii games will run noticeably faster or if it could address some of the graphical glitching issues seen by bomblord.
I'm not a GL/GLES expert, but my understanding is that predominantly you're after EXT_buffer_storage as a way of stashing resources away. AFAIK that is independent of the conformance issues related to actual rendering. If that is the only feature of GLES3.1 that you're after, then I'd expect you to be good.

Exactly where in mesa the relevant flag(s) is I don't know.
If your code isn't checking the version number explicitly, then I'd try the quick hack of replacing the "31" from https://gitlab.freedesktop.org/mesa/mes ... ble.h#L216 with "30". Perhaps naively I'd expect that to expose EXT_buffer_storage on GLES3.0 and above. The last column appears to be the year, so that may need to dropped as well (although there are other 3.0 extensions in 2015).
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
bomblord
Posts: 200
Joined: Sun Jul 14, 2019 2:54 am

Re: Possible to add OpenGL buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 4:29 pm

6by9 wrote:
Fri Aug 23, 2019 4:22 pm
jdonald wrote:
Fri Aug 23, 2019 2:44 pm
6by9 wrote:
Fri Aug 23, 2019 1:27 pm
I suspect that if the v3d driver claimed to do GLES 3.2 then it may automagically work.
So as I understand it, from what you're saying if we change one line and recompile Mesa we can test Dolphin with EXT_buffer_storage today? The GLES 3.1 conformance issues being unrelated to any features used by Dolphin.

That could immediately provide an idea as to whether whether Wii games will run noticeably faster or if it could address some of the graphical glitching issues seen by bomblord.
I'm not a GL/GLES expert, but my understanding is that predominantly you're after EXT_buffer_storage as a way of stashing resources away. AFAIK that is independent of the conformance issues related to actual rendering. If that is the only feature of GLES3.1 that you're after, then I'd expect you to be good.

Exactly where in mesa the relevant flag(s) is I don't know.
If your code isn't checking the version number explicitly, then I'd try the quick hack of replacing the "31" from https://gitlab.freedesktop.org/mesa/mes ... ble.h#L216 with "30". Perhaps naively I'd expect that to expose EXT_buffer_storage on GLES3.0 and above. The last column appears to be the year, so that may need to dropped as well (although there are other 3.0 extensions in 2015).
So in theory we could curl and compile that with that small change and it could *potentially* expose that? It would be worth trying at least until the conformance issues are fixed.

pica200
Posts: 175
Joined: Tue Aug 06, 2019 10:27 am

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 5:12 pm

jdonald wrote:
Fri Aug 23, 2019 4:14 pm
Your Firefox lag problems may be more software-specific than something intrinsic to VC6. Chromium runs WebGL demos 3x faster than Firefox and it's hardly implemented efficiently.
It's not FF. It's the entire desktop environment.

There is no way it can run GC games fullspeed with the current driver. Not even higan manages to emulate SNES with more than ~28 fps.

User avatar
bomblord
Posts: 200
Joined: Sun Jul 14, 2019 2:54 am

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 5:29 pm

pica200 wrote:
Fri Aug 23, 2019 5:12 pm
jdonald wrote:
Fri Aug 23, 2019 4:14 pm
Your Firefox lag problems may be more software-specific than something intrinsic to VC6. Chromium runs WebGL demos 3x faster than Firefox and it's hardly implemented efficiently.
It's not FF. It's the entire desktop environment.

There is no way it can run GC games fullspeed with the current driver. Not even higan manages to emulate SNES with more than ~28 fps.
Not sure what you're running but my Gentoo 64 build runs fine in the desktop environment and Firefox. Firefox isn't on par with Chromium on Raspbian but it's fast and responsive in everything but youtube playback.

jdonald
Posts: 432
Joined: Fri Nov 03, 2017 4:36 pm

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 5:50 pm

Expect to see more Dolphin Pi 4 videos on YouTube in the near future.

higan/bsnes runs 100x slower than snes9x for a multitude of reasons, including but not limited to byuu’s intense focus on emulation accuracy. Meanwhile, as I understand it Dolphin still contains elements of HLE.

While it’s not rigorous to compare different emulator codebases, Mupen64Plus already runs some N64 games at full speed and doesn’t even use a JIT (dynarec) on ARM.

User avatar
rpiMike
Posts: 1076
Joined: Fri Aug 10, 2012 12:38 pm
Location: Cumbria, UK

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Fri Aug 23, 2019 8:45 pm

Here's my first Dolphin Pi 4 video:

https://youtu.be/EeEVrx7rH8w

pica200
Posts: 175
Joined: Tue Aug 06, 2019 10:27 am

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Sat Aug 24, 2019 2:49 pm

bomblord wrote:
Fri Aug 23, 2019 5:29 pm
Not sure what you're running but my Gentoo 64 build runs fine in the desktop environment and Firefox. Firefox isn't on par with Chromium on Raspbian but it's fast and responsive in everything but youtube playback.
Manjaro ARM. And turns out it was window compositing slowing everything down. Now it's responsive and fast. What remains is a bit flickery graphics and tearing.


Someone has an explanation what's up with compositing?

jdonald
Posts: 432
Joined: Fri Nov 03, 2017 4:36 pm

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Sun Aug 25, 2019 10:38 pm

6by9 wrote:
Fri Aug 23, 2019 4:22 pm
If your code isn't checking the version number explicitly, then I'd try the quick hack of replacing the "31" from https://gitlab.freedesktop.org/mesa/mes ... ble.h#L216 with "30". Perhaps naively I'd expect that to expose EXT_buffer_storage on GLES3.0 and above.
Thanks, the one-char change worked. Unfortunately, using the extension now causes Dolphin to crash.

On the bright side this exercise confirmed Mesa 19.3 still works with Dolphin. Also, with this build it's now possible to run Dolphin on Raspbian w/ a 64-bit kernel in a 64-bit Debian chroot. Until now we were stuck on Mesa 19.0 for Debian arm64, which supported only up to GLES 2.0 with hardware. Sharing these binaries for others' benefit:

* mesa-v3d_19.3_arm64.tar.xz
* mesa-v3d_19.3-EXT_buffer_storage_arm64.tar.xz

These can be tried out locally without risk a to a system using env vars. Just note that LD_LIBRARY_PATH should end in lib/aarch64-linux-gnu and LIBGL_DRIVERS_PATH ends in lib/aarch64-linux-gnu/dri. Or if working inside a chroot you're isolated from bricking the system, so you can consider just unpacking and overwriting libraries at /

I have detailed the EXT_buffer_storage crash in this post on the Dolphin forums. The underlying problem could be in the Dolphin codebase, while the Dolphin devs may assume it's a bug in Mesa V3D. @6by9 would you have quick instructions for how I can run the relevant subset of GLES's CTS or other tests to validate EXT_buffer_storage independently?

jdonald
Posts: 432
Joined: Fri Nov 03, 2017 4:36 pm

Re: Possible to add OpenGL buffer_storage driver support to Videocore VI on the Pi4?

Thu Aug 29, 2019 8:40 pm

6by9 wrote:
Fri Aug 23, 2019 1:27 pm
Things like ARB_buffer_storage I would expect to be implemented in the base mesa library rather than the platform specific code.
It appears this is not the case. See 3df4d692 for one of many platform-specific implementations of ARB_buffer_storage. As for looking for a more direct test, I was at least able to compile VK-GL-CTS to poke around and I posted my findings on the Dolphin forum thread.

I'm now quite certain that ARB/EXT_buffer_storage is not implemented or at least not working for v3d/vc4. It only exposes ARB_buffer_storage in glxinfo because these gallium drivers are incorrectly returning true for PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT. From what I can tell, when a 3.1-conformant driver is released it won't automagically provide buffer storage but rather it'll start reporting the broken untested extension and cause crashes on Dolphin and PPSSPP.

@6by9 would it be possible for Igalia to look into this? While this doesn't align with work toward GLES 3.2 or Vulkan, it's potentially a dramatic improvement in rendering performance in the short term for a small effort.

FYI all: ETA PRIME posted a video a couple days ago with testing across 10 games: https://www.youtube.com/watch?v=l4TyYU9Xhcs

User avatar
bomblord
Posts: 200
Joined: Sun Jul 14, 2019 2:54 am

Re: Possible to add OpenGL buffer_storage driver support to Videocore VI on the Pi4?

Thu Aug 29, 2019 11:34 pm

jdonald wrote:
Thu Aug 29, 2019 8:40 pm
6by9 wrote:
Fri Aug 23, 2019 1:27 pm
Things like ARB_buffer_storage I would expect to be implemented in the base mesa library rather than the platform specific code.
It appears this is not the case. See 3df4d692 for one of many platform-specific implementations of ARB_buffer_storage. As for looking for a more direct test, I was at least able to compile VK-GL-CTS to poke around and I posted my findings on the Dolphin forum thread.

I'm now quite certain that ARB/EXT_buffer_storage is not implemented or at least not working for v3d/vc4. It only exposes ARB_buffer_storage in glxinfo because these gallium drivers are incorrectly returning true for PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT. From what I can tell, when a 3.1-conformant driver is released it won't automagically provide buffer storage but rather it'll start reporting the broken untested extension and cause crashes on Dolphin and PPSSPP.

@6by9 would it be possible for Igalia to look into this? While this doesn't align with work toward GLES 3.2 or Vulkan, it's potentially a dramatic improvement in rendering performance in the short term for a small effort.

FYI all: ETA PRIME posted a video a couple days ago with testing across 10 games: https://www.youtube.com/watch?v=l4TyYU9Xhcs
Your detective work is astounding here's hoping this goes somewhere and we see full speed performance in more emulators.

jdonald
Posts: 432
Joined: Fri Nov 03, 2017 4:36 pm

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Mon Sep 16, 2019 2:23 pm

I got an answer explaining why/whether this matters: https://computergraphics.stackexchange. ... erformance

Without the extension, there's no persistent storage and Dolphin/PPSSPP will make repeated calls to glBufferData(). This matters just as much on an integrated GPU as a desktop because all these allocations and deallocations are expensive.

Currently where is the proper place to file tickets for feature requests or bugs on Mesa V3D? At first I looked at https://gitlab.freedesktop.org/anholt/mesa/issues but it appears the relevant branches haven't been updated for a year and the two tickets filed there last month were ignored.

User avatar
bomblord
Posts: 200
Joined: Sun Jul 14, 2019 2:54 am

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Mon Sep 16, 2019 3:19 pm

jdonald wrote:
Mon Sep 16, 2019 2:23 pm
I got an answer explaining why/whether this matters: https://computergraphics.stackexchange. ... erformance

Without the extension, there's no persistent storage and Dolphin/PPSSPP will make repeated calls to glBufferData(). This matters just as much on an integrated GPU as a desktop because all these allocations and deallocations are expensive.

Currently where is the proper place to file tickets for feature requests or bugs on Mesa V3D? At first I looked at https://gitlab.freedesktop.org/anholt/mesa/issues but it appears the relevant branches haven't been updated for a year and the two tickets filed there last month were ignored.
I too, am interested in this information.

ShiftPlusOne
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6177
Joined: Fri Jul 29, 2011 5:36 pm
Location: The unfashionable end of the western spiral arm of the Galaxy

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Mon Sep 16, 2019 3:42 pm


6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7889
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Mon Sep 16, 2019 4:20 pm

a) Eric no longer works for Broadcom, and isn't the only one submitting stuff.
b) The normal approach with git is to have working branches. Which branch were you considering as "the relevant branches"? There are several active branches in his repo - https://gitlab.freedesktop.org/anholt/m ... hes/active

The latest report from Igalia is that they triaged the last GLES3.1 conformance failure, and it's an issue in the test. Hopefully full GLES3.1 compliance will be available very soon, and most of the required fixes should be in mesa master already.
They're running a full conformance run on a branch. I've asked if that branch is public so you could try it out.

Currently there is no open issue tracker for mesa. There are discussions about opening up issues on one of the personal branches to allow tracking of issues, but nothing decided as yet.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

jdonald
Posts: 432
Joined: Fri Nov 03, 2017 4:36 pm

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Mon Sep 16, 2019 4:42 pm

Thanks. I'm used to GitHub and didn't realize GitLab had an 'active' filter too. Earlier I just happened to click other branches prefixed with vc4 or v3d which hadn't been touched in a year.
6by9 wrote:
Mon Sep 16, 2019 4:20 pm
Hopefully full GLES3.1 compliance will be available very soon
The concern here is that GL_ARB_buffer_storage v3d implementation appears non-functional because it's not directly covered in CTS, thus GLES 3.1 will expose the same broken implementation of EXT_buffer_storage while passing conformance. Of course it's entirely possible that I missed something or Igalia fixed buffer_storage in the process of cleaning up other stuff.
I've asked if that branch is public so you could try it out.
Thanks, looking forward to it.
Currently there is no open issue tracker for mesa. There are discussions about opening up issues on one of the personal branches to allow tracking of issues, but nothing decided as yet.
I see. It sounds like if someone files a v3d issue into Mesa's bugzilla it would just get lost. I was asking not only for this feature but I see miscellaneous rendering bugs reported on these forums and there doesn't seem to be a good way to report and track.

pica200
Posts: 175
Joined: Tue Aug 06, 2019 10:27 am

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Mon Sep 16, 2019 5:22 pm

Speaking of small rendering issues: https://www.raspberrypi.org/forums/view ... 0#p1533299

I dunno what the bug is here but this "stripe" effect should not be there. It's messing up textures all over the place.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7889
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Tue Sep 17, 2019 9:12 am

Response from Igalia
I think shader storage is already there in the version of the driver
available in the Rpi. It has some important bugs we have been fixing
but the feature should be exposed as an extension.

In any case, there is a public branch with GLES 3.1 here [1]. We are
constantly rebasing it etc, so it is still a development branch with
all that this means, so do let people know of this if you point them to
it. It should be noted though, that this branch requires a kernel
patch to work properly [3], particularly for buffer storage. The kernel
patch is in review process upstream at the moment and I hope to merge
it this week, but there is a delta between the upstream kernel and the
downstream Rpi kernel so I'll have to send a slightly different version
of the patch to the downstream Rpi kernel here [2] (the patch currently
sitting there is not up to date). I am planning to do that this week,
so I can ping you when the downstream kernel patch is updated in [2],
since it is probably best to wait for that before pointing people to
the gles31 Mesa branch.

As usual when installing from development versions, do advise people to
prepare backups of their cards before playing around with this stuff.
We have not seen any issues ourselves, but of course this is
development code.

[1] https://gitlab.freedesktop.org/chema/me ... v3d-gles31
[2] https://github.com/raspberrypi/linux/pull/3203
[3] Basically, we had to change the ioctl kernel interface, so if they
don't have the kernel patch, the kernel will just reject rendering
involving shader storage, shader images and other things, so things
will probably not work well, specifically if they are using shader
storage.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
bomblord
Posts: 200
Joined: Sun Jul 14, 2019 2:54 am

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Tue Sep 17, 2019 12:23 pm

6by9 wrote:
Tue Sep 17, 2019 9:12 am
Response from Igalia
I think shader storage is already there in the version of the driver
available in the Rpi. It has some important bugs we have been fixing
but the feature should be exposed as an extension.

In any case, there is a public branch with GLES 3.1 here [1]. We are
constantly rebasing it etc, so it is still a development branch with
all that this means, so do let people know of this if you point them to
it. It should be noted though, that this branch requires a kernel
patch to work properly [3], particularly for buffer storage. The kernel
patch is in review process upstream at the moment and I hope to merge
it this week, but there is a delta between the upstream kernel and the
downstream Rpi kernel so I'll have to send a slightly different version
of the patch to the downstream Rpi kernel here [2] (the patch currently
sitting there is not up to date). I am planning to do that this week,
so I can ping you when the downstream kernel patch is updated in [2],
since it is probably best to wait for that before pointing people to
the gles31 Mesa branch.

As usual when installing from development versions, do advise people to
prepare backups of their cards before playing around with this stuff.
We have not seen any issues ourselves, but of course this is
development code.

[1] https://gitlab.freedesktop.org/chema/me ... v3d-gles31
[2] https://github.com/raspberrypi/linux/pull/3203
[3] Basically, we had to change the ioctl kernel interface, so if they
don't have the kernel patch, the kernel will just reject rendering
involving shader storage, shader images and other things, so things
will probably not work well, specifically if they are using shader
storage.
Oh boy that's exciting ^_^. Please keep us updated on when the patch becomes available.

jdonald
Posts: 432
Joined: Fri Nov 03, 2017 4:36 pm

Re: Possible to add GLES EXT_buffer_storage driver support to Videocore VI on the Pi4?

Wed Sep 18, 2019 10:45 pm

I've updated my EXT_buffer_storage build on Dropbox to use the v3d-gles1 branch. Note it also still required modifying the relevant line in extensions_table.h to explicitly expose EXT_buffer_storage.

Using this plus the kernel patch, I've verified that the implementation is functional with Dolphin.

Unfortunately I have not seen any measurable rendering speedup on GameCube games. For example, with default settings Luigi's Mansion remains around 18 fps when walking around the first room. Here are the binaries for others who'd like to experiment:
As usual be sure to back up your /boot partition before replacing your 64-bit kernel.

Return to “General discussion”