nv2a: Split nv2a_pgraph_surface_cpu_access trace into read/write

This commit is contained in:
Matt Borgerson 2025-07-02 01:29:12 -07:00
parent 60c312d573
commit 69a321f81d
3 changed files with 16 additions and 7 deletions

View File

@ -438,14 +438,18 @@ static void surface_access_callback(void *opaque, MemoryRegion *mr, hwaddr addr,
hwaddr offset = addr - surface->vram_addr;
if (write) {
trace_nv2a_pgraph_surface_cpu_write(surface->vram_addr, offset);
} else {
trace_nv2a_pgraph_surface_cpu_read(surface->vram_addr, offset);
}
if (surface->draw_dirty) {
trace_nv2a_pgraph_surface_cpu_access(surface->vram_addr, offset);
surface->download_pending = true;
wait_for_downloads = true;
}
if (write && !surface->upload_pending) {
trace_nv2a_pgraph_surface_cpu_access(surface->vram_addr, offset);
if (write) {
surface->upload_pending = true;
}
}

View File

@ -546,14 +546,18 @@ static void surface_access_callback(void *opaque, MemoryRegion *mr, hwaddr addr,
hwaddr offset = addr - surface->vram_addr;
if (write) {
trace_nv2a_pgraph_surface_cpu_write(surface->vram_addr, offset);
} else {
trace_nv2a_pgraph_surface_cpu_read(surface->vram_addr, offset);
}
if (surface->draw_dirty) {
trace_nv2a_pgraph_surface_cpu_access(surface->vram_addr, offset);
surface->download_pending = true;
wait_for_downloads = true;
}
if (write && !surface->upload_pending) {
trace_nv2a_pgraph_surface_cpu_access(surface->vram_addr, offset);
if (write) {
surface->upload_pending = true;
}
}

View File

@ -11,7 +11,8 @@ nv2a_pgraph_method(uint32_t subchannel, uint32_t graphics_class, uint32_t method
nv2a_pgraph_method_abbrev(uint32_t subchannel, uint32_t graphics_class, uint32_t method, const char *name, unsigned int count) "%d: 0x%"PRIx32" -> 0x%04"PRIx32" %s * %d"
nv2a_pgraph_method_unhandled(uint32_t subchannel, uint32_t graphics_class, uint32_t method, uint32_t parameter) "%d: 0x%"PRIx32" -> 0x%04"PRIx32" 0x%"PRIx32
nv2a_pgraph_surface_compare_mismatch(const char *field, long int a, long int b) "%20s -- %8ld vs %8ld"
nv2a_pgraph_surface_cpu_access(uint32_t addr, uint32_t offset) "0x%08"PRIx32"+0x%"PRIx32
nv2a_pgraph_surface_cpu_read(uint32_t addr, uint32_t offset) "0x%08"PRIx32"+0x%"PRIx32
nv2a_pgraph_surface_cpu_write(uint32_t addr, uint32_t offset) "0x%08"PRIx32"+0x%"PRIx32
nv2a_pgraph_surface_create_color(uint32_t addr, uint32_t width, uint32_t height, const char *layout, uint32_t anti_aliasing, uint32_t clip_x, uint32_t clip_width, uint32_t clip_y, uint32_t clip_height, uint32_t pitch) "Create: [COLOR @ 0x%08" PRIx32 " (%dx%d)] (%s) aa:%d, clip:x=%d,w=%d,y=%d,h=%d,p=%d"
nv2a_pgraph_surface_create_zeta(uint32_t addr, uint32_t width, uint32_t height, const char *layout, uint32_t anti_aliasing, uint32_t clip_x, uint32_t clip_width, uint32_t clip_y, uint32_t clip_height, uint32_t pitch) " Create: [ZETA @ 0x%08" PRIx32 " (%dx%d)] (%s) aa:%d, clip:x=%d,w=%d,y=%d,h=%d,p=%d"
nv2a_pgraph_surface_download(const char *binding, const char *layout, uint32_t addr, uint32_t width, uint32_t height, uint32_t pitch, uint32_t bytes_per_pixel) "[GPU->RAM] %s (%s) surface @ 0x%08" PRIx32 " (w=%d,h=%d,p=%d,bpp=%d)"