#define MAX_VRAM (128*1024*1024)
-#define MAX_DUMPS 128
-
extern int brw_disasm (FILE *file,
"GS: CLIP_PROG",
"SS: SURFACE",
"SS: SURF_BIND",
+ "CONSTANT DATA",
+ "BATCH DATA",
"(untyped)"
};
struct xlib_brw_winsys *xbw = xlib_brw_winsys(sws);
struct xlib_brw_buffer *buf;
- debug_printf("%s type %s sz %d align %d\n",
- __FUNCTION__, names[type], size, alignment );
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s type %s sz %d align %d\n",
+ __FUNCTION__, names[type], size, alignment );
buf = CALLOC_STRUCT(xlib_brw_buffer);
if (!buf)
struct xlib_brw_buffer *buf = xlib_brw_buffer(buffer);
struct xlib_brw_buffer *buf2 = xlib_brw_buffer(buffer2);
- debug_printf("%s buf %p offset %x val %x + %x buf2 %p/%s/%s\n",
- __FUNCTION__, (void *)buffer, offset,
- buf2->offset, delta,
- (void *)buffer2, names[buf2->type], usages[usage]);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s buf %p offset %x val %x + %x buf2 %p/%s/%s\n",
+ __FUNCTION__, (void *)buffer, offset,
+ buf2->offset, delta,
+ (void *)buffer2, names[buf2->type], usages[usage]);
*(uint32_t *)(buf->virtual + offset) = buf2->offset + delta;
xlib_brw_bo_exec( struct brw_winsys_buffer *buffer,
unsigned bytes_used )
{
- debug_printf("execute buffer %p, bytes %d\n", (void *)buffer, bytes_used);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("execute buffer %p, bytes %d\n", (void *)buffer, bytes_used);
return 0;
}
-static void dump_data( struct xlib_brw_winsys *xbw,
- enum brw_buffer_data_type data_type,
- const void *data,
- size_t size )
-{
- switch (data_type) {
- case BRW_DATA_GS_CC_VP:
- brw_dump_cc_viewport( data );
- break;
- case BRW_DATA_GS_CC_UNIT:
- brw_dump_cc_unit_state( data );
- break;
- case BRW_DATA_GS_WM_PROG:
- case BRW_DATA_GS_SF_PROG:
- case BRW_DATA_GS_VS_PROG:
- case BRW_DATA_GS_GS_PROG:
- case BRW_DATA_GS_CLIP_PROG:
- brw_disasm( stderr, data, size / sizeof(struct brw_instruction) );
- break;
- case BRW_DATA_GS_SAMPLER_DEFAULT_COLOR:
- brw_dump_sampler_default_color( data );
- break;
- case BRW_DATA_GS_SAMPLER:
- brw_dump_sampler_state( data );
- break;
- case BRW_DATA_GS_WM_UNIT:
- brw_dump_wm_unit_state( data );
- break;
- case BRW_DATA_GS_SF_VP:
- brw_dump_sf_viewport( data );
- break;
- case BRW_DATA_GS_SF_UNIT:
- brw_dump_sf_unit_state( data );
- break;
- case BRW_DATA_GS_VS_UNIT:
- brw_dump_vs_unit_state( data );
- break;
- case BRW_DATA_GS_GS_UNIT:
- brw_dump_gs_unit_state( data );
- break;
- case BRW_DATA_GS_CLIP_VP:
- brw_dump_clipper_viewport( data );
- break;
- case BRW_DATA_GS_CLIP_UNIT:
- brw_dump_clip_unit_state( data );
- break;
- case BRW_DATA_SS_SURFACE:
- brw_dump_surface_state( data );
- break;
- case BRW_DATA_SS_SURF_BIND:
- break;
- case BRW_DATA_OTHER:
- break;
- case BRW_DATA_BATCH_BUFFER:
- intel_decode(data, size / 4, 0, xbw->chipset.pci_id);
- break;
- case BRW_DATA_CONSTANT_BUFFER:
- break;
- default:
- assert(0);
- break;
- }
-}
+
static int
struct xlib_brw_winsys *xbw = xlib_brw_winsys(buffer->sws);
unsigned i;
- debug_printf("%s buf %p off %d sz %d %s relocs: %d\n",
- __FUNCTION__,
- (void *)buffer, offset, size,
- data_types[data_type],
- nr_relocs);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s buf %p off %d sz %d %s relocs: %d\n",
+ __FUNCTION__,
+ (void *)buffer, offset, size,
+ data_types[data_type],
+ nr_relocs);
assert(buf->base.size >= offset + size);
memcpy(buf->virtual + offset, data, size);
/* Apply the relocations:
*/
for (i = 0; i < nr_relocs; i++) {
- debug_printf("\treloc[%d] usage %s off %d value %x+%x\n",
- i, usages[reloc[i].usage], reloc[i].offset,
- xlib_brw_buffer(reloc[i].bo)->offset, reloc[i].delta);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("\treloc[%d] usage %s off %d value %x+%x\n",
+ i, usages[reloc[i].usage], reloc[i].offset,
+ xlib_brw_buffer(reloc[i].bo)->offset, reloc[i].delta);
*(unsigned *)(buf->virtual + offset + reloc[i].offset) =
xlib_brw_buffer(reloc[i].bo)->offset + reloc[i].delta;
}
- if (1)
- dump_data( xbw, data_type, buf->virtual + offset, size );
+ if (BRW_DUMP)
+ brw_dump_data( xbw->chipset.pci_id,
+ data_type,
+ buf->offset + offset,
+ buf->virtual + offset, size );
+
return 0;
}
static boolean
xlib_brw_bo_is_busy(struct brw_winsys_buffer *buffer)
{
- debug_printf("%s %p\n", __FUNCTION__, (void *)buffer);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s %p\n", __FUNCTION__, (void *)buffer);
return TRUE;
}
xlib_brw_bo_references(struct brw_winsys_buffer *a,
struct brw_winsys_buffer *b)
{
- debug_printf("%s %p %p\n", __FUNCTION__, (void *)a, (void *)b);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s %p %p\n", __FUNCTION__, (void *)a, (void *)b);
return TRUE;
}
for (i = 0; i < count; i++)
tot_size += buffers[i]->size;
- debug_printf("%s %d bufs, tot_size: %d kb\n",
- __FUNCTION__, count,
- (tot_size + 1023) / 1024);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s %d bufs, tot_size: %d kb\n",
+ __FUNCTION__, count,
+ (tot_size + 1023) / 1024);
return PIPE_OK;
}
{
struct xlib_brw_buffer *buf = xlib_brw_buffer(buffer);
- debug_printf("%s %p %s %s\n", __FUNCTION__, (void *)buffer,
- write ? "read/write" : "read",
- write ? data_types[data_type] : "");
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s %p %s %s\n", __FUNCTION__, (void *)buffer,
+ write ? "read/write" : "read",
+ write ? data_types[data_type] : "");
if (write)
buf->modified = 1;
{
struct xlib_brw_buffer *buf = xlib_brw_buffer(buffer);
- debug_printf("%s %p\n", __FUNCTION__, (void *)buffer);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s %p\n", __FUNCTION__, (void *)buffer);
--buf->map_count;
assert(buf->map_count >= 0);
struct brw_surface *surface = brw_surface(surf);
struct xlib_brw_buffer *bo = xlib_brw_buffer(surface->bo);
- debug_printf("%s offset %x+%x sz %dx%d\n", __FUNCTION__,
- bo->offset,
- surface->draw_offset,
- surf->width,
- surf->height);
+ if (BRW_DEBUG & DEBUG_WINSYS)
+ debug_printf("%s offset %x+%x sz %dx%d\n", __FUNCTION__,
+ bo->offset,
+ surface->draw_offset,
+ surf->width,
+ surf->height);
}
static void
}
-static struct pipe_context *
-xlib_create_i965_context( struct pipe_screen *screen,
- void *context_private )
-{
- struct pipe_context *pipe;
-
- pipe = brw_create_context(screen);
- if (pipe == NULL)
- goto fail;
-
- pipe->priv = context_private;
- return pipe;
-
-fail:
- /* Free stuff here */
- return NULL;
-}
-
struct xm_driver xlib_i965_driver =
{
.create_pipe_screen = xlib_create_i965_screen,
- .create_pipe_context = xlib_create_i965_context,
.display_surface = xlib_i965_display_surface
};