r300g: Surface debug.
It gets really annoying watching r300g tell me how it's filling surfaces. Or falling back during filling surfaces.
This commit is contained in:
@@ -312,6 +312,7 @@ void r300_init_surface_functions(struct r300_context* r300);
|
|||||||
#define DBG_VP 0x0000004
|
#define DBG_VP 0x0000004
|
||||||
#define DBG_CS 0x0000008
|
#define DBG_CS 0x0000008
|
||||||
#define DBG_DRAW 0x0000010
|
#define DBG_DRAW 0x0000010
|
||||||
|
#define DBG_SURF 0x0000020
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
static INLINE boolean DBG_ON(struct r300_context * ctx, unsigned flags)
|
static INLINE boolean DBG_ON(struct r300_context * ctx, unsigned flags)
|
||||||
|
@@ -37,6 +37,7 @@ static struct debug_option debug_options[] = {
|
|||||||
{ "vp", DBG_VP, "Vertex program handling" },
|
{ "vp", DBG_VP, "Vertex program handling" },
|
||||||
{ "cs", DBG_CS, "Command submissions" },
|
{ "cs", DBG_CS, "Command submissions" },
|
||||||
{ "draw", DBG_DRAW, "Draw and emit" },
|
{ "draw", DBG_DRAW, "Draw and emit" },
|
||||||
|
{ "surf", DBG_SURF, "Surface drawing" },
|
||||||
|
|
||||||
{ "all", ~0, "Convenience option that enables all debug flags" },
|
{ "all", ~0, "Convenience option that enables all debug flags" },
|
||||||
|
|
||||||
|
@@ -108,7 +108,7 @@ static void r300_surface_fill(struct pipe_context* pipe,
|
|||||||
r = (float)((color >> 16) & 0xff) / 255.0f;
|
r = (float)((color >> 16) & 0xff) / 255.0f;
|
||||||
g = (float)((color >> 8) & 0xff) / 255.0f;
|
g = (float)((color >> 8) & 0xff) / 255.0f;
|
||||||
b = (float)((color >> 0) & 0xff) / 255.0f;
|
b = (float)((color >> 0) & 0xff) / 255.0f;
|
||||||
debug_printf("r300: Filling surface %p at (%d,%d),"
|
DBG(r300, DBG_SURF, "r300: Filling surface %p at (%d,%d),"
|
||||||
" dimensions %dx%d (pixel pitch %d), color 0x%x\n",
|
" dimensions %dx%d (pixel pitch %d), color 0x%x\n",
|
||||||
dest, x, y, w, h, pixpitch, color);
|
dest, x, y, w, h, pixpitch, color);
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ static void r300_surface_fill(struct pipe_context* pipe,
|
|||||||
if (!pipe->screen->is_format_supported(pipe->screen, dest->format,
|
if (!pipe->screen->is_format_supported(pipe->screen, dest->format,
|
||||||
PIPE_TEXTURE_2D, PIPE_TEXTURE_USAGE_RENDER_TARGET, 0)) {
|
PIPE_TEXTURE_2D, PIPE_TEXTURE_USAGE_RENDER_TARGET, 0)) {
|
||||||
fallback:
|
fallback:
|
||||||
debug_printf("r300: Falling back on surface clear...\n");
|
DBG(r300, DBG_SURF, "r300: Falling back on surface clear...\n");
|
||||||
util_surface_fill(pipe, dest, x, y, w, h, color);
|
util_surface_fill(pipe, dest, x, y, w, h, color);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -131,7 +131,7 @@ validate:
|
|||||||
if (!r300->winsys->validate(r300->winsys)) {
|
if (!r300->winsys->validate(r300->winsys)) {
|
||||||
r300->context.flush(&r300->context, 0, NULL);
|
r300->context.flush(&r300->context, 0, NULL);
|
||||||
if (invalid) {
|
if (invalid) {
|
||||||
debug_printf("r300: Stuck in validation loop, gonna fallback.");
|
DBG(r300, DBG_SURF, "r300: Stuck in validation loop, gonna fallback.");
|
||||||
goto fallback;
|
goto fallback;
|
||||||
}
|
}
|
||||||
invalid = TRUE;
|
invalid = TRUE;
|
||||||
@@ -239,7 +239,7 @@ static void r300_surface_copy(struct pipe_context* pipe,
|
|||||||
float fsrcx = srcx, fsrcy = srcy, fdestx = destx, fdesty = desty;
|
float fsrcx = srcx, fsrcy = srcy, fdestx = destx, fdesty = desty;
|
||||||
CS_LOCALS(r300);
|
CS_LOCALS(r300);
|
||||||
|
|
||||||
debug_printf("r300: Copying surface %p at (%d,%d) to %p at (%d, %d),"
|
DBG(r300, DBG_SURF, "r300: Copying surface %p at (%d,%d) to %p at (%d, %d),"
|
||||||
" dimensions %dx%d (pixel pitch %d)\n",
|
" dimensions %dx%d (pixel pitch %d)\n",
|
||||||
src, srcx, srcy, dest, destx, desty, w, h, pixpitch);
|
src, srcx, srcy, dest, destx, desty, w, h, pixpitch);
|
||||||
|
|
||||||
@@ -254,7 +254,7 @@ static void r300_surface_copy(struct pipe_context* pipe,
|
|||||||
!pipe->screen->is_format_supported(pipe->screen, dest->format,
|
!pipe->screen->is_format_supported(pipe->screen, dest->format,
|
||||||
PIPE_TEXTURE_2D, PIPE_TEXTURE_USAGE_RENDER_TARGET, 0)) {
|
PIPE_TEXTURE_2D, PIPE_TEXTURE_USAGE_RENDER_TARGET, 0)) {
|
||||||
fallback:
|
fallback:
|
||||||
debug_printf("r300: Falling back on surface_copy\n");
|
DBG(r300, DBG_SURF, "r300: Falling back on surface_copy\n");
|
||||||
util_surface_copy(pipe, FALSE, dest, destx, desty, src,
|
util_surface_copy(pipe, FALSE, dest, destx, desty, src,
|
||||||
srcx, srcy, w, h);
|
srcx, srcy, w, h);
|
||||||
return;
|
return;
|
||||||
@@ -275,7 +275,7 @@ validate:
|
|||||||
if (!r300->winsys->validate(r300->winsys)) {
|
if (!r300->winsys->validate(r300->winsys)) {
|
||||||
r300->context.flush(&r300->context, 0, NULL);
|
r300->context.flush(&r300->context, 0, NULL);
|
||||||
if (invalid) {
|
if (invalid) {
|
||||||
debug_printf("r300: Stuck in validation loop, gonna fallback.");
|
DBG(r300, DBG_SURF, "r300: Stuck in validation loop, gonna fallback.");
|
||||||
goto fallback;
|
goto fallback;
|
||||||
}
|
}
|
||||||
invalid = TRUE;
|
invalid = TRUE;
|
||||||
|
Reference in New Issue
Block a user