-
- rbuf->cs_buf =
- r300screen->rws->buffer_get_cs_handle(rbuf->buf);
-
- return &rbuf->b.b.b;
-}
-
-struct pipe_resource *r300_user_buffer_create(struct pipe_screen *screen,
- void *ptr, unsigned size,
- unsigned bind)
-{
- struct r300_screen *r300screen = r300_screen(screen);
- struct r300_resource *rbuf;
-
- rbuf = util_slab_alloc(&r300screen->pool_buffers);
-
- pipe_reference_init(&rbuf->b.b.b.reference, 1);
- rbuf->b.b.b.screen = screen;
- rbuf->b.b.b.target = PIPE_BUFFER;
- rbuf->b.b.b.format = PIPE_FORMAT_R8_UNORM;
- rbuf->b.b.b.usage = PIPE_USAGE_IMMUTABLE;
- rbuf->b.b.b.bind = bind;
- rbuf->b.b.b.width0 = ~0;
- rbuf->b.b.b.height0 = 1;
- rbuf->b.b.b.depth0 = 1;
- rbuf->b.b.b.array_size = 1;
- rbuf->b.b.b.flags = 0;
- rbuf->b.b.vtbl = &r300_buffer_vtbl;
- rbuf->b.user_ptr = ptr;
- rbuf->domain = R300_DOMAIN_GTT;
- rbuf->buf = NULL;
- rbuf->buf_size = size;
- rbuf->constant_buffer = NULL;
- return &rbuf->b.b.b;