mirror of https://github.com/PCSX2/pcsx2.git
gsdx: hidden option to better support dual context clut
Option is on by default. Just a safety net in case of regression Fix clut issue on virtua fighter (SW) and harley davidson (SW/HW).
This commit is contained in:
parent
9cd4984f7c
commit
c66004bbb2
|
@ -50,6 +50,7 @@ GSState::GSState()
|
||||||
m_NTSC_Saturation = theApp.GetConfigB("NTSC_Saturation");
|
m_NTSC_Saturation = theApp.GetConfigB("NTSC_Saturation");
|
||||||
m_userhacks_skipdraw = theApp.GetConfigB("UserHacks") ? theApp.GetConfigI("UserHacks_SkipDraw") : 0;
|
m_userhacks_skipdraw = theApp.GetConfigB("UserHacks") ? theApp.GetConfigI("UserHacks_SkipDraw") : 0;
|
||||||
m_userhacks_auto_flush = theApp.GetConfigB("UserHacks") ? theApp.GetConfigB("UserHacks_AutoFlush") : 0;
|
m_userhacks_auto_flush = theApp.GetConfigB("UserHacks") ? theApp.GetConfigB("UserHacks_AutoFlush") : 0;
|
||||||
|
m_clut_load_before_draw = theApp.GetConfigB("clut_load_before_draw");
|
||||||
|
|
||||||
s_n = 0;
|
s_n = 0;
|
||||||
s_dump = theApp.GetConfigB("dump");
|
s_dump = theApp.GetConfigB("dump");
|
||||||
|
@ -1512,6 +1513,15 @@ void GSState::FlushPrim()
|
||||||
{
|
{
|
||||||
GL_REG("FlushPrim ctxt %d", PRIM->CTXT);
|
GL_REG("FlushPrim ctxt %d", PRIM->CTXT);
|
||||||
|
|
||||||
|
// Some games (Harley Davidson/Virtua Fighter) do dirty trick with multiple contexts cluts
|
||||||
|
// In doubt, always reload the clut before a draw.
|
||||||
|
// Note: perf impact is likely slow enough as WriteTest will likely be false.
|
||||||
|
if (m_clut_load_before_draw) {
|
||||||
|
if (m_mem.m_clut.WriteTest(m_context->TEX0, m_env.TEXCLUT)) {
|
||||||
|
m_mem.m_clut.Write(m_context->TEX0, m_env.TEXCLUT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GSVertex buff[2];
|
GSVertex buff[2];
|
||||||
s_n++;
|
s_n++;
|
||||||
|
|
||||||
|
|
|
@ -136,6 +136,7 @@ class GSState : public GSAlignedClass<32>
|
||||||
void (*m_irq)();
|
void (*m_irq)();
|
||||||
bool m_path3hack;
|
bool m_path3hack;
|
||||||
bool m_init_read_fifo_supported;
|
bool m_init_read_fifo_supported;
|
||||||
|
bool m_clut_load_before_draw;
|
||||||
|
|
||||||
struct GSTransferBuffer
|
struct GSTransferBuffer
|
||||||
{
|
{
|
||||||
|
|
|
@ -284,6 +284,7 @@ void GSdxApp::Init()
|
||||||
m_default_configuration["capture_threads"] = "4";
|
m_default_configuration["capture_threads"] = "4";
|
||||||
m_default_configuration["CaptureHeight"] = "480";
|
m_default_configuration["CaptureHeight"] = "480";
|
||||||
m_default_configuration["CaptureWidth"] = "640";
|
m_default_configuration["CaptureWidth"] = "640";
|
||||||
|
m_default_configuration["clut_load_before_draw"] = "1";
|
||||||
m_default_configuration["crc_hack_level"] = "3";
|
m_default_configuration["crc_hack_level"] = "3";
|
||||||
m_default_configuration["CrcHacksExclusions"] = "";
|
m_default_configuration["CrcHacksExclusions"] = "";
|
||||||
m_default_configuration["debug_glsl_shader"] = "0";
|
m_default_configuration["debug_glsl_shader"] = "0";
|
||||||
|
|
Loading…
Reference in New Issue