dolphin/Source/Core
Ryan Houdek 6d4867e36a Fixes missing objects on Adreno hardware.
This particular bug from our friends over at Qualcomm manifests itself due to our alpha testing code having a conditional if statement in it.
This is a fairly recent breakage this time around, it was introduced in the v95 driver which comes with Android 5.0 on the Nexus 5.

So to break this issue down; In our alpha testing code we have two comparisons that happen and if they are true we will continue rendering, but if
they aren't true we do an early discard and return. This is summed up with a fairly simple if statement.

if (!(condition_1 <logic op> condition_2)) { /* discard and return */ }

This particular issue isn't actually due to the conditions within the if statement, but the negation of the result. This is the particular issue that
causes Qualcomm to fall flat on its face while doing so.

I've got two simple test cases that demonstrate this.
Non-working: http://hastebin.com/evugohixov.avrasm
Working: http://hastebin.com/afimesuwen.avrasm

As one can see, the disassembled output between the two shaders is different even though in reality it should have the same visual result.

I'm currently writing up a simple test program for Qualcomm to enjoy, since they will be asking for one when I tell them about the bug.
It will be tracked in our video driver failure spreadsheet along with the others.
2014-10-29 06:21:03 -05:00
..
AudioCommon Fixes OpenSLES's sample rate. 2014-10-23 11:29:49 -05:00
Common BreakPoints: Fix compile warning 2014-10-28 12:22:30 -07:00
Core Merge pull request #1428 from phire/fixPaletteCpy 2014-10-29 12:25:57 +11:00
DiscIO VolumeCreator: Make master key arrays static 2014-10-12 15:07:39 -04:00
DolphinQt Merge pull request #1403 from waddlesplash/dolphin-qt 2014-10-28 16:15:04 -04:00
DolphinWX Merge pull request #1291 from skidau/debugger-step-out 2014-10-28 12:53:22 +11:00
InputCommon Make some OSX-only functions static 2014-10-28 08:41:50 -04:00
UICommon Migrate global init stuff into UICommon. 2014-10-05 20:47:37 -04:00
VideoBackends OGL: Get rid of error macros 2014-10-26 04:54:58 -04:00
VideoCommon Fixes missing objects on Adreno hardware. 2014-10-29 06:21:03 -05:00
CMakeLists.txt Merge pull request #1085 from waddlesplash/refactoring 2014-10-05 21:25:44 -04:00