Dlist Cache step 2:

include referenced array data in the hash to avoid problems in some games.
this version is a slower than the last version but is more stable, still much work to do but so little time to do it :)
Added Dlist Caching Option to the plugin configuration so anyone can compare the performance change.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6205 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Rodolfo Osvaldo Bogado
2010-09-14 22:48:22 +00:00
parent 08b999dbfa
commit 73adab0ce1
8 changed files with 201 additions and 141 deletions

View File

@ -45,6 +45,7 @@ BEGIN_EVENT_TABLE(GFXConfigDialogDX,wxDialog)
EVT_CHOICE(ID_EFBSCALEMODE, GFXConfigDialogDX::DirectXSettingsChanged)
EVT_CHECKBOX(ID_EFB_ACCESS_ENABLE, GFXConfigDialogDX::DirectXSettingsChanged)
EVT_CHECKBOX(ID_SAFETEXTURECACHE, GFXConfigDialogDX::DirectXSettingsChanged)
EVT_CHECKBOX(ID_DLISTCACHING, GFXConfigDialogDX::DirectXSettingsChanged)
EVT_RADIOBUTTON(ID_RADIO_SAFETEXTURECACHE_SAFE, GFXConfigDialogDX::DirectXSettingsChanged)
EVT_RADIOBUTTON(ID_RADIO_SAFETEXTURECACHE_NORMAL, GFXConfigDialogDX::DirectXSettingsChanged)
EVT_RADIOBUTTON(ID_RADIO_SAFETEXTURECACHE_FAST, GFXConfigDialogDX::DirectXSettingsChanged)
@ -111,6 +112,7 @@ void GFXConfigDialogDX::InitializeGUIValues()
m_EFBScaleMode->SetSelection(g_Config.iEFBScale);
m_EnableEFBAccess->SetValue(g_Config.bEFBAccessEnable);
m_SafeTextureCache->SetValue(g_Config.bSafeTextureCache);
m_DlistCaching->SetValue(g_Config.bDlistCachingEnable);
if(g_Config.iSafeTextureCache_ColorSamples == 0)
m_Radio_SafeTextureCache_Safe->SetValue(true);
else
@ -214,7 +216,7 @@ void GFXConfigDialogDX::CreateGUIControls()
m_Radio_SafeTextureCache_Safe = new wxRadioButton( m_PageDirect3D, ID_RADIO_SAFETEXTURECACHE_SAFE, wxT("safe"), wxDefaultPosition, wxDefaultSize, 0 );
m_Radio_SafeTextureCache_Normal = new wxRadioButton( m_PageDirect3D, ID_RADIO_SAFETEXTURECACHE_NORMAL, wxT("normal"), wxDefaultPosition, wxDefaultSize, 0 );
m_Radio_SafeTextureCache_Fast = new wxRadioButton( m_PageDirect3D, ID_RADIO_SAFETEXTURECACHE_FAST, wxT("fast"), wxDefaultPosition, wxDefaultSize, 0 );
m_DlistCaching = new wxCheckBox( m_PageDirect3D, ID_DLISTCACHING, wxT("Use DList Caching"), wxDefaultPosition, wxDefaultSize, 0 );
// Sizers
wxGridBagSizer* sBasic;
wxBoxSizer* sGeneral;
@ -234,6 +236,7 @@ void GFXConfigDialogDX::CreateGUIControls()
sBasic->Add( m_EFBScaleText, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
sBasic->Add( m_EFBScaleMode, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
sBasic->Add( m_EnableEFBAccess, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
sBasic->Add( m_DlistCaching, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
sbBasic->Add( sBasic, 0, 0, 5 );
sGeneral->Add( sbBasic, 0, wxEXPAND|wxALL, 5 );
@ -412,6 +415,9 @@ void GFXConfigDialogDX::DirectXSettingsChanged(wxCommandEvent& event)
case ID_SAFETEXTURECACHE:
g_Config.bSafeTextureCache = m_SafeTextureCache->IsChecked();
break;
case ID_DLISTCACHING:
g_Config.bDlistCachingEnable = m_DlistCaching->IsChecked();
break;
case ID_RADIO_SAFETEXTURECACHE_SAFE:
g_Config.iSafeTextureCache_ColorSamples = 0;
break;

View File

@ -100,7 +100,7 @@ class GFXConfigDialogDX : public wxDialog
wxRadioButton *m_Radio_SafeTextureCache_Fast;
wxRadioButton *m_Radio_SafeTextureCache_Normal;
wxRadioButton *m_Radio_SafeTextureCache_Safe;
wxCheckBox *m_DlistCaching;
//Enhancements Tab
wxCheckBox *m_ForceFiltering;
wxCheckBox *m_MaxAnisotropy;
@ -141,6 +141,7 @@ class GFXConfigDialogDX : public wxDialog
ID_RADIO_SAFETEXTURECACHE_SAFE,
ID_RADIO_SAFETEXTURECACHE_NORMAL,
ID_RADIO_SAFETEXTURECACHE_FAST,
ID_DLISTCACHING,
ID_FORCEFILTERING,
ID_FORCEANISOTROPY,
ID_LOADHIRESTEXTURES,