6 Replies Latest reply on Jan 12, 2015 4:39 AM by pal1000

    Problem with dual source alpha blending (GL_ARB_blend_func_extended) on Ivy Bridge on Intel HD Graphics 2500 - black screen

    pal1000

      Steps to reproduce:

      1. Get PPSSPP source code:

      git clone http://github.com/hrydgard/ppsspp.git ppsspp

      git pull -v --progress "origin"

      git submodule update --init

      2. Open solution PPSSPP\Windows\PPSSPP.sln in Visual Studio 2013

      3. Re-enable usage of dual source alpha blending for Intel iGPU on PPSSPP. It has been disabled due to this issue.

      -In solution explorer navigate to native - gfx - gl_state.cpp and search for gl_extensions.gpuVendor == GPU_VENDOR_INTEL

      -change the IF statement ensuring gl_extensions.ARB_blend_func_extended returns TRUE for GPU_VENDOR_INTEL. Changing it like this should do:

      if (!gl_extensions.VersionGEThan(3, 0, 0)) {

      ...

      }

      4. Build solution

      5. Get a game to reproduce with. I managed to reproduce this with Final Fantasy IV: The Complete Collection (ULUS10560)(commercial game) and

      God Eater 2 Trial (NPJH90338) (official game demo, freely redistributable).

      Download link for God Eater 2 Trial: http://www.pspdemocenter.com/page.php?id=4018

      The archive can be extracted manually to PPSSPP\memstick\PSP\GAME or by using PPSSPP's folder browser available on Games tab and opening the

      ZIP archive in it. This way PPSSPP will unpack the game demo in the correct location automatically.

      Result:

      God Eater 2 will automatically start in black screen; when it gets to a voice acted cutscene it will play it correctly, but when it ends, it returns back to black

      screen.

      Final Fantasy IV: The Complete Collection (ULUS10560) starts OK, but as soon as the autosave notification is closed (press CROSS; Z on keyboard)

      it permanently ends in black screen.

      The workaround is to mess with PPSSPP settings turning off Buffered Rendering, but this kills a lot of effects including dual source alpha blending usage.

      I originally reported this on PPSSPP bug tracker:

      https://github.com/hrydgard/ppsspp/issues/4848

      https://github.com/hrydgard/ppsspp/issues/4867

      Henrik Rydgard said it is a driver bug.