Panfrost Changelog
#1
In this thread I will be posting a short changelog of the Panfrost changes in Mesa when they arrive in Manjaro stable mesa-git.

This changelog will be useful even if you don't use Manjaro, but it may be out of sync to when you get the changes - Manjaro is between one and three weeks behind upstream mesa git.




New contributors to Panfrost are always welcome - in the past three months there were only four contributors with more than one commit to Panfrost in Mesa, and more will help us get to OpenGL 3 and beyond faster (Vulkan might not be that far off thanks to the Gallium frontend being written).

Most discussion around Panfrost happens on the #panfrost channel on Freenode IRC, so ask there if you want to get involved. Only minimum knowledge of the OpenGL rendering pipeline is required.






mesa-git-20.2.0_devel.125242.82815bc9803-1:

Changes from dd81f4853c8 to 82815bc9803:

Features:

- ARB_depth_clamp support (used for shadows in OpenMW, and in LZDoom) (!5453)

Fixes:

- EXT_frag_depth and AMD_shader_stencil_export now work (!5065)
- Waypipe now works for applications using GL (!5410)

Performance:

- Kodi memory usage when software decoding video has been reduced (!4451)
- Performance improvements for some software-rendered applications and video players (!4628)
- Bandwidth savings for varyings (!5423)
- Some blend modes are now faster (!5449)
- Multiplying by two is sometimes faster (!5475)
#2
thank you for your mesa contributions! looking forward to this thread. Smile
#3
Pinned Stuck
You can find me on IRC, Discord and Twitter


#4
mesa-git-20.2.0_devel.125920.9418c8ec8dd-1:

Changes from 82815bc9803 to 9418c8ec8dd:


Features:

- New flag for enabling OpenGL 3.3 - PAN_MESA_DEBUG=gl3 (!5584)

So far, the only game known to regress when setting this is LZDoom,
more testing to find anything else that breaks is wanted. Note that X
(and XWayland) don't work with this flag yet, so until the next update
don't set it in /etc/profile but use it directly when starting applications.


- MSAA support (!5782)

This is not optimised, and only a couple of applications work with it
currently, but work is ongoing to improve things, so hopefully by the next
update it should work with most applications.


Performance:

- Scheduling improvements (!5513)

Total improvements are by 7% for cycles and 6% for thread count on
average, or by 10% and 85% for affected shaders. Most applications
that are shader bound should be helped by this.


- Register pressure has been reduced in some vertex shaders (!5781)


Fixes:

- Flickering in Quake has finally been fixed (!5573)
- Fixed rendering when tracing GPU jobs (PAN_MESA_DEBUG=trace) (!5573)
- RGBA4 and RGB5_A1 framebuffers now work (!5573)
- Finer grained flushing for occlusion queries (!5676)
- The correct instruction tag is now used for texelFetch (!5782)
- Textures with stencil formats are now supported (!5827)
#5
thank you for the commentary. i tried alacritty with gl3. 3 on wayland and it built and launched, but the window was blank -- moved back to gles3. also firefox borked itself with opengl. now i know why! Smile

generally, i have noticed improvement with mesa-git and 5.8rc. appreciate your work.
#6
mesa-git-20.2.0_devel.126488.14a12b771d0-1:

Changes from 9418c8ec8dd to 14a12b771d0:

This is the largest set of changes to Panfrost in the last six months, so if
something didn't work before, now is a good time to try it again in case it
works now.


Last update I said that MSAA only worked with a couple of applications, but it
turns out that was just a configuration error on my side - MSAA should work for
all applications that use it (but with Xwayland a recent git xserver is needed).

If you don't install Mesa to /usr/lib, to get MSAA to work you may need to
export LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH from /usr/bin/Xorg (it's usually
already a wrapper script).


Features:

- Depth reload support (!5824)

This fixes many applications that require a flush in the middle of a frame, or
that need the depth buffer to be preserved between frames.

- ARB_blend_func_extended (!5620)

This is required for X with PAN_MESA_DEBUG=gl3 - it is now safe to set the flag
in /etc/profile or similar.

This also fixes stock alacritty, but the GLES versions might still have slightly
better performance.

- OpenGL ES 3.0 is enabled by default (!5858)

- Chromium now works (!5858):

To enable acceleration, go to chrome://flags, and enable "GPU rasterization"
and "Out of process rasterization".

Note that if you use Chromium in a 32-bit container, this will be using a
different version of Mesa which might not have this commit. /dev/dri will also
need to be bound into the container for acceleration to work.

- 8x MRT support (!5892)

This is needed for OpenGL 3 - now all that's left for 3.0 is NV_conditional_render.

- EXT_shader_framebuffer_fetch and KHR_blend_equation_advanced support (!5755)
- Per-sample shading support (!5929)
- FP16 support is enabled by default (!5960)
- Emulated RGTC support (!5975)

Performance:

- Frame throttling has been re-enabled (!5858)

This improves responsiveness during heavy workloads such as the refract demo of glmark2-es2.

- Fence waiting has been reduced (!5995)

This helps Chromium performance a bit.

- 16x8 and 8x4 tile sizes are now used. (!5892)

This can help performance sometimes when using MRT, for example with two
RGBA32 framebuffers. It will also speed up 8x MSAA when it is implemented...

Fixes:

- Faults when RASTERIZER_DISCARD is used have been fixed (!5858)
- MRT with blend shaders now works (!5892)
- KiCad 3D viewer rendering has been fixed (!5946)

Known regressions:

Commit 528e132d4f7 forces depth writeback even when it is not needed. This can
significantly hurt the performance of DarkPlaces, causing it to drop from 150 fps to 40 fps.


Finally, here is a picture of Windows DarkPlaces running via Wine and box86.
The emulation isn't perfect yet, so not everything is in the right place, and
performance is not perfect (see above), but it's almost playable:

[Image: 88793704-5a44c000-d1f1-11ea-909a-e6b9380ca622.png]
#7
Hey, I switched to mesa-git a while ago and I'm using retroarch on manjaro since the last 2 updates I get lots of flickering in the menus especially when I go to the library section where I'm supposed to see the games and their covert art, in the rest of the menus it's okay, I did not have that before, do you have any idea why this is happening and if I can fix it on my end or if you guys intend to do something about it?
#8
thanks for the updates and particilarly the configuration/default changes.

using mesa-git now 20.3 with good results with linux 5.8 and sway/wayland.

are there any caveats/improvements specifically with sway/wayland?
#9
(09-10-2020, 08:18 AM)Idaho Wrote: Hey, I switched to mesa-git a while ago and I'm using retroarch on manjaro since the last 2 updates I get lots of flickering in the menus especially when I go to the library section where I'm supposed to see the games and their covert art, in the rest of the menus it's okay, I did not have that before, do you have any idea why this is happening and if I can fix it on my end or if you guys intend to do something about it?

Can you trace it with apitrace, and upload the trace file?

After installing apitrace (it should be in the Manjaro repos), you can just do:

$ apitrace trace -a egl retroarch

and then reproduce the problem.

Check it replays with

$ apitrace replay retroarch.trace

(If that doesn't work, you might need to remove the file and try again without "-a egl")

Compress the file with xz / zstd / whatever then stick it somewhere I can download it.

I realise I've been neglecting to post anything here for a while, so
this has content from two or three updates...


mesa-git-20.3.0_devel.127750.ac6b8e42ce2-1:

Changes from 14a12b771d0 to ac6b8e42ce2:

Performance:

- Implement EXT_multisampled_render_to_texture, which improves WebGL
  perfomance in Chromium (!6161)

- Many refactorings, resulting in reduced CPU overhead

- Temporary buffers are now stored in an array rather than a hash table, reducing
  CPU overhead searching the table (!6494)

Fixes:

- Fix a crash in wined3d for Mesa compiled in debug mode (!6085)
- Fixes for some Firefox WebRender shaders (!6144)
- Fix a deadlock with Source engine games (!6190)
- AFBC (automatic texture compression) support (!6159)
- Many memory leak fixes (!6373)

Known regressions:

- The optimisation for streaming textures broke, impacting
  software-decoding mpv and some software-rendered games. This has
  been fixed upstream. (!6608)

- Synchronisation for AFBC blits has caused some applications, notably
  DarkPlaces, to drop to unplayable frame rates. There is no fix for this yet.

- SuperTuxKart has regressed, causing 'melty' characters. Now fixed upstream. (!6659)



OpenGL 3.0 is almost enabled by default now - only one more MR needs
to be merged for all required extensions to be supported (!6675)

Next week at XDC there is going to be some news about Panfrost,
but I'm not allowed to tell you what it is...
#10
wew. suspense! Smile


Possibly Related Threads…
Thread Author Replies Views Last Post
  Arm officially supports panfrost bastafari 1 2,947 09-18-2020, 09:19 AM
Last Post: bastafari

Forum Jump:


Users browsing this thread: 1 Guest(s)