gsdx ogl: update accurate DATE behavior

* Fast accurate DATE is always enabled, it was faster than standard DATE

* The less fast version is always enabled too. It is likely barely used
  so perf impact will be small on few game that could hit this path.
  Nice rendering has a higher priority

* The "slow" path will depends on the date option.
Note normally it isn't too slow (-10%) if GL_ARB_shader_image_load_store
is supported but AMD crimson is an epic fail.
This commit is contained in:
Gregory Hainaut 2016-05-19 09:58:13 +02:00
parent 203fb71851
commit e258f3e2fa

View File

@ -820,8 +820,7 @@ void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sour
require_barrier = true;
DATE_GL45 = true;
DATE = false;
} else if (m_accurate_date && om_csel.wa /* FIXME Check the msb bit of the mask instead + the dfmt*/
&& (!m_context->TEST.ATE || m_context->TEST.ATST == ATST_ALWAYS)) {
} else if (om_csel.wa && (!m_context->TEST.ATE || m_context->TEST.ATST == ATST_ALWAYS)) {
// Performance note: check alpha range with GetAlphaMinMax()
// Note: all my dump are already above 120fps, but it seems to reduce GPU load
// with big upscaling
@ -841,7 +840,7 @@ void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sour
require_barrier = true;
DATE_GL45 = true;
DATE = false;
} else {
} else if (m_accurate_date) {
GL_PERF("Slow DATE with alpha %d-%d", m_vt.m_alpha.min, m_vt.m_alpha.max);
if (GLLoader::found_GL_ARB_shader_image_load_store) {