svga: Describe svga_sampler_views for refcnt debugging
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
This commit is contained in:
@@ -32,6 +32,7 @@
|
||||
#include "util/u_format.h"
|
||||
#include "util/u_math.h"
|
||||
#include "util/u_memory.h"
|
||||
#include "util/u_string.h"
|
||||
|
||||
#include "svga_screen.h"
|
||||
#include "svga_context.h"
|
||||
@@ -41,6 +42,14 @@
|
||||
#include "svga_surface.h"
|
||||
|
||||
|
||||
void
|
||||
svga_debug_describe_sampler_view(char *buf, const struct svga_sampler_view *sv)
|
||||
{
|
||||
char res[128];
|
||||
debug_describe_resource(res, sv->texture);
|
||||
util_sprintf(buf, "svga_sampler_view<%s,[%u,%u]>", res, sv->min_lod, sv->max_lod);
|
||||
}
|
||||
|
||||
struct svga_sampler_view *
|
||||
svga_get_tex_sampler_view(struct pipe_context *pipe,
|
||||
struct pipe_resource *pt,
|
||||
@@ -114,6 +123,8 @@ svga_get_tex_sampler_view(struct pipe_context *pipe,
|
||||
pt->last_level);
|
||||
sv->key.cachable = 0;
|
||||
sv->handle = tex->handle;
|
||||
debug_reference(&sv->reference,
|
||||
(debug_reference_descriptor)svga_debug_describe_sampler_view, 0);
|
||||
return sv;
|
||||
}
|
||||
|
||||
@@ -137,6 +148,8 @@ svga_get_tex_sampler_view(struct pipe_context *pipe,
|
||||
assert(0);
|
||||
sv->key.cachable = 0;
|
||||
sv->handle = tex->handle;
|
||||
debug_reference(&sv->reference,
|
||||
(debug_reference_descriptor)svga_debug_describe_sampler_view, 0);
|
||||
return sv;
|
||||
}
|
||||
|
||||
@@ -144,6 +157,9 @@ svga_get_tex_sampler_view(struct pipe_context *pipe,
|
||||
svga_sampler_view_reference(&tex->cached_view, sv);
|
||||
pipe_mutex_unlock(ss->tex_mutex);
|
||||
|
||||
debug_reference(&sv->reference,
|
||||
(debug_reference_descriptor)svga_debug_describe_sampler_view, 0);
|
||||
|
||||
return sv;
|
||||
}
|
||||
|
||||
|
||||
@@ -83,12 +83,16 @@ svga_validate_sampler_view(struct svga_context *svga, struct svga_sampler_view *
|
||||
void
|
||||
svga_destroy_sampler_view_priv(struct svga_sampler_view *v);
|
||||
|
||||
void
|
||||
svga_debug_describe_sampler_view(char *buf, const struct svga_sampler_view *sv);
|
||||
|
||||
static INLINE void
|
||||
svga_sampler_view_reference(struct svga_sampler_view **ptr, struct svga_sampler_view *v)
|
||||
{
|
||||
struct svga_sampler_view *old = *ptr;
|
||||
|
||||
if (pipe_reference(&(*ptr)->reference, &v->reference))
|
||||
if (pipe_reference_described(&(*ptr)->reference, &v->reference,
|
||||
(debug_reference_descriptor)svga_debug_describe_sampler_view))
|
||||
svga_destroy_sampler_view_priv(old);
|
||||
*ptr = v;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user