Dolphin, the GameCube and Wii emulator - Forums

Full Version: "Sparkles" in D3D fix on old Intel GPU
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
Here you go: https://dl.dropboxusercontent.com/u/23618751/Dolphin4.0.1288_glitch/x64_Intel_TEV_4.0-9224.zip

This is the latest master with the mentioned workaround for D3D. Only the users using Intel HD 4000 or older (or _very_ old drivers for HD 4600) benefit from this.
(04-19-2016, 02:44 AM)mimimi Wrote: [ -> ]Which one is faster on your system dx11 or opengl? If it's dx11, i'd ask to consider adding a workaround for this driver.
HD 4000 is definitely faster in direct3d. I would like this in too.
F-Zero is about the same ~46 fps
NSMBWii Peach birthday intro
D3d: 90 fps
Opengl: 70 fps

Also that build works perfect!
(04-19-2016, 02:44 AM)mimimi Wrote: [ -> ]Which one is faster on your system dx11 or opengl? If it's dx11, i'd ask to consider adding a workaround for this driver.

To be honest, I can't really say, 99% of time I'm using Dolphin I use the GeForce GT 635M which allows slight higher IRs than the integrated Intel HD 4000. And like the other NVIDIA GPUs, Dolphin works best with OGL here when using the GT 635M...

(I'll try to do some kind of benchmark with the Intel HD 4000 soon, then I report back)
I'm just wondering, how likely would this be in normal games/other emulators?
Intel released new drivers in May but they don't fix this.
Anyone suffering from this bug just has bad drivers unfortunately. Odds are that no game would realistically use integer math the way we do though.
(04-18-2016, 03:23 PM)TurboK Wrote: [ -> ]... One should note that the line numbers have changed in Source/Core/VideoCommon/PixelShaderGen.cpp since the, but the affected code seems to be intact so there is no reason for this not to work.

The latest says static void instead of static inline void like the one you sent me. Also the last group of changes is different. It works though.
(04-19-2016, 04:12 AM)TurboK Wrote: [ -> ]Here you go: https://dl.dropboxusercontent.com/u/23618751/Dolphin4.0.1288_glitch/x64_Intel_TEV_4.0-9224.zip

This is the latest master with the mentioned workaround for D3D. Only the users using Intel HD 4000 or older (or _very_ old drivers for HD 4600) benefit from this.

So Dolphin 5.0 was released earlier today (great!) and since it is a very stable version for all sorts of uses I wanted to update the version with the fix for old Intel HD drivers.

This version is based on the development build, and is already some commits ahead of 5.0 (note: this is for Windows!):
https://dl.dropboxusercontent.com/u/23618751/Dolphin4.0.1288_glitch/x64_Intel_TEV_5.0-12.zip

The source code for this can be found at
https://github.com/TurboK234/dolphin/tree/Intel_TEV
and the critical commit at
https://github.com/TurboK234/dolphin/commit/bce040e7035a32ab7c7ae1af13ff9e042fa5ee56

And if someone wants to keep their Dolphin up to date with the fix, I suggest that you
-create a Github account and fork Dolphin
-install Visual Studio 2015 with Git support (using the Dolphin wiki and other guides)
-clone (locally) your own Github fork as "origin" and set the official Dolphin master branch as "upstream"
-create a local "Intel_TEV" branch
-use VS2015 to edit the involved lines in PixelShaderGen.cpp (the commit linked above) (use copy-pasting, takes 5 minutes)
-save the changes, commit the changes locally
-optional: push your brand new fixed branch to your Github account ($ git push origin Intel_TEV)
-build your copy of Dolphin using VS2015
-when you want to update your local repository use $ git fetch upstream and $ git merge upstream/master and/or $ git rebase master
-when there eventually is a merge/rebase conflict either solve it manually or just delete the old fixed branch and create a new one (start from "-create a local..." line above)

Or at least these are the basic steps I keep following. There might be faster/easier ways, but with this (and guides that you find with Google) you'll get started.
Cool stuff. Can you upstream this please?

We recommend using driverdetails to check for the driver and bug so we can keep things clean and tracked

https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/DriverDetails.cpp
@Helios: Here's the original PR discussion (nearly two years ago) about including this in the master: https://github.com/dolphin-emu/dolphin/pull/509

At that time I thought that I would really need to do this every time I needed to update Dolphin, but luckily Intel fixed the drivers for Intel HD 4600+. This issue has recently been brought up by other users that have Intel HD 4000. Their drivers are still bugged and this fix is still valid for them and I just wanted to help with that.

And about using driverdetails... umm, I'm not a programmer, and I wouldn't even know how to do it, but if this is considered important enough then feel free to use the fix. It was originally invented by @magumagu , I'm not taking any credit for it Wink
Pages: 1 2 3 4