Last known working version: v1.5.0-dev-561-g1208dbe
Version with issue: v1.5.0-dev-569-gb9e8384 till recent git
PCSX2 options:
Default options
Plugins used:
Default plugins
Description of the issue:
OpenGL Is not available on Intel Haswell IGPUs. The issue could be present on both Sandy and Ivy Bridge. Broadwell and Skylake have not been tested.
I'm not sure if the issue is present on Windows 10. So far I've tested windows 7.
When a game is loaded the emulator shows the plugin configuration error and promotes the user to change some settings.
The following error is also displayed in the console:
(pxActionEvent) GS plugin failed to open!(thread:MTGS)(thread:EE Core)
Other errors are shown in the console as well as to what features and plugins are supported by the igpu and driver but I think they are not relevant.
How to reproduce the issue:
If you have an ivy , sandy , haswell chip run the emulator with opengl render using the igpu. (Also make sure you disable your dedicated gpu if you have one when running the emulator in opengl , if you don't it will try to use the dedicated gpu instead of the integrated even tho the integrated is selected)
Last known version to work:
v1.5.0-dev-561-g1208dbe
PC specifications:
i3 4160 , Intel HD 4400 , 16gb ram , Windows 7 64 bit
It's actually not a regression, it's a problem on Intel's end with their OpenGL driver support.
It would me much better to ask public review site to highlight the fact that Intel supports iGPU for 1-2 years (likely closer of 1). Note sandy bridge is working fine on Linux.... It misses real competition here.
Hmm my guess is haswell works on linux as well.
Heck for windows the last update we got was around April maybe.
Yes, I mean from Sandy Bridge up to latest Intel iGPU.
Is this the same of #345?
Also: it seems there are [kind of] newer drivers.
I dunno then if they are w10 only AND if they even differs from latest official ones in the first place.
There are beta drivers that are only for windows 10 except for skylake which supports 7 and 8.
And yea this sounds similar , I mean Gregory got it working on 1.4.0 and some 1.5 builds but later it stopped working.
As for dual source blending ye i know it doesn't work , same with accurate date and other extensions , but that's not the major issue , the real issue is opengl refuses to work on hw and sw render , It just shows the "gs plugin failed to load" message.
Could you post the detected extension on the log (likely in black and red) ?
There are beta drivers that are only for windows 10 except for skylake which supports 7 and 8.
You could try them then.
@mirh I can't , already tried , I get an installation error saying I don't meet the minimum requirements.
@gregory38 These? I included both the working and non working version.
1.5.0_561.txt
1.5.0_569.txt
Of course I meant on w10.
Then most of times it's pretty easy to hack back newer dlls.
Yes it misses the support of two 4.5 extensions
direct state access and texture barrier
(Note you don't need the full 4.5 support, only those 2 extensions). Need a better driver or complain on high coverage social network to force Intel to release a decent driver.
But 561 shows the exact same errors that you mentioned and it works.
Yes it was optional. Code is so much better with the new extension so I dropped the work around code.
Now I see.
http://www.intel.com/content/www/us/en/support/graphics-drivers/000005524.html
This is really bad for intel , it seems even skylake and kaby lake won't support opengl 4.5
And let's not talk about adding more features to older generations.
As I said you don't need the full support of gl 4.5. Only 2 extensions (technically DSA will be enough). I really don't understand what the Intel guys are doing. Most of 4.5 extensions are small. And it was released more than 2 years ago !
https://communities.intel.com/thread/37291?start=15&tstart=0
Thanks you Intel
That thread is just depressing to read. People have been asking since 2013 and they still didn't get an answer.
Perhaps like mirh said , someone could hack the dll files from newer drivers for kaby lake which may provide support but who knows if they actually will.
That's already a big if by itself (in the event they just put a block into the installer and they didn't drop actual code).
But if not even newest drivers for newest hardware work..
@lightningterror said: The issue could be present on both Sandy and Ivy Bridge.
Definitely. Sandy Bridge never worked. Ivy Bridge worked for a month in 2015. See #345.
Well intel provided new drivers recently , it's been almost a year since the previous release and I think this might be the last driver that will be released for Haswell and maybe Broadwell as well. Considering we have skylake and Kabylake now.
Sandy and Ivry bridge are marked for "End of Life" already.
Anyway no change , OpenGL doesn't work.
Then Mesa llvmpipe is the only option for Intel iGPU available here. I'll do my best to keep it up-to-date. I read on forums that even Skylake can't do it. But I think you are well aware of this as you posted on that thread as well.
Yeah it is just a shame that Intel doesn't have enough money to get an intern. (even that Intel GPUs are more expensive than Nvidia/AMD).
So I will try to add again an emulation layer of the direct state access extension. However I don't want to code an openGL emulator, so I will only do this single extension. I think it will be enough to boot on some iGPU. But you can forget about SB/IB on Windows.
Yes, Haswell would be the minimum as it was before.
Is it better now ?
@lightningterror @pal1000 could you test haswell and broadwell if the former doesn't work.
Okay so normal drivers don't work.
Only the Mesa driver provided by @pal1000 works. (but there are issues here , like when I change a setting and gdsx needs to restart I get the "Can't set the pixel format error")
HD 4400 igpu (haswell)
Can the opengl dll from mesa be put in plugins and make it work only under certain conditions like only if an intel gpu adapter is selected , if not then pcsx2 will load the default dll and not the mesa one?
Post me the gl detection status with Intel driver
lightningterror commented 5 hours ago • edited
Okay so normal drivers don't work.
Only the Mesa driver provided by @pal1000 works. (but there are issues here , like when I change a setting and gdsx needs to restart I get the "Can't set the pixel format error")
HD 4400 igpu (haswell)
Can the opengl dll from mesa be put in plugins and make it work only under certain conditions like only if an intel gpu adapter is selected , if not then pcsx2 will load the default dll and not the mesa one?
@lightningterror, that's issue #1817. It's behavior changed a bit after 674d22321af673574d774e30fd3c5023f302df38
Hum potentially some features are only available on win10. Or I forgot to add an optional argument somewhere.
gregory38 commented 4 hours ago
Hum potentially some features are only available on win10.
Very likely. The driver for Windows 7-8.1 is stuck on branch 15.36, while the one for Windows 10 is on branch 15.40, see:
https://downloadcenter.intel.com/search?keyword=HD+4400
@leshcat @PFCKrutonium @Arka161 can w10 intel drivers even be retrofitted for W7/8 ?
@mirh PHDGD Drivers have more optimized OpenGL Support. I've used OpenGL with Intel GMA 4500M with PHDGD Quebec Series many years ago.
@lightningterror could you share with us the opengl detection section in the emulog. This way we can see the missing extension and cross-check with http://opengl.gpuinfo.org/gl_listreports.php
PHDGD Drivers have more optimized OpenGL Support.
I'm not sure it is so optimized you added new GL extensions [was it to be the case in the first place] 😛
`PCSX2 1.5.0-20170217192042 - compiled on Feb 17 2017
Savestate version: 0x9a0d0000
Host Machine Init:
Operating System = Microsoft Windows 7 Ultimate Edition Service Pack 1 (build 7601), 64-bit
Physical RAM = 16249 MB
CPU name = Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz
Vendor/Model = GenuineIntel (stepping 03)
CPU speed = 3.598 ghz (4 logical threads)
x86PType = Standard OEM
x86Flags = bfebfbff 7fdafbbf
x86EFlags = 2c100000
x86 Features Detected:
SSE2.. SSE3.. SSSE3.. SSE4.1.. SSE4.2.. AVX.. AVX2.. FMA
Reserving memory for recompilers...
Loading plugins...
Binding GS: D:Program FilesPCSX2pluginsGSdx32-AVX2.dll
Binding PAD: D:Program FilesPCSX2pluginsLilyPad.dll
Binding SPU2: D:Program FilesPCSX2pluginsSpu2-X.dll
Binding CDVD: D:Program FilesPCSX2pluginscdvdGigaherz.dll
Binding USB: D:Program FilesPCSX2pluginsUSBnull.dll
Binding FW: D:Program FilesPCSX2pluginsFWnull.dll
Binding DEV9: D:Program FilesPCSX2pluginsDEV9null.dll
Plugins loaded successfully.
(GameDB) 9709 games on record (loaded in 155ms)
HLE Notice: ELF does not have a path.
Initializing plugins...
Init GS
Init PAD
Init SPU2
Init CDVD
Init USB
Init FW
Init DEV9
Plugins initialized successfully.
Patches: No CRC found, using 00000000 instead.
Opening plugins...
Opening GS
Opening PAD
Opening SPU2
Current Renderer: OpenGL (Hardware mode)
3.x GL context successfully created
Failed to find glCreateQueries
Failed to find glClearTexImage
Failed to find glClearTexSubImage
Failed to find glCreateTextures
Failed to find glTextureStorage2D
Failed to find glTextureSubImage2D
Failed to find glCopyTextureSubImage2D
Failed to find glBindTextureUnit
Failed to find glGetTextureImage
Failed to find glTextureParameteri
Failed to find glGenerateTextureMipmap
Failed to find glCreateFramebuffers
Failed to find glClearNamedFramebufferfv
Failed to find glClearNamedFramebufferuiv
Failed to find glClearNamedFramebufferiv
Failed to find glNamedFramebufferTexture
Failed to find glNamedFramebufferDrawBuffers
Failed to find glNamedFramebufferReadBuffer
Failed to find glNamedFramebufferParameteri
Failed to find glCheckNamedFramebufferStatus
Failed to find glCreateBuffers
Failed to find glNamedBufferStorage
Failed to find glNamedBufferData
Failed to find glNamedBufferSubData
Failed to find glMapNamedBuffer
Failed to find glMapNamedBufferRange
Failed to find glUnmapNamedBuffer
Failed to find glFlushMappedNamedBufferRange
Failed to find glCreateSamplers
@lightningterror I pushed a new commit. Could you retry thanks.
Doesn't work.
I need a log. It can't be the same error at the end.
Here you go xD
Ok. Rinse and repeat ;)
Edit: @lightningterror could you test latest build. I'm completely relying on you.
Yes yes I know , I had to wait for a download link to be available.
Works now.
Do you still need a log?
cool. Be sure to disable accurate blending on the HW renderer (any accurate option actually). It won't work correctly due to missing extension.
@pal1000 by curiousity what give you IvyBridge ?
I'll have results up soon , just need to update the driver.
Edit: @gregory38
Ivy Bridge not working.
emuLog.txt
Ok. It misses a 4.3 extension to copy texture. And maybe some others extensions too. I'm not sure this one is used on the SW renderer.
I did test sw render and got the same results.
@pal1000https://github.com/pal1000 by curiousity what give you IvyBridge ?
My laptop has an integrated IvyBridge-class GPU, and the latest development version works fine through WINE, but I'm pretty sure that still uses the Linux drivers.
Linux is another story the driver isn't crap unlike the Windows limited version. So yes, it runs fine even on SandyBridge.
@lightningterror my note was about to relax the constraint requirement for the SW renderer. But I'm sure it won't be enough.
@lightningterror
Haswell is working. SB/IB will need a real driver...
Could we close this issue ?
Unlikely to be openGL related. It will just postpone future upgrade...
I have that driver from Windows Update Catalog for a long time. It appears that now it was pushed to everyone. Unfortunately it didn't seam to change anything for OpenGL. OpenGL drivers ig4icd32.dll and ig4icd64.dll still refuse to load for Windows 10 aware applications. Basically if applications detect Windows 10 through any of following means OpenGL driver won't load:
[1][Minecraft stopped working after upgrade to Windows 10](http://www.minecraftforum.net/forums/support/unmodified-minecraft-client/2515070-windows-10-pixel-format-not-accelerated-error)
Other stuff that broke:
On a side note even with all the missing extensions OpenGL seems faster about 1-2 fps than DirectX on my HD4400.
It is definitely faster. I compared Final Fantasy X battle transition effect with Gsdx OpenGL software via llvmpipe 17.0.1 on Intel Core i3-2375M (speed drops down to 35%) and Gsdx DX10 Software on Intel HD Graphics 3000 (speed drops down to 40% !)
DirectX renderers seam to use the CPU a lot more than OpenGL. Otherwise this amazing edge case wouldn't happen. The iGPU OpenGL is up to 10-15x faster than llvmpipe on my system.
But do you think, I have slept for 2 years ;) Yes OpenGL ought to be lighter than DX. And a multithread capable driver ought to push it further.
Potentially I can maybe accelerate this one too
Edit: actually I'm not sure, there are pure SW texture too. I need to double check where is done the transfer to the GPU.
internal executable manifest (ex; PCSX2, Java JRE 8 Update 60 and up[1]);
You mean.. As in #795 ?
Does it change anything with custom drivers?
On a side note even with all the missing extensions OpenGL seems faster about 1-2 fps than DirectX on my HD4400.
Usually, skipping calculations has that effect =)
You mean.. As in #795 ?
Exactly
Does it change anything with custom drivers?
No. Leshcatlabs didn't even try fixing this. Intellimodder32 PHDGD are aware of this, but they never figured out how to fix it,
Using Compatibility mode doesn't help either because executable manifests (either internal or external) override OS emulation compatibility mode setting. Also Compatibility mode settings only impact User Mode API calls results, so that's why Virtualbox defeats Compatibility mode settings too.
Anyway this won't fix anything for PCSX2. OpenGL would just fail in other way.
http://www.anandtech.com/show/11279/intel-discontinues-the-intel-developer-forum-idf17-cancelled
Might affect driver development as well , I'm not sure tho.
TIL about this issue... @mirh sorry I never responded. TL;DR No, the drivers aren't backwards compat, for the most part. There are some components you can send backwards, but it causes more issues than it solves.
Well, in amd's case W10 drivers worked flawlessly on W7.
A pity then.
I wish you to find your favorite distro :)
AMD's drivers are a different breed, yah.
@Marcinosoft made a patch for SB driver 9.17.10.4459, that gets OpenGL working with apps advertising Windows 10 compatibility. It essentially tricks the driver into thinking is running under Windows 8.1 or older by falsifying the return value of GetMajorVersionExA.
https://github.com/LWJGL/lwjgl/issues/119#issuecomment-263710095
Just replace ig4icd32.dll in syswow64 and ig4icd64.dll in system32. theoretically you could drop ig4icd32.dll where pcsx2.exe is located, but PCSX2 would load it from syswow64 on first try, same as #1817.
Of course, though it won't work due to these problems:
but PCSX2 would load it from syswow64 on first try
Wat? This is new to me. I mean, again I'm basing my experience on amd ogl driver dll.. But I have no problems with replacing it in pcsx2 folder only.
@lightningterror I didn't find how to comment on the wiki directly. It is a good initiative but could you add that OpenGL driver sucks on Windows only. On Linux, SandyBridge and later are fully supported.
You don't comment on it , you just directly edit it. Anyway check now ,is it better ?
Yes but I wasn't in the mood. It is fine 👍
Skylake just got 4.5 on windows btw
There's another issue with Intel igpus. Whenever the render is restarted after closing the GSdx options pcsx2 crashes. It's probably a new driver issue.
VS points at GSRenderOGL.cpp line 1001 dev->DrawIndexedPrimitive();
time to re-open the issue?
Well It's not a driver issue but a regression probably. 1.4 Gsdx seems fine.
And I can't check older builds under 2143 since the buildbot doesn't work.
I think the regression was introduced this year tho as it was working fine before.
VS points to 3 entities when the crash occurs. The first one is the above I mentioned.
Second
GSRenderHW.cpp
pointing at if(fm != 0xffffffff && rt)
Third
MTGS.cpp
path.readAmount.fetch_sub(size, std::memory_order_acq_rel);
As for software mode well it doesn't work at all , this is the picture I'm getting.

Could you please open a new issue instead. (and it could still be an hardware issue)
I'll open as soon as I have enough information.
Most helpful comment
Exactly
No. Leshcatlabs didn't even try fixing this. Intellimodder32 PHDGD are aware of this, but they never figured out how to fix it,
Using Compatibility mode doesn't help either because executable manifests (either internal or external) override OS emulation compatibility mode setting. Also Compatibility mode settings only impact User Mode API calls results, so that's why Virtualbox defeats Compatibility mode settings too.
Anyway this won't fix anything for PCSX2. OpenGL would just fail in other way.