From eda4b0ebbcf4bffd140c87054c06571b1e3e8025 Mon Sep 17 00:00:00 2001 From: Marek Biolik Date: Sun, 23 Feb 2025 19:49:38 +0100 Subject: [PATCH] Check GPU memory for players with different codecs --- starboard/nplb/player_create_test.cc | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/starboard/nplb/player_create_test.cc b/starboard/nplb/player_create_test.cc index 5dd8c2567f74..f1299701e1b8 100644 --- a/starboard/nplb/player_create_test.cc +++ b/starboard/nplb/player_create_test.cc @@ -28,6 +28,46 @@ #include "starboard/testing/fake_graphics_context_provider.h" #include "testing/gtest/include/gtest/gtest.h" +#include + +#include + +void checkGPUMemory() { + IDXGIFactory6* dxgiFactory = nullptr; + HRESULT hr = CreateDXGIFactory1(IID_PPV_ARGS(&dxgiFactory)); + + if (FAILED(hr)) { + SB_LOG(INFO) << "GOOGAMCONS-95: Error: Failed to create DXGI Factory!"; + return; + } + + // Retrieve GPU adapter + IDXGIAdapter3* adapter = nullptr; + hr = dxgiFactory->EnumAdapters(0, reinterpret_cast(&adapter)); + + if (FAILED(hr)) { + SB_LOG(INFO) << "GOOGAMCONS-95: Error: Failed to get GPU adapter!"; + return; + } + + // Query video memory usage + DXGI_QUERY_VIDEO_MEMORY_INFO memoryInfo = {}; + hr = adapter->QueryVideoMemoryInfo(0, DXGI_MEMORY_SEGMENT_GROUP_LOCAL, + &memoryInfo); + + if (FAILED(hr)) { + SB_LOG(INFO) << "GOOGAMCONS-95: Error: Failed to query GPU memory info!"; + return; + } + + // Print current GPU memory usage in MB + SB_LOG(INFO) << "GOOGAMCONS-95: Current GPU memory usage: " + << memoryInfo.CurrentUsage / (1024 * 1024) << " MB"; + + adapter->Release(); + dxgiFactory->Release(); +} + namespace starboard { namespace nplb { namespace { @@ -428,6 +468,9 @@ TEST_F(SbPlayerTest, MultiPlayer) { } ClearPlayerStateAndError(); + + checkGPUMemory(); + SB_LOG(INFO) << "GOOGAMCONS-95: num of players: " << created_players.size() << "."; } } }