It probably just means your hardware is bottlenecked somewhere, most likely cpu limited.
Also what AMD graphics driver version are you on? As it looks to be out of date.
AMD massively improved their OpenGL driver in driver version 22.7.1 and Minecraft saw a big performance increase, try the latest driver 22.8.2.
Have a look at the info I posted in MC-249275 , particularly the config file setup and settings link.
Probably worth playing about with these settings...
channels, stereo-mode, stereo-encoding, cf_level
@haloman30 , check my comments on MC-249275
I think what would be good is for MC to create and use it's own alsoft.ini file (if it's in the games java dir I believe it's settings would take precedence over the appdata one) and expose certain options like stereo mode etc in MC's gui options.
Found out a way to use a different version of the ALsoft dll with MC.
You can add this line to the end of your java args in the launcher...
-Dorg.lwjgl.openal.libname="{path}\{file}"
...to get MC to use a different dll for OpenAL.
Go to %appdata%\.minecraft\libraries\org\lwjgl\lwjgl-openal\3.2.2\ and open archive or unzip the lwjgl-openal-3.2.2-natives-windows.jar file.
In here is a OpenAL.dll that is used pre 1.19 MC.
Go to %appdata%\.minecraft\libraries\org\lwjgl\lwjgl-openal\3.3.1\ and open or unzip the lwjgl-openal-3.3.1-natives-windows.jar file.
In here is \windows\x64\org\lwjgl\openal\OpenAL.dll that is used for 1.19 MC
So you can use one of those by extracting the dll out of the jar archive then use the java arg to point to it.
If you want to try a newer version
Go to https://openal-soft.org/openal-releases/ for the latest release version 1.22.2, you want the \bin\Win64\softoal.dll from that archive.
If you want the latest dev version go to https://github.com/kcat/openal-soft/actions and click the latest fix for the master branch and there should be a zip with just the softoal.dll in it.
Follow up to my post above.
One other thing that might be causing the OP to get such different results is that the HRTF profile they link is out of date and I don't think it should be used with the version of OAL that MC is currently using.
I believe that HRTF profile is pre alsoft v1.19.
Pre alsoft v1.19 HRFT profiles should not be used with post 1.19 versions as the format changed.
Probably should be using the one from here but tbh there shouldn't be any need as if no profile file is used alsoft will just use it's built in default anyway which I would guess is basically the same.
With the info posted above OP should be able to test this and see.
I've been playing about with this, here's a few things I came across that may help troubleshoot/fix.
MC Java has been using OpenAL soft for a while now as part of LWJGL and it's been possible for a while to enable HRFT by configuring OpenAL soft.
You can set a couple of environment variables to get ALsoft to output a log file.
ALSOFT_LOGLEVEL=3
ALSOFT_LOGFILE=alsoftlog.txt
log level can be 0..3, 0 is off, 3 is most logging.
Log file name can be whatever, with just a filename and no path it was putting the log file into my %appdata%\.minecraft folder. You should be able to add a path to put it elsewhere.
Log file will be overwritten each time MC loads.
Just loading to MC's main menu, toggling the HRTF option and then quitting MC should log enough to see what is going on.
You can create a config file for ALsoft to use.
File name needs to be alsoft.ini and can be stored in a few locations.
%appdata% is the first path checked (or maybe second if it checks where the dll is but see later on). Putting the ini here will be used by any application on the system that uses ALsoft, so be aware.
Next path that gets checked is the path of the calling exe, normally the game's exe. For us that is javaw.exe.
I used procexp to see where the new launcher is calling java from and tried to put the ini in there but it seems to get deleted when running mc.
I have a downloaded and extracted copy of jdk-17.0.4 and putting the ini file in the same directory as javaw.exe and using that java to run mc worked. This is basically so you can just have that ini only affecting an app that uses that version of java and oalsoft. So basically in this case is a way to limit the config to just mc.
You can check the link to see all the settings and their values that can go in the ini but here are some I've been testing that may help...
---------------------
[General]
channels=stereo
sample-type=float32
frequency=48000
stereo-mode=headphones
hrtf=true
hrtf-mode = full
default-hrtf=default-48000
#default-reverb=ConcertHall
---------------------
The default reverb entry was just there as it was a quick way to make sure mc was definitely using it, you could hear the reverb straight away on the title screen.
You can also go to the OpenAL soft web page and download openal-soft-1.22.2-bin.zip for the latest compiled binaries and use the gui config tool to create the ini file.
\alsoft-config\alsoft-config.exe
If you want to use a different HRTF file, as the OP posted, there a couple of things to know. By default it will look in the following locations...
%appdata%\.minecraft\
%appdata%\openal\hrtf\
C:\ProgramData\openal\hrtf\
You can put your *.mhr HRTF files in those locations, you can also add extra paths via the ini file. Be aware it will add entries for all valid files in those dirs but only use one. No idea what impact that might have but probably best to just have the one file you want to use as the default.
In the 1.22.2 zip linked above there is also a tool for generating mhr files.
\makemhr\makemhr.exe
There's load of info on the web on generating your own or how to listen to samples to work out what works for you out of a bunch of pre-generated ones and then downloading the best one. Or you can go crazy and send companies photos of your ears or go get your head 3d scanned I guess. 😃
The built in HRTF is for 44100hz and for me resamples to 48000hz, as that is what my headphone device is set to.
As a test I downloaded and used the HRTF example the OP mentioned.
The 'default-hrtf=default-48000' line in my ini file entries above tells it to look for and use the default-48000 HRTF from any mhr HRTF files it found and loaded before.
The current version of LWJGL used in MC is '3.3.1-build-7' and the version of OpenAL soft from that is 'v1.21.1-2290817 master'.
There is a newer release (and newer non release builds) of OpenAL soft on the github but the bit of playing about I did I didn't manage to get mc to use a different version of the dll. Tried copying it to various places, renaming it, replacing openal.dll in the lwjgl jar file a few thing but mc would ignore it, overwrite it or just crash on load with an error.
Someone with more knowledge could probably mod it in more easily.
Sorry if this is telling anyone what they already know and apologies for the long post but hopefully it can help the OP or anyone else who comes across it.
Seeing the same issue in 1.15.1, adding some screens to back up the original post..
Have also seen other mobs get stuck on top of end rods.. Golems and Skeleton Horses
Thanks.
[media]
17% is most likely total CPU usage. Minecraft, like most games, is single thread/core limited.
Maybe the new OpenGL driver isn't compatible with your iGPU but the version number on the F3 screens you posted doesn't look like the latest.
Does your laptop? have a second dedicated GPU it can use or just the iGPU?