Compare commits

...
10 Commits
Author SHA1 Message Date
TJnotJTandlightningterror ab6bc30aec GS:DX11: Fix typo in query destruction.
Fixes a bug when disabling then enabling pipeline stats.
2026-07-31 17:28:57 +02:00
TJnotJTandlightningterror 5793dbc1ef GS:HW: Only enable GPU timing/stats in backend if the option is enabled.
Helps prevent a crash in Mesa3D Windows drivers.
2026-07-31 17:28:57 +02:00
PCSX2 BotandTy 773f96a312 [ci skip] Qt: Update Base Translation. 2026-07-30 20:43:11 -04:00
jasaavedandTy af9b61a9f7 FullscreenUI: Fix game list appearing empty after exiting and re-entering
When FullscreenUI shuts down, the cached vector of unsorted entries isn't reset. On re-entering FSUI within the same session, if the game list hasn't changed, the populate check thinks nothing needs updating and skips the rebuild, leaving the list empty.

Reset s_last_unsorted_entries on shutdown so the list rebuilds correctly on re-entering.
2026-07-30 09:36:14 -04:00
chaoticgdandTy aae9438f98 MicroVU: Unjumble EATAN coefficients 2026-07-30 09:33:41 -04:00
TellowKrinkleandlightningterror 523785d3df Qt: Remove m_pending_window_*
m_last_window_* is pretty much the same, and that way we won't forget to update one like we did in DisplaySurface::getWindowInfo
2026-07-29 21:35:02 +02:00
PCSX2 Botandlightningterror 4a92f1c472 [ci skip] Qt: Update Base Translation. 2026-07-29 02:27:59 +02:00
lightningterror 053b42d36c GameDB: Add missing tex in rt for some GITS regions. 2026-07-28 22:49:08 +02:00
Mrlinkwiiandlightningterror cf5dce2657 GameDB: add missing games and memcardFilters 2026-07-28 21:59:20 +02:00
lightningterror 645a37ad58 GS/VK: Fix crash when no device is created and vk is the selected renderer. 2026-07-28 16:50:08 +02:00
11 changed files with 289 additions and 282 deletions
+10 -1
View File
@@ -185,6 +185,7 @@ PAPX-90020:
estimateTextureRegion: 1 # Improves performance and reduces hash cache size.
halfPixelOffset: 2 # Aligns post effects.
nativeScaling: 1 # Fixes post effects.
textureInsideRT: 1 # Fixes post shuffles.
PAPX-90201:
name: "ファンタビジョン [体験版]"
name-sort: "ふぁんたびじょん [たいけんばん]"
@@ -9111,6 +9112,7 @@ SCPS-15064:
estimateTextureRegion: 1 # Improves performance and reduces hash cache size.
halfPixelOffset: 2 # Aligns post effects.
nativeScaling: 1 # Fixes post effects.
textureInsideRT: 1 # Fixes post shuffles.
patches:
A5768F53:
content: |-
@@ -32427,6 +32429,10 @@ SLKA-25255:
name-sort: "Mobile Suit Gundam Seed - Kkeunnaji Anneun Naeillo"
name-en: "Mobile Suit Gundam Seed - Never Ending Tomorrow"
region: "NTSC-K"
SLKA-25256:
name: "UEFA 챔피언스 리그 2006-2007"
name-en: "UEFA Champions League 2006-2007"
region: "NTSC-K"
SLKA-25257:
name: "풍운 막말전" # Undumped on ReDump as of 2025-08-28
name-en: "Fu-un Bakumatsu-den"
@@ -32656,7 +32662,7 @@ SLKA-25299:
SLKA-25300:
name: "디지털 데빌 사가: 아바탈 튜너 [Special Package]"
name-en: "Digital Devil Saga - Avatar Tuner [Special Package]"
region: "NTSC-J-K"
region: "NTSC-K"
compat: 5
gameFixes:
- EETimingHack
@@ -64189,6 +64195,9 @@ SLPS-73270:
name-sort: "すーぱーろぼっとたいせんZ [PlayStation2 the Best]"
name-en: "Super Robot Taisen Z [PlayStation2 the Best]"
region: "NTSC-J"
memcardFilters:
- "SLPS-73270"
- "SLPS-25887"
SLPS-73401:
name: "はじめの一歩 VICTORIOUS BOXERS CHAMPIONSHIP VERSION [PlayStation2 the Best]"
name-sort: "はじめのいっぽ VICTORIOUS BOXERS CHAMPIONSHIP VERSION [PlayStation2 the Best]"
+1 -5
View File
@@ -284,7 +284,7 @@ void DisplaySurface::handleKeyInputEvent(QEvent* event)
void DisplaySurface::onResizeDebounceTimer()
{
emit windowResizedEvent(m_pending_window_width, m_pending_window_height, m_pending_window_scale);
emit windowResizedEvent(m_last_window_width, m_last_window_height, m_last_window_scale);
}
bool DisplaySurface::event(QEvent* event)
@@ -397,10 +397,6 @@ bool DisplaySurface::event(QEvent* event)
// avoid spamming resize events for paint events (sent on move on windows)
if (m_last_window_width != scaled_width || m_last_window_height != scaled_height || m_last_window_scale != dpr)
{
m_pending_window_width = scaled_width;
m_pending_window_height = scaled_height;
m_pending_window_scale = dpr;
m_last_window_width = scaled_width;
m_last_window_height = scaled_height;
m_last_window_scale = dpr;
-4
View File
@@ -70,9 +70,5 @@ private:
float m_last_window_scale = 1.0f;
QTimer* m_resize_debounce_timer = nullptr;
u32 m_pending_window_width = 0;
u32 m_pending_window_height = 0;
float m_pending_window_scale = 1.0f;
QWidget* m_container = nullptr;
};
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -161,9 +161,9 @@ static bool OpenGSDevice(GSRendererType renderer, bool clear_state_on_fail, bool
return false;
}
if (!g_gs_device->SetGPUTimingEnabled(true))
if (GSConfig.OsdShowGPU && !g_gs_device->SetGPUTimingEnabled(true))
GSConfig.OsdShowGPU = false;
if (!g_gs_device->SetGPUPipelineStatisticsEnabled(true))
if (GSConfig.OsdShowGPUStats && !g_gs_device->SetGPUPipelineStatisticsEnabled(true))
GSConfig.OsdShowGPUStats = false;
Console.WriteLn(Color_StrongGreen, "%s Graphics Driver Info:", GSDevice::RenderAPIToString(new_api));
@@ -881,9 +881,9 @@ void GSUpdateConfig(const Pcsx2Config::GSOptions& new_config)
g_gs_renderer->PurgeTextureCache(true, false, true);
}
if (GSConfig.OsdShowGPU && !old_config.OsdShowGPU)
if (GSConfig.OsdShowGPU != old_config.OsdShowGPU)
{
if (!g_gs_device->SetGPUTimingEnabled(true))
if (!g_gs_device->SetGPUTimingEnabled(GSConfig.OsdShowGPU))
GSConfig.OsdShowGPU = false;
}
+7 -7
View File
@@ -1167,7 +1167,7 @@ void GSDevice11::DestroyTimestampQueries()
m_read_timestamp_query = 0;
m_write_timestamp_query = 0;
m_waiting_timestamp_queries = 0;
m_timestamp_query_started = 0;
m_timestamp_query_started = false;
}
void GSDevice11::PopTimestampQuery()
@@ -1286,13 +1286,13 @@ void GSDevice11::DestroyPipelineStatisticsQueries()
return;
if (m_pipeline_statistics_query_started)
m_ctx->End(m_pipeline_statistics_queries[m_write_timestamp_query].get());
m_ctx->End(m_pipeline_statistics_queries[m_write_pipeline_statistics_query].get());
m_timestamp_queries = {};
m_read_timestamp_query = 0;
m_write_timestamp_query = 0;
m_waiting_timestamp_queries = 0;
m_timestamp_query_started = 0;
m_pipeline_statistics_queries = {};
m_read_pipeline_statistics_query = 0;
m_write_pipeline_statistics_query = 0;
m_waiting_pipeline_statistics_queries = 0;
m_pipeline_statistics_query_started = false;
}
void GSDevice11::PopPipelineStatisticsQuery()
+1 -1
View File
@@ -1292,7 +1292,7 @@ bool GSDeviceOGL::SetGPUPipelineStatisticsEnabled(bool enabled)
else
DestroyPipelineStatisticsQueries();
return true;
return (enabled == m_gpu_pipeline_statistics_enabled);
}
void GSDeviceOGL::DrawPrimitive()
+6 -3
View File
@@ -1150,7 +1150,7 @@ GPUPipelineStatistics GSDeviceVK::GetAndResetAccumulatedGPUPipelineStatistics()
bool GSDeviceVK::SetGPUPipelineStatisticsEnabled(bool enabled)
{
m_gpu_pipeline_statistics_enabled = enabled && m_gpu_pipeline_statistics_supported;
return true;
return (enabled == m_gpu_pipeline_statistics_enabled);
}
void GSDeviceVK::ScanForCommandBufferCompletion()
@@ -2254,8 +2254,11 @@ void GSDeviceVK::Destroy()
m_swap_chain.reset();
DestroySpinResources();
DestroyResources();
if (m_device != VK_NULL_HANDLE)
{
DestroySpinResources();
DestroyResources();
}
VKShaderCache::Destroy();
+1 -1
View File
@@ -557,6 +557,7 @@ void FullscreenUI::Shutdown(bool clear_state)
CloseCoverDownloaderWindow();
s_cover_image_map.clear();
s_game_list_sorted_entries = {};
s_last_unsorted_entries = {};
s_game_list_directories_cache = {};
s_game_cheat_unlabelled_count = 0;
s_enabled_game_cheat_cache = {};
@@ -2467,7 +2468,6 @@ void FullscreenUI::PopulateGameListEntryList()
static int s_last_sort = -1;
static bool s_last_reverse = false;
static bool s_last_prefer_eng = false;
static std::vector<const GameList::Entry*> s_last_unsorted_entries;
// Sort can be expensive, try to avoid when possible
const u32 count = GameList::GetEntryCount();
+3
View File
@@ -369,6 +369,9 @@ namespace FullscreenUI
inline std::vector<const GameList::Entry*> s_game_list_sorted_entries;
inline GameListView s_game_list_view = GameListView::Grid;
// Cached list of unsorted game list entries; used to detect changes and re-sort when needed
inline std::vector<const GameList::Entry*> s_last_unsorted_entries;
//////////////////////////////////////////////////////////////////////////
// Background
//////////////////////////////////////////////////////////////////////////
+4 -4
View File
@@ -25,10 +25,10 @@ struct mVU_Globals
u32 one [4] = __four(0x3f800000);
u32 Pi4 [4] = __four(0x3f490fdb);
u32 T1 [4] = __four(0x3f7ffff5);
u32 T5 [4] = __four(0xbeaaa61c);
u32 T2 [4] = __four(0x3e4c40a6);
u32 T3 [4] = __four(0xbe0e6c63);
u32 T4 [4] = __four(0x3dc577df);
u32 T2 [4] = __four(0xbeaaa61c);
u32 T3 [4] = __four(0x3e4c40a6);
u32 T4 [4] = __four(0xbe0e6c63);
u32 T5 [4] = __four(0x3dc577df);
u32 T6 [4] = __four(0xbd6501c4);
u32 T7 [4] = __four(0x3cb31652);
u32 T8 [4] = __four(0xbb84d7e7);