i965g: add data type tags to aid dumping/decoding
This commit is contained in:
@@ -53,7 +53,9 @@ brw_batchbuffer_reset(struct brw_batchbuffer *batch)
|
||||
if (batch->malloc_buffer)
|
||||
batch->map = batch->malloc_buffer;
|
||||
else
|
||||
batch->map = batch->sws->bo_map(batch->buf, GL_TRUE);
|
||||
batch->map = batch->sws->bo_map(batch->buf,
|
||||
BRW_DATA_OTHER,
|
||||
GL_TRUE);
|
||||
|
||||
batch->size = BRW_BATCH_SIZE;
|
||||
batch->ptr = batch->map;
|
||||
@@ -132,7 +134,10 @@ _brw_batchbuffer_flush(struct brw_batchbuffer *batch,
|
||||
used = batch->ptr - batch->map;
|
||||
|
||||
if (batch->use_malloc_buffer) {
|
||||
batch->sws->bo_subdata(batch->buf, 0, used, batch->map );
|
||||
batch->sws->bo_subdata(batch->buf,
|
||||
BRW_DATA_OTHER,
|
||||
0, used,
|
||||
batch->map );
|
||||
batch->map = NULL;
|
||||
}
|
||||
else {
|
||||
@@ -145,7 +150,9 @@ _brw_batchbuffer_flush(struct brw_batchbuffer *batch,
|
||||
batch->sws->bo_exec(batch->buf, used );
|
||||
|
||||
if (1 /*BRW_DEBUG & DEBUG_BATCH*/) {
|
||||
void *ptr = batch->sws->bo_map(batch->buf, GL_FALSE);
|
||||
void *ptr = batch->sws->bo_map(batch->buf,
|
||||
BRW_DATA_OTHER,
|
||||
GL_FALSE);
|
||||
|
||||
intel_decode(ptr,
|
||||
used / 4,
|
||||
@@ -162,7 +169,9 @@ _brw_batchbuffer_flush(struct brw_batchbuffer *batch,
|
||||
* interface.
|
||||
*/
|
||||
debug_printf("waiting for idle\n");
|
||||
batch->sws->bo_map(batch->buf, GL_TRUE);
|
||||
batch->sws->bo_map(batch->buf,
|
||||
BRW_DATA_OTHER,
|
||||
GL_TRUE);
|
||||
batch->sws->bo_unmap(batch->buf);
|
||||
}
|
||||
|
||||
|
||||
@@ -347,25 +347,27 @@ struct brw_vs_ouput_sizes {
|
||||
#define SURF_INDEX_VERT_CONST_BUFFER 0
|
||||
|
||||
|
||||
/* Bit of a hack to align these with the winsys buffer_data_type enum.
|
||||
*/
|
||||
enum brw_cache_id {
|
||||
BRW_CC_VP,
|
||||
BRW_CC_UNIT,
|
||||
BRW_WM_PROG,
|
||||
BRW_SAMPLER_DEFAULT_COLOR,
|
||||
BRW_SAMPLER,
|
||||
BRW_WM_UNIT,
|
||||
BRW_SF_PROG,
|
||||
BRW_SF_VP,
|
||||
BRW_SF_UNIT,
|
||||
BRW_VS_UNIT,
|
||||
BRW_VS_PROG,
|
||||
BRW_GS_UNIT,
|
||||
BRW_GS_PROG,
|
||||
BRW_CLIP_VP,
|
||||
BRW_CLIP_UNIT,
|
||||
BRW_CLIP_PROG,
|
||||
BRW_SS_SURFACE,
|
||||
BRW_SS_SURF_BIND,
|
||||
BRW_CC_VP = BRW_DATA_GS_CC_VP,
|
||||
BRW_CC_UNIT = BRW_DATA_GS_CC_UNIT,
|
||||
BRW_WM_PROG = BRW_DATA_GS_WM_PROG,
|
||||
BRW_SAMPLER_DEFAULT_COLOR = BRW_DATA_GS_SAMPLER_DEFAULT_COLOR,
|
||||
BRW_SAMPLER = BRW_DATA_GS_SAMPLER,
|
||||
BRW_WM_UNIT = BRW_DATA_GS_WM_UNIT,
|
||||
BRW_SF_PROG = BRW_DATA_GS_SF_PROG,
|
||||
BRW_SF_VP = BRW_DATA_GS_SF_VP,
|
||||
BRW_SF_UNIT = BRW_DATA_GS_SF_UNIT,
|
||||
BRW_VS_UNIT = BRW_DATA_GS_VS_UNIT,
|
||||
BRW_VS_PROG = BRW_DATA_GS_VS_PROG,
|
||||
BRW_GS_UNIT = BRW_DATA_GS_GS_UNIT,
|
||||
BRW_GS_PROG = BRW_DATA_GS_GS_PROG,
|
||||
BRW_CLIP_VP = BRW_DATA_GS_CLIP_VP,
|
||||
BRW_CLIP_UNIT = BRW_DATA_GS_CLIP_UNIT,
|
||||
BRW_CLIP_PROG = BRW_DATA_GS_CLIP_PROG,
|
||||
BRW_SS_SURFACE = BRW_DATA_SS_SURFACE,
|
||||
BRW_SS_SURF_BIND = BRW_DATA_SS_SURF_BIND,
|
||||
|
||||
BRW_MAX_CACHE
|
||||
};
|
||||
@@ -399,6 +401,8 @@ struct brw_cache {
|
||||
struct brw_cache_item **items;
|
||||
GLuint size, n_items;
|
||||
|
||||
enum brw_buffer_type buffer_type;
|
||||
|
||||
GLuint key_size[BRW_MAX_CACHE]; /* for fixed-size keys */
|
||||
GLuint aux_size[BRW_MAX_CACHE];
|
||||
char *name[BRW_MAX_CACHE];
|
||||
|
||||
@@ -289,6 +289,7 @@ static int prepare_curbe_buffer(struct brw_context *brw)
|
||||
*/
|
||||
brw->sws->bo_subdata(brw->curbe.curbe_bo,
|
||||
brw->curbe.curbe_offset,
|
||||
BRW_DATA_OTHER,
|
||||
bufsz,
|
||||
buf);
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ brw_query_get_result(struct pipe_context *pipe,
|
||||
if (brw->sws->bo_is_busy(query->bo) && !wait)
|
||||
return FALSE;
|
||||
|
||||
map = brw->sws->bo_map(query->bo, GL_FALSE);
|
||||
map = brw->sws->bo_map(query->bo, BRW_DATA_OTHER, GL_FALSE);
|
||||
if (map == NULL)
|
||||
return FALSE;
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ brw_buffer_map( struct pipe_screen *screen,
|
||||
return buf->user_buffer;
|
||||
|
||||
return sws->bo_map( buf->bo,
|
||||
BRW_DATA_OTHER,
|
||||
(usage & PIPE_BUFFER_USAGE_CPU_WRITE) ? TRUE : FALSE );
|
||||
}
|
||||
|
||||
@@ -64,7 +65,7 @@ brw_buffer_create(struct pipe_screen *screen,
|
||||
struct brw_screen *bscreen = brw_screen(screen);
|
||||
struct brw_winsys_screen *sws = bscreen->sws;
|
||||
struct brw_buffer *buf;
|
||||
unsigned usage_type;
|
||||
unsigned buffer_type;
|
||||
|
||||
buf = CALLOC_STRUCT(brw_buffer);
|
||||
if (!buf)
|
||||
@@ -84,24 +85,24 @@ brw_buffer_create(struct pipe_screen *screen,
|
||||
case PIPE_BUFFER_USAGE_VERTEX:
|
||||
case PIPE_BUFFER_USAGE_INDEX:
|
||||
case (PIPE_BUFFER_USAGE_VERTEX|PIPE_BUFFER_USAGE_INDEX):
|
||||
usage_type = BRW_BUFFER_TYPE_VERTEX;
|
||||
buffer_type = BRW_BUFFER_TYPE_VERTEX;
|
||||
break;
|
||||
|
||||
case PIPE_BUFFER_USAGE_PIXEL:
|
||||
usage_type = BRW_BUFFER_TYPE_PIXEL;
|
||||
buffer_type = BRW_BUFFER_TYPE_PIXEL;
|
||||
break;
|
||||
|
||||
case PIPE_BUFFER_USAGE_CONSTANT:
|
||||
usage_type = BRW_BUFFER_TYPE_SHADER_CONSTANTS;
|
||||
buffer_type = BRW_BUFFER_TYPE_SHADER_CONSTANTS;
|
||||
break;
|
||||
|
||||
default:
|
||||
usage_type = BRW_BUFFER_TYPE_GENERIC;
|
||||
buffer_type = BRW_BUFFER_TYPE_GENERIC;
|
||||
break;
|
||||
}
|
||||
|
||||
buf->bo = sws->bo_alloc( sws,
|
||||
usage_type,
|
||||
buffer_type,
|
||||
size,
|
||||
alignment );
|
||||
|
||||
|
||||
@@ -186,6 +186,7 @@ static struct pipe_texture *brw_texture_create( struct pipe_screen *screen,
|
||||
{
|
||||
struct brw_screen *bscreen = brw_screen(screen);
|
||||
struct brw_texture *tex;
|
||||
enum brw_buffer_type buffer_type;
|
||||
|
||||
tex = CALLOC_STRUCT(brw_texture);
|
||||
if (tex == NULL)
|
||||
@@ -226,21 +227,16 @@ static struct pipe_texture *brw_texture_create( struct pipe_screen *screen,
|
||||
goto fail;
|
||||
|
||||
|
||||
if (templ->tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
|
||||
}
|
||||
else if (templ->tex_usage & (PIPE_TEXTURE_USAGE_DISPLAY_TARGET |
|
||||
PIPE_TEXTURE_USAGE_PRIMARY)) {
|
||||
if (templ->tex_usage & (PIPE_TEXTURE_USAGE_DISPLAY_TARGET |
|
||||
PIPE_TEXTURE_USAGE_PRIMARY)) {
|
||||
buffer_type = BRW_BUFFER_TYPE_SCANOUT;
|
||||
}
|
||||
else if (templ->tex_usage & PIPE_TEXTURE_USAGE_DEPTH_STENCIL) {
|
||||
}
|
||||
else if (templ->tex_usage & PIPE_TEXTURE_USAGE_SAMPLER) {
|
||||
}
|
||||
|
||||
if (templ->tex_usage & PIPE_TEXTURE_USAGE_DYNAMIC) {
|
||||
else {
|
||||
buffer_type = BRW_BUFFER_TYPE_TEXTURE;
|
||||
}
|
||||
|
||||
tex->bo = bscreen->sws->bo_alloc( bscreen->sws,
|
||||
BRW_USAGE_SAMPLER,
|
||||
buffer_type,
|
||||
tex->pitch * tex->total_height * tex->cpp,
|
||||
64 );
|
||||
|
||||
|
||||
@@ -228,7 +228,7 @@ brw_upload_cache( struct brw_cache *cache,
|
||||
* these various entities.
|
||||
*/
|
||||
bo = cache->sws->bo_alloc(cache->sws,
|
||||
BRW_BUFFER_TYPE_STATE_CACHE,
|
||||
cache->buffer_type,
|
||||
data_size, 1 << 6);
|
||||
|
||||
|
||||
@@ -273,7 +273,9 @@ brw_upload_cache( struct brw_cache *cache,
|
||||
data_size, cache_id);
|
||||
|
||||
/* Copy data to the buffer */
|
||||
cache->sws->bo_subdata(bo, 0, data_size, data);
|
||||
cache->sws->bo_subdata(bo,
|
||||
cache_id,
|
||||
0, data_size, data);
|
||||
|
||||
update_cache_last(cache, cache_id, bo);
|
||||
|
||||
@@ -332,11 +334,6 @@ brw_cache_data(struct brw_cache *cache,
|
||||
reloc_bufs, nr_reloc_bufs);
|
||||
}
|
||||
|
||||
enum pool_type {
|
||||
DW_SURFACE_STATE,
|
||||
DW_GENERAL_STATE
|
||||
};
|
||||
|
||||
|
||||
static void
|
||||
brw_init_cache_id(struct brw_cache *cache,
|
||||
@@ -352,13 +349,15 @@ brw_init_cache_id(struct brw_cache *cache,
|
||||
|
||||
|
||||
static void
|
||||
brw_init_non_surface_cache(struct brw_context *brw)
|
||||
brw_init_general_state_cache(struct brw_context *brw)
|
||||
{
|
||||
struct brw_cache *cache = &brw->cache;
|
||||
|
||||
cache->brw = brw;
|
||||
cache->sws = brw->sws;
|
||||
|
||||
cache->buffer_type = BRW_BUFFER_TYPE_GENERAL_STATE;
|
||||
|
||||
cache->size = 7;
|
||||
cache->n_items = 0;
|
||||
cache->items = (struct brw_cache_item **)
|
||||
@@ -457,13 +456,15 @@ brw_init_non_surface_cache(struct brw_context *brw)
|
||||
|
||||
|
||||
static void
|
||||
brw_init_surface_cache(struct brw_context *brw)
|
||||
brw_init_surface_state_cache(struct brw_context *brw)
|
||||
{
|
||||
struct brw_cache *cache = &brw->surface_cache;
|
||||
|
||||
cache->brw = brw;
|
||||
cache->sws = brw->sws;
|
||||
|
||||
cache->buffer_type = BRW_BUFFER_TYPE_SURFACE_STATE;
|
||||
|
||||
cache->size = 7;
|
||||
cache->n_items = 0;
|
||||
cache->items = (struct brw_cache_item **)
|
||||
@@ -486,8 +487,8 @@ brw_init_surface_cache(struct brw_context *brw)
|
||||
void
|
||||
brw_init_caches(struct brw_context *brw)
|
||||
{
|
||||
brw_init_non_surface_cache(brw);
|
||||
brw_init_surface_cache(brw);
|
||||
brw_init_general_state_cache(brw);
|
||||
brw_init_surface_state_cache(brw);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ state_struct_out(struct brw_winsys_screen *sws,
|
||||
if (buffer == NULL)
|
||||
return;
|
||||
|
||||
data = sws->bo_map(buffer, GL_FALSE);
|
||||
data = sws->bo_map(buffer, BRW_DATA_OTHER, GL_FALSE);
|
||||
for (i = 0; i < state_size / 4; i++) {
|
||||
state_out(name, data, buffer->offset[0], i,
|
||||
"dword %d\n", i);
|
||||
@@ -114,7 +114,9 @@ static void dump_wm_surface_state(struct brw_context *brw)
|
||||
debug_printf(" WM SS%d: NULL\n", i);
|
||||
continue;
|
||||
}
|
||||
surf = (struct brw_surface_state *)brw->sws->bo_map(surf_bo, GL_FALSE);
|
||||
surf = (struct brw_surface_state *)brw->sws->bo_map(surf_bo,
|
||||
BRW_DATA_OTHER,
|
||||
GL_FALSE);
|
||||
surfoff = surf_bo->offset[0];
|
||||
|
||||
sprintf(name, "WM SS%d", i);
|
||||
@@ -144,7 +146,9 @@ static void dump_sf_viewport_state(struct brw_context *brw)
|
||||
if (brw->sf.vp_bo == NULL)
|
||||
return;
|
||||
|
||||
vp = (struct brw_sf_viewport *)brw->sws->bo_map(brw->sf.vp_bo, GL_FALSE);
|
||||
vp = (struct brw_sf_viewport *)brw->sws->bo_map(brw->sf.vp_bo,
|
||||
BRW_DATA_OTHER,
|
||||
GL_FALSE);
|
||||
vp_off = brw->sf.vp_bo->offset[0];
|
||||
|
||||
state_out(name, vp, vp_off, 0, "m00 = %f\n", vp->viewport.m00);
|
||||
@@ -172,7 +176,9 @@ static void brw_debug_prog(struct brw_winsys_screen *sws,
|
||||
if (prog == NULL)
|
||||
return;
|
||||
|
||||
data = (uint32_t *)sws->bo_map(prog, GL_FALSE);
|
||||
data = (uint32_t *)sws->bo_map(prog,
|
||||
BRW_DATA_OTHER,
|
||||
GL_FALSE);
|
||||
|
||||
for (i = 0; i < prog->size / 4 / 4; i++) {
|
||||
debug_printf("%8s: 0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x\n",
|
||||
|
||||
@@ -44,21 +44,6 @@ struct brw_winsys_buffer {
|
||||
unsigned size;
|
||||
};
|
||||
|
||||
/* Describe the usage of a particular buffer in a relocation. The DRM
|
||||
* winsys will translate these back to GEM read/write domain flags.
|
||||
*/
|
||||
enum brw_buffer_usage {
|
||||
BRW_USAGE_STATE, /* INSTRUCTION, 0 */
|
||||
BRW_USAGE_QUERY_RESULT, /* INSTRUCTION, INSTRUCTION */
|
||||
BRW_USAGE_RENDER_TARGET, /* RENDER, 0 */
|
||||
BRW_USAGE_DEPTH_BUFFER, /* RENDER, RENDER */
|
||||
BRW_USAGE_BLIT_SOURCE, /* RENDER, 0 */
|
||||
BRW_USAGE_BLIT_DEST, /* RENDER, RENDER */
|
||||
BRW_USAGE_SAMPLER, /* SAMPLER, 0 */
|
||||
BRW_USAGE_VERTEX, /* VERTEX, 0 */
|
||||
BRW_USAGE_SCRATCH, /* 0, 0 */
|
||||
BRW_USAGE_MAX
|
||||
};
|
||||
|
||||
/* Should be possible to validate usages above against buffer creation
|
||||
* types, below:
|
||||
@@ -73,12 +58,53 @@ enum brw_buffer_type
|
||||
BRW_BUFFER_TYPE_SHADER_CONSTANTS,
|
||||
BRW_BUFFER_TYPE_SHADER_SCRATCH,
|
||||
BRW_BUFFER_TYPE_BATCH,
|
||||
BRW_BUFFER_TYPE_STATE_CACHE,
|
||||
BRW_BUFFER_TYPE_GENERAL_STATE,
|
||||
BRW_BUFFER_TYPE_SURFACE_STATE,
|
||||
BRW_BUFFER_TYPE_PIXEL, /* image uploads, pbo's, etc */
|
||||
BRW_BUFFER_TYPE_GENERIC, /* unknown */
|
||||
BRW_BUFFER_TYPE_MAX /* Count of possible values */
|
||||
};
|
||||
|
||||
|
||||
/* Describe the usage of a particular buffer in a relocation. The DRM
|
||||
* winsys will translate these back to GEM read/write domain flags.
|
||||
*/
|
||||
enum brw_buffer_usage {
|
||||
BRW_USAGE_STATE, /* INSTRUCTION, 0 */
|
||||
BRW_USAGE_QUERY_RESULT, /* INSTRUCTION, INSTRUCTION */
|
||||
BRW_USAGE_RENDER_TARGET, /* RENDER, 0 */
|
||||
BRW_USAGE_DEPTH_BUFFER, /* RENDER, RENDER */
|
||||
BRW_USAGE_BLIT_SOURCE, /* RENDER, 0 */
|
||||
BRW_USAGE_BLIT_DEST, /* RENDER, RENDER */
|
||||
BRW_USAGE_SAMPLER, /* SAMPLER, 0 */
|
||||
BRW_USAGE_VERTEX, /* VERTEX, 0 */
|
||||
BRW_USAGE_SCRATCH, /* 0, 0 */
|
||||
BRW_USAGE_MAX
|
||||
};
|
||||
|
||||
enum brw_buffer_data_type {
|
||||
BRW_DATA_GS_CC_VP,
|
||||
BRW_DATA_GS_CC_UNIT,
|
||||
BRW_DATA_GS_WM_PROG,
|
||||
BRW_DATA_GS_SAMPLER_DEFAULT_COLOR,
|
||||
BRW_DATA_GS_SAMPLER,
|
||||
BRW_DATA_GS_WM_UNIT,
|
||||
BRW_DATA_GS_SF_PROG,
|
||||
BRW_DATA_GS_SF_VP,
|
||||
BRW_DATA_GS_SF_UNIT,
|
||||
BRW_DATA_GS_VS_UNIT,
|
||||
BRW_DATA_GS_VS_PROG,
|
||||
BRW_DATA_GS_GS_UNIT,
|
||||
BRW_DATA_GS_GS_PROG,
|
||||
BRW_DATA_GS_CLIP_VP,
|
||||
BRW_DATA_GS_CLIP_UNIT,
|
||||
BRW_DATA_GS_CLIP_PROG,
|
||||
BRW_DATA_SS_SURFACE,
|
||||
BRW_DATA_SS_SURF_BIND,
|
||||
BRW_DATA_OTHER,
|
||||
BRW_DATA_MAX
|
||||
};
|
||||
|
||||
struct brw_winsys_screen {
|
||||
|
||||
|
||||
@@ -113,9 +139,10 @@ struct brw_winsys_screen {
|
||||
unsigned bytes_used );
|
||||
|
||||
int (*bo_subdata)(struct brw_winsys_buffer *buffer,
|
||||
size_t offset,
|
||||
size_t size,
|
||||
const void *data);
|
||||
enum brw_buffer_data_type data_type,
|
||||
size_t offset,
|
||||
size_t size,
|
||||
const void *data);
|
||||
|
||||
boolean (*bo_is_busy)(struct brw_winsys_buffer *buffer);
|
||||
boolean (*bo_references)(struct brw_winsys_buffer *a,
|
||||
@@ -132,6 +159,7 @@ struct brw_winsys_screen {
|
||||
* Map a buffer.
|
||||
*/
|
||||
void *(*bo_map)(struct brw_winsys_buffer *buffer,
|
||||
enum brw_buffer_data_type data_type,
|
||||
boolean write);
|
||||
|
||||
/**
|
||||
@@ -140,9 +168,6 @@ struct brw_winsys_screen {
|
||||
void (*bo_unmap)(struct brw_winsys_buffer *buffer);
|
||||
/*@}*/
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Destroy the winsys.
|
||||
*/
|
||||
|
||||
@@ -82,31 +82,57 @@ xlib_brw_buffer( struct brw_winsys_buffer *buffer )
|
||||
|
||||
|
||||
const char *names[BRW_BUFFER_TYPE_MAX] = {
|
||||
"texture",
|
||||
"scanout",
|
||||
"vertex",
|
||||
"curbe",
|
||||
"query",
|
||||
"shader_constants",
|
||||
"wm_scratch",
|
||||
"batch",
|
||||
"state_cache",
|
||||
"pixel",
|
||||
"generic",
|
||||
"TEXTURE",
|
||||
"SCANOUT",
|
||||
"VERTEX",
|
||||
"CURBE",
|
||||
"QUERY",
|
||||
"SHADER_CONSTANTS",
|
||||
"WM_SCRATCH",
|
||||
"BATCH",
|
||||
"GENERAL_STATE",
|
||||
"SURFACE_STATE",
|
||||
"PIXEL",
|
||||
"GENERIC",
|
||||
};
|
||||
|
||||
const char *usages[BRW_USAGE_MAX] = {
|
||||
"state",
|
||||
"query_result",
|
||||
"render_target",
|
||||
"depth_buffer",
|
||||
"blit_source",
|
||||
"blit_dest",
|
||||
"sampler",
|
||||
"vertex",
|
||||
"scratch"
|
||||
"STATE",
|
||||
"QUERY_RESULT",
|
||||
"RENDER_TARGET",
|
||||
"DEPTH_BUFFER",
|
||||
"BLIT_SOURCE",
|
||||
"BLIT_DEST",
|
||||
"SAMPLER",
|
||||
"VERTEX",
|
||||
"SCRATCH"
|
||||
};
|
||||
|
||||
|
||||
const char *data_types[BRW_DATA_MAX] =
|
||||
{
|
||||
"GS: CC_VP",
|
||||
"GS: CC_UNIT",
|
||||
"GS: WM_PROG",
|
||||
"GS: SAMPLER_DEFAULT_COLOR",
|
||||
"GS: SAMPLER",
|
||||
"GS: WM_UNIT",
|
||||
"GS: SF_PROG",
|
||||
"GS: SF_VP",
|
||||
"GS: SF_UNIT",
|
||||
"GS: VS_UNIT",
|
||||
"GS: VS_PROG",
|
||||
"GS: GS_UNIT",
|
||||
"GS: GS_PROG",
|
||||
"GS: CLIP_VP",
|
||||
"GS: CLIP_UNIT",
|
||||
"GS: CLIP_PROG",
|
||||
"SS: SURFACE",
|
||||
"SS: SURF_BIND",
|
||||
"(untyped)"
|
||||
};
|
||||
|
||||
|
||||
static struct brw_winsys_buffer *
|
||||
xlib_brw_bo_alloc( struct brw_winsys_screen *sws,
|
||||
enum brw_buffer_type type,
|
||||
@@ -116,8 +142,8 @@ xlib_brw_bo_alloc( struct brw_winsys_screen *sws,
|
||||
struct xlib_brw_winsys *xbw = xlib_brw_winsys(sws);
|
||||
struct xlib_brw_buffer *buf;
|
||||
|
||||
debug_printf("%s type %d sz %d align %d\n",
|
||||
__FUNCTION__, type, size, alignment );
|
||||
debug_printf("%s type %s sz %d align %d\n",
|
||||
__FUNCTION__, names[type], size, alignment );
|
||||
|
||||
buf = CALLOC_STRUCT(xlib_brw_buffer);
|
||||
if (!buf)
|
||||
@@ -168,10 +194,10 @@ xlib_brw_bo_unreference( struct brw_winsys_buffer *buffer )
|
||||
|
||||
static int
|
||||
xlib_brw_bo_emit_reloc( struct brw_winsys_buffer *buffer,
|
||||
enum brw_buffer_usage usage,
|
||||
unsigned delta,
|
||||
unsigned offset,
|
||||
struct brw_winsys_buffer *buffer2)
|
||||
enum brw_buffer_usage usage,
|
||||
unsigned delta,
|
||||
unsigned offset,
|
||||
struct brw_winsys_buffer *buffer2)
|
||||
{
|
||||
struct xlib_brw_buffer *buf = xlib_brw_buffer(buffer);
|
||||
struct xlib_brw_buffer *buf2 = xlib_brw_buffer(buffer2);
|
||||
@@ -197,15 +223,16 @@ xlib_brw_bo_exec( struct brw_winsys_buffer *buffer,
|
||||
|
||||
static int
|
||||
xlib_brw_bo_subdata(struct brw_winsys_buffer *buffer,
|
||||
size_t offset,
|
||||
size_t size,
|
||||
const void *data)
|
||||
enum brw_buffer_data_type data_type,
|
||||
size_t offset,
|
||||
size_t size,
|
||||
const void *data)
|
||||
{
|
||||
struct xlib_brw_buffer *buf = xlib_brw_buffer(buffer);
|
||||
|
||||
debug_printf("%s buf %p off %d sz %d data %p\n",
|
||||
debug_printf("%s buf %p off %d sz %d data %p %s\n",
|
||||
__FUNCTION__,
|
||||
(void *)buffer, offset, size, data);
|
||||
(void *)buffer, offset, size, data, data_types[data_type]);
|
||||
|
||||
memcpy(buf->virtual + offset, data, size);
|
||||
return 0;
|
||||
@@ -247,12 +274,14 @@ xlib_brw_check_aperture_space( struct brw_winsys_screen *iws,
|
||||
|
||||
static void *
|
||||
xlib_brw_bo_map(struct brw_winsys_buffer *buffer,
|
||||
enum brw_buffer_data_type data_type,
|
||||
boolean write)
|
||||
{
|
||||
struct xlib_brw_buffer *buf = xlib_brw_buffer(buffer);
|
||||
|
||||
debug_printf("%s %p %s\n", __FUNCTION__, (void *)buffer,
|
||||
write ? "read/write" : "read");
|
||||
debug_printf("%s %p %s %s\n", __FUNCTION__, (void *)buffer,
|
||||
write ? "read/write" : "read",
|
||||
write ? data_types[data_type] : "");
|
||||
|
||||
buf->map_count++;
|
||||
return buf->virtual;
|
||||
|
||||
Reference in New Issue
Block a user