gsdx-ogl: speed improvement for DATE

DATE is implemented in 2 ways.
1/ with stencil
2/ purely in FS (sw)

I kept method 1 to reduce the work on method 2. It sucks for performance.
So it would be either 1 or 2.

Note: DATE has a big impact on higher upscaling
Note2: you can disable the 2nd method with this configuration parameter

override_GL_ARB_shader_image_load_store = 0
This commit is contained in:
Gregory Hainaut 2015-04-22 00:36:34 +02:00
parent 15dcf07b3b
commit bd6ea17bdc
1 changed files with 3 additions and 2 deletions

View File

@ -217,7 +217,7 @@ void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sour
if(DATE)
{
// Note at the moment OGL has always stencil. Rt can be disabled
if(dev->HasStencil())
if(dev->HasStencil() && !advance_DATE)
{
GSVector4 s = GSVector4(rtscale.x / rtsize.x, rtscale.y / rtsize.y);
GSVector4 o = GSVector4(-1.0f, 1.0f);
@ -342,9 +342,10 @@ void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sour
if(DATE)
{
om_dssel.date = 1;
if (advance_DATE)
ps_sel.date = 1 + context->TEST.DATM;
else
om_dssel.date = 1;
}
if(env.COLCLAMP.CLAMP == 0 && /* hack */ !tex && PRIM->PRIM != GS_POINTLIST)