r600g: add a debug flag for printing virtual addresses of resources
authorMarek Olšák <maraeo@gmail.com>
Fri, 5 Apr 2013 23:33:21 +0000 (01:33 +0200)
committerMarek Olšák <maraeo@gmail.com>
Tue, 16 Apr 2013 11:56:47 +0000 (13:56 +0200)
src/gallium/drivers/r600/r600_buffer.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_texture.c

index e46f7fd4bfc568a3b80efb1fb7275edb80f72a56..a977b02ac4e465e48ec073e3061f46257bad099e 100644 (file)
@@ -279,6 +279,13 @@ bool r600_init_resource(struct r600_screen *rscreen,
        res->cs_buf = rscreen->ws->buffer_get_cs_handle(res->buf);
        res->domains = domains;
        util_range_set_empty(&res->valid_buffer_range);
+
+       if (rscreen->debug_flags & DBG_VM && res->b.b.target == PIPE_BUFFER) {
+               fprintf(stderr, "VM start=0x%llX  end=0x%llX | Buffer %u bytes\n",
+                       r600_resource_va(&rscreen->screen, &res->b.b),
+                       r600_resource_va(&rscreen->screen, &res->b.b) + res->buf->size,
+                       res->buf->size);
+       }
        return true;
 }
 
index 609f4a09c1af73de94c59bfc154a5cccc0224f61..0c115787c095107b4b3be0d76eb5be88405d958e 100644 (file)
@@ -44,6 +44,7 @@ static const struct debug_named_value debug_options[] = {
        /* logging */
        { "texdepth", DBG_TEX_DEPTH, "Print texture depth info" },
        { "compute", DBG_COMPUTE, "Print compute info" },
+       { "vm", DBG_VM, "Print virtual addresses when creating resources" },
 
        /* shaders */
        { "fs", DBG_FS, "Print fetch shaders" },
index 366e866d4edc480b870bab5e863bc9a40caefa29..55e90ec27aeedfedb71061c674c38c11317556d6 100644 (file)
@@ -245,6 +245,7 @@ typedef boolean (*r600g_dma_blit_t)(struct pipe_context *ctx,
 /* logging */
 #define DBG_TEX_DEPTH          (1 << 0)
 #define DBG_COMPUTE            (1 << 1)
+#define DBG_VM                  (1 << 2)
 /* shaders */
 #define DBG_FS                 (1 << 8)
 #define DBG_VS                 (1 << 9)
index 482559217bfe679333f900316a988884cd2b3f1f..98cb11897635f4b63ef666308c164317d2a6aa8f 100644 (file)
@@ -510,6 +510,14 @@ r600_texture_create_object(struct pipe_screen *screen,
                rscreen->ws->buffer_unmap(resource->cs_buf);
        }
 
+       if (rscreen->debug_flags & DBG_VM) {
+               fprintf(stderr, "VM start=0x%llX  end=0x%llX | Texture %ix%ix%i, %i levels, %i samples, %s\n",
+                       r600_resource_va(screen, &rtex->resource.b.b),
+                       r600_resource_va(screen, &rtex->resource.b.b) + rtex->resource.buf->size,
+                       base->width0, base->height0, util_max_layer(base, 0)+1, base->last_level+1,
+                       base->nr_samples ? base->nr_samples : 1, util_format_short_name(base->format));
+       }
+
        if (rscreen->debug_flags & DBG_TEX_DEPTH && rtex->is_depth && rtex->non_disp_tiling) {
                printf("Texture: npix_x=%u, npix_y=%u, npix_z=%u, blk_w=%u, "
                       "blk_h=%u, blk_d=%u, array_size=%u, last_level=%u, "