mirror of https://github.com/PCSX2/pcsx2.git
gsdx-ogl: add 2 options in the GUI to ease testing
accurate_date => use an emulated stencil to compute destination alpha test (could be slow) accurate_blend => do nothing (future)
This commit is contained in:
parent
4c91bab00e
commit
b490085214
|
@ -447,9 +447,8 @@ namespace GLLoader {
|
|||
// GL4.2
|
||||
if (ext.compare("GL_ARB_shading_language_420pack") == 0) found_GL_ARB_shading_language_420pack = true;
|
||||
if (ext.compare("GL_ARB_texture_storage") == 0) found_GL_ARB_texture_storage = true;
|
||||
// Only enable this extension on nvidia
|
||||
// It is too costly on perf (big upscaling), code need to updated to reduce the number of draw stage
|
||||
//if (nvidia_buggy_driver && ext.compare("GL_ARB_shader_image_load_store") == 0) found_GL_ARB_shader_image_load_store = true;
|
||||
// (I'm not sure AMD supports correctly GL_ARB_shader_image_load_store
|
||||
if (ext.compare("GL_ARB_shader_image_load_store") == 0) found_GL_ARB_shader_image_load_store = true;
|
||||
// GL4.3
|
||||
if (ext.compare("GL_ARB_copy_image") == 0) found_GL_ARB_copy_image = true;
|
||||
if (ext.compare("GL_ARB_explicit_uniform_location") == 0) found_GL_ARB_explicit_uniform_location = true;
|
||||
|
|
|
@ -290,11 +290,14 @@ void populate_hw_table(GtkWidget* hw_table)
|
|||
|
||||
GtkWidget* paltex_check = CreateCheckBox("Allow 8 bits textures", "paltex");
|
||||
GtkWidget* fba_check = CreateCheckBox("Alpha correction (FBA)", "fba", true);
|
||||
GtkWidget* acc_blend_check = CreateCheckBox("Accurate Blend", "accurate_blend", false);
|
||||
GtkWidget* acc_date_check = CreateCheckBox("Accurate Date", "accurate_date", false);
|
||||
|
||||
s_table_line = 0;
|
||||
InsertWidgetInTable(hw_table, filter_label, filter_combo_box);
|
||||
InsertWidgetInTable(hw_table, af_label, af_combo_box);
|
||||
InsertWidgetInTable(hw_table, paltex_check, fba_check);
|
||||
InsertWidgetInTable(hw_table, acc_blend_check, acc_date_check);
|
||||
}
|
||||
|
||||
void populate_gl_table(GtkWidget* gl_table)
|
||||
|
|
|
@ -27,16 +27,29 @@
|
|||
GSRendererOGL::GSRendererOGL()
|
||||
: GSRendererHW(new GSTextureCacheOGL(this))
|
||||
{
|
||||
m_fba = !!theApp.GetConfig("fba", 1);
|
||||
UserHacks_AlphaHack = !!theApp.GetConfig("UserHacks_AlphaHack", 0) && !!theApp.GetConfig("UserHacks", 0);
|
||||
UserHacks_AlphaStencil = !!theApp.GetConfig("UserHacks_AlphaStencil", 0) && !!theApp.GetConfig("UserHacks", 0);
|
||||
UserHacks_DateGL4 = !!theApp.GetConfig("UserHacks_DateGL4", 0);
|
||||
m_fba = theApp.GetConfig("fba", 1);
|
||||
m_pixelcenter = GSVector2(-0.5f, -0.5f);
|
||||
UserHacks_Unscale_sprite = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_UnscaleSprite", 0) : 0;
|
||||
|
||||
UserHacks_TCOffset = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_TCOffset", 0) : 0;
|
||||
UserHacks_TCO_x = (UserHacks_TCOffset & 0xFFFF) / -1000.0f;
|
||||
UserHacks_TCO_y = ((UserHacks_TCOffset >> 16) & 0xFFFF) / -1000.0f;
|
||||
m_accurate_blend = theApp.GetConfig("accurate_blend", 0);
|
||||
m_accurate_date = theApp.GetConfig("accurate_date", 0);
|
||||
|
||||
UserHacks_AlphaHack = theApp.GetConfig("UserHacks_AlphaHack", 0);
|
||||
UserHacks_AlphaStencil = theApp.GetConfig("UserHacks_AlphaStencil", 0);
|
||||
UserHacks_DateGL4 = theApp.GetConfig("UserHacks_DateGL4", 0);
|
||||
UserHacks_Unscale_sprite = theApp.GetConfig("UserHacks_UnscaleSprite", 0);
|
||||
UserHacks_TCOffset = theApp.GetConfig("UserHacks_TCOffset", 0);
|
||||
UserHacks_TCO_x = (UserHacks_TCOffset & 0xFFFF) / -1000.0f;
|
||||
UserHacks_TCO_y = ((UserHacks_TCOffset >> 16) & 0xFFFF) / -1000.0f;
|
||||
|
||||
if (!theApp.GetConfig("UserHacks", 0)) {
|
||||
UserHacks_AlphaHack = false;
|
||||
UserHacks_AlphaStencil = false;
|
||||
UserHacks_DateGL4 = false;
|
||||
UserHacks_Unscale_sprite = 0;
|
||||
UserHacks_TCOffset = 0;
|
||||
UserHacks_TCO_x = 0;
|
||||
UserHacks_TCO_y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool GSRendererOGL::CreateDevice(GSDevice* dev)
|
||||
|
@ -246,7 +259,7 @@ void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sour
|
|||
DATE_GL45 = true;
|
||||
DATE = false;
|
||||
} else if (om_csel.wa && (!context->TEST.ATE || context->TEST.ATST == ATST_ALWAYS)) {
|
||||
DATE_GL42 = GLLoader::found_GL_ARB_shader_image_load_store && !UserHacks_AlphaStencil;
|
||||
DATE_GL42 = m_accurate_date && GLLoader::found_GL_ARB_shader_image_load_store && !UserHacks_AlphaStencil;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,9 @@ class GSRendererOGL : public GSRendererHW
|
|||
private:
|
||||
GSVector2 m_pixelcenter;
|
||||
bool m_fba;
|
||||
bool m_accurate_blend;
|
||||
bool m_accurate_date;
|
||||
|
||||
bool UserHacks_AlphaHack;
|
||||
bool UserHacks_AlphaStencil;
|
||||
bool UserHacks_DateGL4;
|
||||
|
|
Loading…
Reference in New Issue