mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
trace: Add dump util functions for wrapped pointers
This commit is contained in:
parent
6aa6ae8cff
commit
53e5248b0a
2 changed files with 58 additions and 1 deletions
|
|
@ -52,6 +52,8 @@
|
|||
|
||||
#include "tr_dump.h"
|
||||
#include "tr_screen.h"
|
||||
#include "tr_texture.h"
|
||||
#include "tr_buffer.h"
|
||||
|
||||
|
||||
static struct util_stream *stream = NULL;
|
||||
|
|
@ -403,3 +405,49 @@ void trace_dump_ptr(const void *value)
|
|||
else
|
||||
trace_dump_null();
|
||||
}
|
||||
|
||||
void trace_dump_buffer_ptr(struct pipe_buffer *_buffer)
|
||||
{
|
||||
if (_buffer) {
|
||||
struct trace_screen *tr_scr = trace_screen(_buffer->screen);
|
||||
struct trace_buffer *tr_buf = trace_buffer(tr_scr, _buffer);
|
||||
trace_dump_ptr(tr_buf->buffer);
|
||||
} else {
|
||||
trace_dump_null();
|
||||
}
|
||||
}
|
||||
|
||||
void trace_dump_texture_ptr(struct pipe_texture *_texture)
|
||||
{
|
||||
if (_texture) {
|
||||
struct trace_screen *tr_scr = trace_screen(_texture->screen);
|
||||
struct trace_texture *tr_tex = trace_texture(tr_scr, _texture);
|
||||
trace_dump_ptr(tr_tex->texture);
|
||||
} else {
|
||||
trace_dump_null();
|
||||
}
|
||||
}
|
||||
|
||||
void trace_dump_surface_ptr(struct pipe_surface *_surface)
|
||||
{
|
||||
if (_surface) {
|
||||
struct trace_screen *tr_scr = trace_screen(_surface->texture->screen);
|
||||
struct trace_texture *tr_tex = trace_texture(tr_scr, _surface->texture);
|
||||
struct trace_surface *tr_surf = trace_surface(tr_tex, _surface);
|
||||
trace_dump_ptr(tr_surf->surface);
|
||||
} else {
|
||||
trace_dump_null();
|
||||
}
|
||||
}
|
||||
|
||||
void trace_dump_transfer_ptr(struct pipe_transfer *_transfer)
|
||||
{
|
||||
if (_transfer) {
|
||||
struct trace_screen *tr_scr = trace_screen(_transfer->texture->screen);
|
||||
struct trace_texture *tr_tex = trace_texture(tr_scr, _transfer->texture);
|
||||
struct trace_transfer *tr_tran = trace_transfer(tr_tex, _transfer);
|
||||
trace_dump_ptr(tr_tran->transfer);
|
||||
} else {
|
||||
trace_dump_null();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,11 @@
|
|||
#include "pipe/p_compiler.h"
|
||||
|
||||
|
||||
struct pipe_buffer;
|
||||
struct pipe_texture;
|
||||
struct pipe_surface;
|
||||
struct pipe_transfer;
|
||||
|
||||
boolean trace_dump_trace_begin(void);
|
||||
boolean trace_dump_enabled(void);
|
||||
void trace_dump_trace_end(void);
|
||||
|
|
@ -63,7 +68,11 @@ void trace_dump_member_begin(const char *name);
|
|||
void trace_dump_member_end(void);
|
||||
void trace_dump_null(void);
|
||||
void trace_dump_ptr(const void *value);
|
||||
|
||||
/* will turn a wrapped object into the real one and dump ptr */
|
||||
void trace_dump_buffer_ptr(struct pipe_buffer *_buffer);
|
||||
void trace_dump_texture_ptr(struct pipe_texture *_texture);
|
||||
void trace_dump_surface_ptr(struct pipe_surface *_surface);
|
||||
void trace_dump_transfer_ptr(struct pipe_transfer *_transfer);
|
||||
|
||||
/*
|
||||
* Code saving macros.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue