mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-18 13:21:09 +00:00
rsx: Capture stats about vertex cache performance
This commit is contained in:
parent
d752ab0151
commit
7e2eaf43ca
@ -16,6 +16,9 @@ namespace rsx
|
||||
s64 textures_upload_time;
|
||||
s64 draw_exec_time;
|
||||
s64 flip_time;
|
||||
|
||||
u32 vertex_cache_request_count;
|
||||
u32 vertex_cache_miss_count;
|
||||
};
|
||||
|
||||
struct frame_time_t
|
||||
|
@ -364,10 +364,17 @@ void GLGSRender::flip(const rsx::display_flip_info_t& info)
|
||||
const auto num_texture_upload = m_gl_texture_cache.get_texture_upload_calls_this_frame();
|
||||
const auto num_texture_upload_miss = m_gl_texture_cache.get_texture_upload_misses_this_frame();
|
||||
const auto texture_upload_miss_ratio = m_gl_texture_cache.get_texture_upload_miss_percentage();
|
||||
|
||||
println(fmt::format("Unreleased textures: %7d", num_dirty_textures));
|
||||
println(fmt::format("Texture memory: %12dM", texture_memory_size));
|
||||
println(fmt::format("Flush requests: %12d = %2d (%3d%%) hard faults, %2d unavoidable, %2d misprediction(s), %2d speculation(s)", num_flushes, num_misses, cache_miss_ratio, num_unavoidable, num_mispredict, num_speculate));
|
||||
println(fmt::format("Texture uploads: %15u (%u from CPU - %02u%%)", num_texture_upload, num_texture_upload_miss, texture_upload_miss_ratio));
|
||||
|
||||
const auto vertex_cache_hit_count = (info.stats.vertex_cache_request_count - info.stats.vertex_cache_miss_count);
|
||||
const auto vertex_cache_hit_ratio = info.stats.vertex_cache_request_count
|
||||
? (vertex_cache_hit_count * 100) / info.stats.vertex_cache_request_count
|
||||
: 0;
|
||||
println(fmt::format("Vertex cache hits: %12u/%u (%u%%)", vertex_cache_hit_count, info.stats.vertex_cache_request_count, vertex_cache_hit_ratio));
|
||||
}
|
||||
|
||||
if (gl::debug::g_vis_texture)
|
||||
|
@ -801,11 +801,18 @@ void VKGSRender::flip(const rsx::display_flip_info_t& info)
|
||||
const auto num_texture_upload = m_texture_cache.get_texture_upload_calls_this_frame();
|
||||
const auto num_texture_upload_miss = m_texture_cache.get_texture_upload_misses_this_frame();
|
||||
const auto texture_upload_miss_ratio = m_texture_cache.get_texture_upload_miss_percentage();
|
||||
|
||||
println(fmt::format("Unreleased textures: %8d", num_dirty_textures));
|
||||
println(fmt::format("Texture cache memory: %7dM", texture_memory_size));
|
||||
println(fmt::format("Temporary texture memory: %3dM", tmp_texture_memory_size));
|
||||
println(fmt::format("Flush requests: %13d = %2d (%3d%%) hard faults, %2d unavoidable, %2d misprediction(s), %2d speculation(s)", num_flushes, num_misses, cache_miss_ratio, num_unavoidable, num_mispredict, num_speculate));
|
||||
println(fmt::format("Texture uploads: %14u (%u from CPU - %02u%%)", num_texture_upload, num_texture_upload_miss, texture_upload_miss_ratio));
|
||||
|
||||
const auto vertex_cache_hit_count = (info.stats.vertex_cache_request_count - info.stats.vertex_cache_miss_count);
|
||||
const auto vertex_cache_hit_ratio = info.stats.vertex_cache_request_count
|
||||
? (vertex_cache_hit_count * 100) / info.stats.vertex_cache_request_count
|
||||
: 0;
|
||||
println(fmt::format("Vertex cache hits: %12u/%u (%u%%)", vertex_cache_hit_count, info.stats.vertex_cache_request_count, vertex_cache_hit_ratio));
|
||||
}
|
||||
|
||||
direct_fbo->release();
|
||||
|
@ -243,6 +243,8 @@ vk::vertex_upload_info VKGSRender::upload_vertex_data()
|
||||
bool to_store = false;
|
||||
u32 storage_address = -1;
|
||||
|
||||
m_frame_stats.vertex_cache_request_count++;
|
||||
|
||||
if (m_vertex_layout.interleaved_blocks.size() == 1 &&
|
||||
rsx::method_registers.current_draw_clause.command != rsx::draw_command::inlined_array)
|
||||
{
|
||||
@ -264,6 +266,8 @@ vk::vertex_upload_info VKGSRender::upload_vertex_data()
|
||||
|
||||
if (!in_cache)
|
||||
{
|
||||
m_frame_stats.vertex_cache_miss_count++;
|
||||
|
||||
persistent_offset = static_cast<u32>(m_attrib_ring_info.alloc<256>(required.first));
|
||||
persistent_range_base = static_cast<u32>(persistent_offset);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user