Browse Source

gallium: remove pipe_context member from pipe_transfer

There was very little use for this beyond permitting the
pipe_context::tex_transfer_destroy() function to omit the pipe_context
argument.

This change adds the pipe_context argument into tex_transfer_destroy()
so that it looks like other pipe_context functions, and removes the
pipe_context pointer from pipe_transfer.
tags/mesa-7.9-rc1
Keith Whitwell 15 years ago
parent
commit
d35ecca5ee
45 changed files with 177 additions and 150 deletions
  1. 1
    1
      src/gallium/auxiliary/draw/draw_pipe_aaline.c
  2. 1
    1
      src/gallium/auxiliary/draw/draw_pipe_pstipple.c
  3. 6
    5
      src/gallium/auxiliary/util/u_debug.c
  4. 2
    1
      src/gallium/auxiliary/util/u_debug.h
  5. 6
    6
      src/gallium/auxiliary/util/u_gen_mipmap.c
  6. 7
    7
      src/gallium/auxiliary/util/u_inlines.h
  7. 3
    3
      src/gallium/auxiliary/util/u_rect.c
  8. 14
    12
      src/gallium/auxiliary/util/u_tile.c
  9. 12
    6
      src/gallium/auxiliary/util/u_tile.h
  10. 1
    1
      src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c
  11. 2
    2
      src/gallium/drivers/i915/i915_texture.c
  12. 1
    0
      src/gallium/drivers/i965/brw_screen.h
  13. 2
    2
      src/gallium/drivers/i965/brw_screen_texture.c
  14. 4
    2
      src/gallium/drivers/identity/id_context.c
  15. 8
    4
      src/gallium/drivers/identity/id_objects.c
  16. 3
    1
      src/gallium/drivers/identity/id_objects.h
  17. 2
    2
      src/gallium/drivers/llvmpipe/lp_scene.c
  18. 2
    1
      src/gallium/drivers/llvmpipe/lp_texture.c
  19. 3
    2
      src/gallium/drivers/nv30/nv30_transfer.c
  20. 2
    2
      src/gallium/drivers/nv40/nv40_transfer.c
  21. 2
    2
      src/gallium/drivers/nv50/nv50_transfer.c
  22. 0
    2
      src/gallium/drivers/r300/r300_screen.c
  23. 2
    1
      src/gallium/drivers/r300/r300_transfer.c
  24. 6
    5
      src/gallium/drivers/softpipe/sp_tex_tile_cache.c
  25. 2
    2
      src/gallium/drivers/softpipe/sp_texture.c
  26. 10
    9
      src/gallium/drivers/softpipe/sp_tile_cache.c
  27. 3
    2
      src/gallium/drivers/svga/svga_screen_texture.c
  28. 5
    4
      src/gallium/drivers/trace/tr_context.c
  29. 1
    1
      src/gallium/drivers/trace/tr_rbug.c
  30. 9
    7
      src/gallium/drivers/trace/tr_texture.c
  31. 3
    1
      src/gallium/drivers/trace/tr_texture.h
  32. 2
    1
      src/gallium/include/pipe/p_context.h
  33. 0
    2
      src/gallium/include/pipe/p_state.h
  34. 1
    1
      src/gallium/state_trackers/vega/api_filters.c
  35. 2
    2
      src/gallium/state_trackers/vega/api_images.c
  36. 4
    4
      src/gallium/state_trackers/vega/image.c
  37. 1
    1
      src/gallium/state_trackers/vega/paint.c
  38. 1
    1
      src/mesa/state_tracker/st_atom_pixeltransfer.c
  39. 7
    7
      src/mesa/state_tracker/st_cb_accum.c
  40. 4
    4
      src/mesa/state_tracker/st_cb_bitmap.c
  41. 9
    9
      src/mesa/state_tracker/st_cb_drawpixels.c
  42. 11
    11
      src/mesa/state_tracker/st_cb_readpixels.c
  43. 6
    6
      src/mesa/state_tracker/st_cb_texture.c
  44. 2
    2
      src/mesa/state_tracker/st_gen_mipmap.c
  45. 2
    2
      src/mesa/state_tracker/st_texture.c

+ 1
- 1
src/gallium/auxiliary/draw/draw_pipe_aaline.c View File

@@ -449,7 +449,7 @@ aaline_create_texture(struct aaline_stage *aaline)

/* unmap */
pipe->transfer_unmap(pipe, transfer);
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}
return TRUE;
}

+ 1
- 1
src/gallium/auxiliary/draw/draw_pipe_pstipple.c View File

@@ -411,7 +411,7 @@ pstip_update_texture(struct pstip_stage *pstip)

/* unmap */
pipe->transfer_unmap(pipe, transfer);
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}



+ 6
- 5
src/gallium/auxiliary/util/u_debug.c View File

@@ -459,7 +459,7 @@ void debug_dump_surface(struct pipe_context *pipe,
pipe->transfer_unmap(pipe, transfer);
error:
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}


@@ -530,14 +530,15 @@ debug_dump_surface_bmp(struct pipe_context *pipe,
PIPE_TRANSFER_READ, 0, 0, surface->width,
surface->height);

debug_dump_transfer_bmp(filename, transfer);
debug_dump_transfer_bmp(pipe, filename, transfer);

pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
#endif
}

void
debug_dump_transfer_bmp(const char *filename,
debug_dump_transfer_bmp(struct pipe_context *pipe,
const char *filename,
struct pipe_transfer *transfer)
{
#ifndef PIPE_SUBSYSTEM_WINDOWS_MINIPORT
@@ -550,7 +551,7 @@ debug_dump_transfer_bmp(const char *filename,
if(!rgba)
goto error1;

pipe_get_tile_rgba(transfer, 0, 0,
pipe_get_tile_rgba(pipe, transfer, 0, 0,
transfer->width, transfer->height,
rgba);


+ 2
- 1
src/gallium/auxiliary/util/u_debug.h View File

@@ -331,7 +331,8 @@ void debug_dump_texture(struct pipe_context *pipe,
void debug_dump_surface_bmp(struct pipe_context *pipe,
const char *filename,
struct pipe_surface *surface);
void debug_dump_transfer_bmp(const char *filename,
void debug_dump_transfer_bmp(struct pipe_context *pipe,
const char *filename,
struct pipe_transfer *transfer);
void debug_dump_float_rgba_bmp(const char *filename,
unsigned width, unsigned height,

+ 6
- 6
src/gallium/auxiliary/util/u_gen_mipmap.c View File

@@ -1146,8 +1146,8 @@ make_1d_mipmap(struct gen_mipmap_state *ctx,
pipe->transfer_unmap(pipe, srcTrans);
pipe->transfer_unmap(pipe, dstTrans);

pipe->tex_transfer_destroy(srcTrans);
pipe->tex_transfer_destroy(dstTrans);
pipe->tex_transfer_destroy(pipe, srcTrans);
pipe->tex_transfer_destroy(pipe, dstTrans);
}
}

@@ -1190,8 +1190,8 @@ make_2d_mipmap(struct gen_mipmap_state *ctx,
pipe->transfer_unmap(pipe, srcTrans);
pipe->transfer_unmap(pipe, dstTrans);

pipe->tex_transfer_destroy(srcTrans);
pipe->tex_transfer_destroy(dstTrans);
pipe->tex_transfer_destroy(pipe, srcTrans);
pipe->tex_transfer_destroy(pipe, dstTrans);
}
}

@@ -1235,8 +1235,8 @@ make_3d_mipmap(struct gen_mipmap_state *ctx,
pipe->transfer_unmap(pipe, srcTrans);
pipe->transfer_unmap(pipe, dstTrans);

pipe->tex_transfer_destroy(srcTrans);
pipe->tex_transfer_destroy(dstTrans);
pipe->tex_transfer_destroy(pipe, srcTrans);
pipe->tex_transfer_destroy(pipe, dstTrans);
}
#else
(void) reduce_3d;

+ 7
- 7
src/gallium/auxiliary/util/u_inlines.h View File

@@ -264,24 +264,24 @@ pipe_buffer_read(struct pipe_screen *screen,
}

static INLINE void *
pipe_transfer_map( struct pipe_transfer *transf )
pipe_transfer_map( struct pipe_context *context,
struct pipe_transfer *transf )
{
struct pipe_context *context = transf->pipe;
return context->transfer_map(context, transf);
}

static INLINE void
pipe_transfer_unmap( struct pipe_transfer *transf )
pipe_transfer_unmap( struct pipe_context *context,
struct pipe_transfer *transf )
{
struct pipe_context *context = transf->pipe;
context->transfer_unmap(context, transf);
}

static INLINE void
pipe_transfer_destroy( struct pipe_transfer *transf )
pipe_transfer_destroy( struct pipe_context *context,
struct pipe_transfer *transfer )
{
struct pipe_context *context = transf->pipe;
context->tex_transfer_destroy(transf);
context->tex_transfer_destroy(context, transfer);
}

static INLINE unsigned

+ 3
- 3
src/gallium/auxiliary/util/u_rect.c View File

@@ -223,8 +223,8 @@ util_surface_copy(struct pipe_context *pipe,
pipe->transfer_unmap(pipe, src_trans);
pipe->transfer_unmap(pipe, dst_trans);

pipe->tex_transfer_destroy(src_trans);
pipe->tex_transfer_destroy(dst_trans);
pipe->tex_transfer_destroy(pipe, src_trans);
pipe->tex_transfer_destroy(pipe, dst_trans);
}


@@ -301,5 +301,5 @@ util_surface_fill(struct pipe_context *pipe,
}

pipe->transfer_unmap(pipe, dst_trans);
pipe->tex_transfer_destroy(dst_trans);
pipe->tex_transfer_destroy(pipe, dst_trans);
}

+ 14
- 12
src/gallium/auxiliary/util/u_tile.c View File

@@ -45,11 +45,11 @@
* Move raw block of pixels from transfer object to user memory.
*/
void
pipe_get_tile_raw(struct pipe_transfer *pt,
pipe_get_tile_raw(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
void *dst, int dst_stride)
{
struct pipe_context *pipe = pt->pipe;
const void *src;

if (dst_stride == 0)
@@ -73,11 +73,11 @@ pipe_get_tile_raw(struct pipe_transfer *pt,
* Move raw block of pixels from user memory to transfer object.
*/
void
pipe_put_tile_raw(struct pipe_transfer *pt,
pipe_put_tile_raw(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
const void *src, int src_stride)
{
struct pipe_context *pipe = pt->pipe;
void *dst;
enum pipe_format format = pt->texture->format;

@@ -1246,7 +1246,8 @@ pipe_tile_raw_to_rgba(enum pipe_format format,


void
pipe_get_tile_rgba(struct pipe_transfer *pt,
pipe_get_tile_rgba(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
float *p)
{
@@ -1265,7 +1266,7 @@ pipe_get_tile_rgba(struct pipe_transfer *pt,
if(format == PIPE_FORMAT_UYVY || format == PIPE_FORMAT_YUYV)
assert((x & 1) == 0);

pipe_get_tile_raw(pt, x, y, w, h, packed, 0);
pipe_get_tile_raw(pipe, pt, x, y, w, h, packed, 0);

pipe_tile_raw_to_rgba(format, packed, w, h, p, dst_stride);

@@ -1274,7 +1275,8 @@ pipe_get_tile_rgba(struct pipe_transfer *pt,


void
pipe_put_tile_rgba(struct pipe_transfer *pt,
pipe_put_tile_rgba(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
const float *p)
{
@@ -1363,7 +1365,7 @@ pipe_put_tile_rgba(struct pipe_transfer *pt,
0, 0, w, h);
}

pipe_put_tile_raw(pt, x, y, w, h, packed, 0);
pipe_put_tile_raw(pipe, pt, x, y, w, h, packed, 0);

FREE(packed);
}
@@ -1373,11 +1375,11 @@ pipe_put_tile_rgba(struct pipe_transfer *pt,
* Get a block of Z values, converted to 32-bit range.
*/
void
pipe_get_tile_z(struct pipe_transfer *pt,
pipe_get_tile_z(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
uint *z)
{
struct pipe_context *pipe = pt->pipe;
const uint dstStride = w;
ubyte *map;
uint *pDest = z;
@@ -1458,11 +1460,11 @@ pipe_get_tile_z(struct pipe_transfer *pt,


void
pipe_put_tile_z(struct pipe_transfer *pt,
pipe_put_tile_z(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
const uint *zSrc)
{
struct pipe_context *pipe = pt->pipe;
const uint srcStride = w;
const uint *ptrc = zSrc;
ubyte *map;

+ 12
- 6
src/gallium/auxiliary/util/u_tile.h View File

@@ -56,34 +56,40 @@ extern "C" {
#endif

void
pipe_get_tile_raw(struct pipe_transfer *pt,
pipe_get_tile_raw(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
void *p, int dst_stride);

void
pipe_put_tile_raw(struct pipe_transfer *pt,
pipe_put_tile_raw(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
const void *p, int src_stride);


void
pipe_get_tile_rgba(struct pipe_transfer *pt,
pipe_get_tile_rgba(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
float *p);

void
pipe_put_tile_rgba(struct pipe_transfer *pt,
pipe_put_tile_rgba(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
const float *p);


void
pipe_get_tile_z(struct pipe_transfer *pt,
pipe_get_tile_z(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
uint *z);

void
pipe_put_tile_z(struct pipe_transfer *pt,
pipe_put_tile_z(struct pipe_context *pipe,
struct pipe_transfer *pt,
uint x, uint y, uint w, uint h,
const uint *z);


+ 1
- 1
src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c View File

@@ -700,7 +700,7 @@ xfer_buffers_unmap(struct vl_mpeg12_mc_renderer *r)

for (i = 0; i < 3; ++i) {
r->pipe->transfer_unmap(r->pipe, r->tex_transfer[i]);
r->pipe->tex_transfer_destroy(r->tex_transfer[i]);
r->pipe->tex_transfer_destroy(r->pipe, r->tex_transfer[i]);
}
}


+ 2
- 2
src/gallium/drivers/i915/i915_texture.c View File

@@ -825,7 +825,6 @@ i915_get_tex_transfer(struct pipe_context *pipe,
trans = CALLOC_STRUCT(i915_transfer);
if (trans) {
pipe_texture_reference(&trans->base.texture, texture);
trans->base.pipe = pipe;
trans->base.x = x;
trans->base.y = y;
trans->base.width = w;
@@ -869,7 +868,8 @@ i915_transfer_unmap(struct pipe_context *pipe,
}

static void
i915_tex_transfer_destroy(struct pipe_transfer *trans)
i915_tex_transfer_destroy(struct pipe_context *pipe,
struct pipe_transfer *trans)
{
pipe_texture_reference(&trans->texture, NULL);
FREE(trans);

+ 1
- 0
src/gallium/drivers/i965/brw_screen.h View File

@@ -202,4 +202,5 @@ boolean brw_is_buffer_referenced_by_bo( struct brw_screen *brw_screen,
struct brw_winsys_buffer *bo );



#endif /* BRW_SCREEN_H */

+ 2
- 2
src/gallium/drivers/i965/brw_screen_texture.c View File

@@ -504,7 +504,6 @@ brw_get_tex_transfer(struct pipe_context *pipe,
trans = CALLOC_STRUCT(brw_transfer);
if (trans) {
pipe_texture_reference(&trans->base.texture, texture);
trans->base.pipe = pipe;
trans->base.x = x;
trans->base.y = y;
trans->base.width = w;
@@ -554,7 +553,8 @@ brw_transfer_unmap(struct pipe_context *pipe,
}

static void
brw_tex_transfer_destroy(struct pipe_transfer *trans)
brw_tex_transfer_destroy(struct pipe_context *pipe,
struct pipe_transfer *trans)
{
pipe_texture_reference(&trans->texture, NULL);
FREE(trans);

+ 4
- 2
src/gallium/drivers/identity/id_context.c View File

@@ -748,9 +748,11 @@ identity_context_get_tex_transfer(struct pipe_context *_context,
}

static void
identity_context_tex_transfer_destroy(struct pipe_transfer *_transfer)
identity_context_tex_transfer_destroy(struct pipe_context *_pipe,
struct pipe_transfer *_transfer)
{
identity_transfer_destroy(identity_transfer(_transfer));
identity_transfer_destroy(identity_context(_pipe),
identity_transfer(_transfer));
}

static void *

+ 8
- 4
src/gallium/drivers/identity/id_objects.c View File

@@ -30,6 +30,7 @@

#include "id_screen.h"
#include "id_objects.h"
#include "id_context.h"

struct pipe_buffer *
identity_buffer_create(struct identity_screen *id_screen,
@@ -160,22 +161,25 @@ identity_transfer_create(struct identity_context *id_context,
memcpy(&id_transfer->base, transfer, sizeof(struct pipe_transfer));

id_transfer->base.texture = NULL;
pipe_texture_reference(&id_transfer->base.texture, &id_texture->base);
id_transfer->transfer = transfer;

pipe_texture_reference(&id_transfer->base.texture, &id_texture->base);
assert(id_transfer->base.texture == &id_texture->base);

return &id_transfer->base;

error:
transfer->pipe->tex_transfer_destroy(transfer);
id_context->pipe->tex_transfer_destroy(id_context->pipe, transfer);
return NULL;
}

void
identity_transfer_destroy(struct identity_transfer *id_transfer)
identity_transfer_destroy(struct identity_context *id_context,
struct identity_transfer *id_transfer)
{
pipe_texture_reference(&id_transfer->base.texture, NULL);
id_transfer->transfer->pipe->tex_transfer_destroy(id_transfer->transfer);
id_context->pipe->tex_transfer_destroy(id_context->pipe,
id_transfer->transfer);
FREE(id_transfer);
}


+ 3
- 1
src/gallium/drivers/identity/id_objects.h View File

@@ -65,6 +65,7 @@ struct identity_transfer
{
struct pipe_transfer base;

struct pipe_context *pipe;
struct pipe_transfer *transfer;
};

@@ -183,7 +184,8 @@ identity_transfer_create(struct identity_context *id_context,
struct pipe_transfer *transfer);

void
identity_transfer_destroy(struct identity_transfer *id_transfer);
identity_transfer_destroy(struct identity_context *id_context,
struct identity_transfer *id_transfer);

struct pipe_video_surface *
identity_video_surface_create(struct identity_screen *id_screen,

+ 2
- 2
src/gallium/drivers/llvmpipe/lp_scene.c View File

@@ -477,7 +477,7 @@ lp_scene_unmap_buffers( struct lp_scene *scene )
pipe->transfer_unmap(pipe, scene->cbuf_transfer[i]);

if (scene->cbuf_transfer[i])
pipe->tex_transfer_destroy(scene->cbuf_transfer[i]);
pipe->tex_transfer_destroy(pipe, scene->cbuf_transfer[i]);

scene->cbuf_transfer[i] = NULL;
scene->cbuf_map[i] = NULL;
@@ -487,7 +487,7 @@ lp_scene_unmap_buffers( struct lp_scene *scene )
pipe->transfer_unmap(pipe, scene->zsbuf_transfer);

if (scene->zsbuf_transfer)
pipe->tex_transfer_destroy(scene->zsbuf_transfer);
pipe->tex_transfer_destroy(pipe, scene->zsbuf_transfer);

scene->zsbuf_transfer = NULL;
scene->zsbuf_map = NULL;

+ 2
- 1
src/gallium/drivers/llvmpipe/lp_texture.c View File

@@ -294,7 +294,8 @@ llvmpipe_get_tex_transfer(struct pipe_context *pipe,


static void
llvmpipe_tex_transfer_destroy(struct pipe_transfer *transfer)
llvmpipe_tex_transfer_destroy(struct pipe_context *pipe,
struct pipe_transfer *transfer)
{
/* Effectively do the texture_update work here - if texture images
* needed post-processing to put them into hardware layout, this is

+ 3
- 2
src/gallium/drivers/nv30/nv30_transfer.c View File

@@ -118,12 +118,13 @@ nv30_transfer_new(struct pipe_context *pcontext, struct pipe_texture *pt,
}

static void
nv30_transfer_del(struct pipe_transfer *ptx)
nv30_transfer_del(struct pipe_context *pcontext,
struct pipe_transfer *ptx)
{
struct nv30_transfer *tx = (struct nv30_transfer *)ptx;

if (!tx->direct && (ptx->usage & PIPE_TRANSFER_WRITE)) {
struct pipe_screen *pscreen = ptx->texture->screen;
struct pipe_screen *pscreen = pcontext->screen;
struct nv30_screen *nvscreen = nv30_screen(pscreen);
struct pipe_surface *dst;


+ 2
- 2
src/gallium/drivers/nv40/nv40_transfer.c View File

@@ -118,12 +118,12 @@ nv40_transfer_new(struct pipe_context *pcontext, struct pipe_texture *pt,
}

static void
nv40_transfer_del(struct pipe_transfer *ptx)
nv40_transfer_del(struct pipe_context *pcontext, struct pipe_transfer *ptx)
{
struct nv40_transfer *tx = (struct nv40_transfer *)ptx;

if (!tx->direct && (ptx->usage & PIPE_TRANSFER_WRITE)) {
struct pipe_screen *pscreen = ptx->texture->screen;
struct pipe_screen *pscreen = pcontext->screen;
struct nv40_screen *nvscreen = nv40_screen(pscreen);
struct pipe_surface *dst;


+ 2
- 2
src/gallium/drivers/nv50/nv50_transfer.c View File

@@ -187,7 +187,7 @@ nv50_transfer_new(struct pipe_context *pcontext, struct pipe_texture *pt,
}

static void
nv50_transfer_del(struct pipe_transfer *ptx)
nv50_transfer_del(struct pipe_context *pcontext, struct pipe_transfer *ptx)
{
struct nv50_transfer *tx = (struct nv50_transfer *)ptx;
struct nv50_miptree *mt = nv50_miptree(ptx->texture);
@@ -197,7 +197,7 @@ nv50_transfer_del(struct pipe_transfer *ptx)
unsigned ny = util_format_get_nblocksy(pt->format, tx->base.height);

if (ptx->usage & PIPE_TRANSFER_WRITE) {
struct pipe_screen *pscreen = pt->screen;
struct pipe_screen *pscreen = pcontext->screen;

nv50_transfer_rect_m2mf(pscreen, tx->bo, 0,
tx->base.stride, tx->bo->tile_mode,

+ 0
- 2
src/gallium/drivers/r300/r300_screen.c View File

@@ -251,8 +251,6 @@ static boolean r300_is_format_supported(struct pipe_screen* screen,
return retval == usage;
}



static void r300_destroy_screen(struct pipe_screen* pscreen)
{
struct r300_screen* r300screen = r300_screen(pscreen);

+ 2
- 1
src/gallium/drivers/r300/r300_transfer.c View File

@@ -205,7 +205,8 @@ r300_get_tex_transfer(struct pipe_context *ctx,
return &trans->transfer;
}

static void r300_tex_transfer_destroy(struct pipe_transfer *trans)
static void r300_tex_transfer_destroy(struct pipe_context *ctx,
struct pipe_transfer *trans)
{
struct r300_transfer *r300transfer = r300_transfer(trans);


+ 6
- 5
src/gallium/drivers/softpipe/sp_tex_tile_cache.c View File

@@ -69,10 +69,10 @@ sp_destroy_tex_tile_cache(struct softpipe_tex_tile_cache *tc)
/*assert(tc->entries[pos].x < 0);*/
}
if (tc->transfer) {
tc->pipe->tex_transfer_destroy(tc->transfer);
tc->pipe->tex_transfer_destroy(tc->pipe, tc->transfer);
}
if (tc->tex_trans) {
tc->pipe->tex_transfer_destroy(tc->tex_trans);
tc->pipe->tex_transfer_destroy(tc->pipe, tc->tex_trans);
}

FREE( tc );
@@ -135,7 +135,7 @@ sp_tex_tile_cache_set_texture(struct softpipe_tex_tile_cache *tc,
tc->tex_trans_map = NULL;
}

tc->pipe->tex_transfer_destroy(tc->tex_trans);
tc->pipe->tex_transfer_destroy(tc->pipe, tc->tex_trans);
tc->tex_trans = NULL;
}

@@ -230,7 +230,7 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
tc->tex_trans_map = NULL;
}

tc->pipe->tex_transfer_destroy(tc->tex_trans);
tc->pipe->tex_transfer_destroy(tc->pipe, tc->tex_trans);
tc->tex_trans = NULL;
}

@@ -251,7 +251,8 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
}

/* get tile from the transfer (view into texture) */
pipe_get_tile_rgba(tc->tex_trans,
pipe_get_tile_rgba(tc->pipe,
tc->tex_trans,
addr.bits.x * TILE_SIZE,
addr.bits.y * TILE_SIZE,
TILE_SIZE, TILE_SIZE,

+ 2
- 2
src/gallium/drivers/softpipe/sp_texture.c View File

@@ -277,7 +277,6 @@ softpipe_get_tex_transfer(struct pipe_context *pipe,
struct pipe_transfer *pt = &spt->base;
int nblocksy = util_format_get_nblocksy(texture->format, u_minify(texture->height0, level));
pipe_texture_reference(&pt->texture, texture);
pt->pipe = pipe;
pt->x = x;
pt->y = y;
pt->width = w;
@@ -311,7 +310,8 @@ softpipe_get_tex_transfer(struct pipe_context *pipe,
* softpipe_get_tex_transfer().
*/
static void
softpipe_tex_transfer_destroy(struct pipe_transfer *transfer)
softpipe_tex_transfer_destroy(struct pipe_context *pipe,
struct pipe_transfer *transfer)
{
/* Effectively do the texture_update work here - if texture images
* needed post-processing to put them into hardware layout, this is

+ 10
- 9
src/gallium/drivers/softpipe/sp_tile_cache.c View File

@@ -121,7 +121,7 @@ sp_destroy_tile_cache(struct softpipe_tile_cache *tc)
/*assert(tc->entries[pos].x < 0);*/
}
if (tc->transfer) {
tc->pipe->tex_transfer_destroy(tc->transfer);
tc->pipe->tex_transfer_destroy(tc->pipe, tc->transfer);
}

FREE( tc );
@@ -146,7 +146,7 @@ sp_tile_cache_set_surface(struct softpipe_tile_cache *tc,
tc->transfer_map = NULL;
}

pipe->tex_transfer_destroy(tc->transfer);
pipe->tex_transfer_destroy(pipe, tc->transfer);
tc->transfer = NULL;
}

@@ -291,7 +291,8 @@ sp_tile_cache_flush_clear(struct softpipe_tile_cache *tc)
union tile_address addr = tile_address(x, y);

if (is_clear_flag_set(tc->clear_flags, addr)) {
pipe_put_tile_raw(pt,
pipe_put_tile_raw(tc->pipe,
pt,
x, y, TILE_SIZE, TILE_SIZE,
tc->tile.data.color32, 0/*STRIDE*/);

@@ -325,14 +326,14 @@ sp_flush_tile_cache(struct softpipe_tile_cache *tc)
struct softpipe_cached_tile *tile = tc->entries + pos;
if (!tile->addr.bits.invalid) {
if (tc->depth_stencil) {
pipe_put_tile_raw(pt,
pipe_put_tile_raw(tc->pipe, pt,
tile->addr.bits.x * TILE_SIZE,
tile->addr.bits.y * TILE_SIZE,
TILE_SIZE, TILE_SIZE,
tile->data.depth32, 0/*STRIDE*/);
}
else {
pipe_put_tile_rgba(pt,
pipe_put_tile_rgba(tc->pipe, pt,
tile->addr.bits.x * TILE_SIZE,
tile->addr.bits.y * TILE_SIZE,
TILE_SIZE, TILE_SIZE,
@@ -375,14 +376,14 @@ sp_find_cached_tile(struct softpipe_tile_cache *tc,
if (tile->addr.bits.invalid == 0) {
/* put dirty tile back in framebuffer */
if (tc->depth_stencil) {
pipe_put_tile_raw(pt,
pipe_put_tile_raw(tc->pipe, pt,
tile->addr.bits.x * TILE_SIZE,
tile->addr.bits.y * TILE_SIZE,
TILE_SIZE, TILE_SIZE,
tile->data.depth32, 0/*STRIDE*/);
}
else {
pipe_put_tile_rgba(pt,
pipe_put_tile_rgba(tc->pipe, pt,
tile->addr.bits.x * TILE_SIZE,
tile->addr.bits.y * TILE_SIZE,
TILE_SIZE, TILE_SIZE,
@@ -405,14 +406,14 @@ sp_find_cached_tile(struct softpipe_tile_cache *tc,
else {
/* get new tile data from transfer */
if (tc->depth_stencil) {
pipe_get_tile_raw(pt,
pipe_get_tile_raw(tc->pipe, pt,
tile->addr.bits.x * TILE_SIZE,
tile->addr.bits.y * TILE_SIZE,
TILE_SIZE, TILE_SIZE,
tile->data.depth32, 0/*STRIDE*/);
}
else {
pipe_get_tile_rgba(pt,
pipe_get_tile_rgba(tc->pipe, pt,
tile->addr.bits.x * TILE_SIZE,
tile->addr.bits.y * TILE_SIZE,
TILE_SIZE, TILE_SIZE,

+ 3
- 2
src/gallium/drivers/svga/svga_screen_texture.c View File

@@ -899,10 +899,11 @@ svga_transfer_unmap(struct pipe_context *pipe,


static void
svga_tex_transfer_destroy(struct pipe_transfer *transfer)
svga_tex_transfer_destroy(struct pipe_context *pipe,
struct pipe_transfer *transfer)
{
struct svga_texture *tex = svga_texture(transfer->texture);
struct svga_screen *ss = svga_screen(transfer->texture->screen);
struct svga_screen *ss = svga_screen(pipe->screen);
struct svga_winsys_screen *sws = ss->sws;
struct svga_transfer *st = svga_transfer(transfer);


+ 5
- 4
src/gallium/drivers/trace/tr_context.c View File

@@ -1336,11 +1336,12 @@ trace_context_get_tex_transfer(struct pipe_context *_context,


static void
trace_context_tex_transfer_destroy(struct pipe_transfer *_transfer)
trace_context_tex_transfer_destroy(struct pipe_context *_context,
struct pipe_transfer *_transfer)
{
struct trace_context *tr_ctx = trace_context(_transfer->pipe);
struct trace_context *tr_context = trace_context(_context);
struct trace_transfer *tr_trans = trace_transfer(_transfer);
struct pipe_context *context = tr_ctx->pipe;
struct pipe_context *context = tr_context->pipe;
struct pipe_transfer *transfer = tr_trans->transfer;

trace_dump_call_begin("pipe_context", "tex_transfer_destroy");
@@ -1350,7 +1351,7 @@ trace_context_tex_transfer_destroy(struct pipe_transfer *_transfer)

trace_dump_call_end();

trace_transfer_destroy(tr_trans);
trace_transfer_destroy(tr_context, tr_trans);
}



+ 1
- 1
src/gallium/drivers/trace/tr_rbug.c View File

@@ -257,7 +257,7 @@ trace_rbug_texture_read(struct trace_rbug *tr_rbug, struct rbug_header *header,
NULL);

context->transfer_unmap(context, t);
context->tex_transfer_destroy(t);
context->tex_transfer_destroy(context, t);

pipe_mutex_unlock(tr_scr->list_mutex);


+ 9
- 7
src/gallium/drivers/trace/tr_texture.c View File

@@ -143,10 +143,10 @@ trace_transfer_create(struct trace_context *tr_ctx,

memcpy(&tr_trans->base, transfer, sizeof(struct pipe_transfer));

tr_trans->base.pipe = &tr_ctx->base;
tr_trans->base.texture = NULL;
pipe_texture_reference(&tr_trans->base.texture, &tr_tex->base);
tr_trans->transfer = transfer;

pipe_texture_reference(&tr_trans->base.texture, &tr_tex->base);
assert(tr_trans->base.texture == &tr_tex->base);

trace_screen_add_to_list(tr_scr, transfers, tr_trans);
@@ -154,21 +154,23 @@ trace_transfer_create(struct trace_context *tr_ctx,
return &tr_trans->base;

error:
tr_ctx->pipe->tex_transfer_destroy(transfer);
tr_ctx->pipe->tex_transfer_destroy(tr_ctx->pipe, transfer);
return NULL;
}


void
trace_transfer_destroy(struct trace_transfer *tr_trans)
trace_transfer_destroy(struct trace_context *tr_context,
struct trace_transfer *tr_trans)
{
struct trace_screen *tr_scr = trace_screen(tr_trans->base.texture->screen);
struct pipe_context *context = tr_trans->transfer->pipe;
struct trace_screen *tr_scr = trace_screen(tr_context->base.screen);
struct pipe_context *context = tr_context->pipe;
struct pipe_transfer *transfer = tr_trans->transfer;

trace_screen_remove_from_list(tr_scr, transfers, tr_trans);

pipe_texture_reference(&tr_trans->base.texture, NULL);
context->tex_transfer_destroy(tr_trans->transfer);
context->tex_transfer_destroy(context, transfer);
FREE(tr_trans);
}


+ 3
- 1
src/gallium/drivers/trace/tr_texture.h View File

@@ -61,6 +61,7 @@ struct trace_transfer
struct pipe_transfer base;

struct pipe_transfer *transfer;
struct pipe_context *pipe;

struct tr_list list;

@@ -118,7 +119,8 @@ trace_transfer_create(struct trace_context *tr_ctx,
struct pipe_transfer *transfer);

void
trace_transfer_destroy(struct trace_transfer *tr_trans);
trace_transfer_destroy(struct trace_context *tr_ctx,
struct trace_transfer *tr_trans);


#endif /* TR_TEXTURE_H_ */

+ 2
- 1
src/gallium/include/pipe/p_context.h View File

@@ -323,7 +323,8 @@ struct pipe_context {
unsigned x, unsigned y,
unsigned w, unsigned h);

void (*tex_transfer_destroy)(struct pipe_transfer *);
void (*tex_transfer_destroy)(struct pipe_context *,
struct pipe_transfer *);
void *(*transfer_map)( struct pipe_context *,
struct pipe_transfer *transfer );

+ 0
- 2
src/gallium/include/pipe/p_state.h View File

@@ -304,8 +304,6 @@ struct pipe_surface
*/
struct pipe_transfer
{
struct pipe_context *pipe;

unsigned x; /**< x offset from start of texture image */
unsigned y; /**< y offset from start of texture image */
unsigned width; /**< logical width in pixels */

+ 1
- 1
src/gallium/state_trackers/vega/api_filters.c View File

@@ -85,7 +85,7 @@ static INLINE struct pipe_texture *create_texture_1d(struct vg_context *ctx,
void *map = pipe->transfer_map(pipe, transfer);
memcpy(map, color_data, sizeof(VGint)*color_data_len);
pipe->transfer_unmap(pipe, transfer);
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}

return tex;

+ 2
- 2
src/gallium/state_trackers/vega/api_images.c View File

@@ -450,14 +450,14 @@ void vgReadPixels(void * data, VGint dataStride,
#if 0
debug_printf("%d-%d == %d\n", sy, height, y);
#endif
pipe_get_tile_rgba(transfer, sx, y, width, 1, df);
pipe_get_tile_rgba(pipe, transfer, sx, y, width, 1, df);
y += yStep;
_vega_pack_rgba_span_float(ctx, width, temp, dataFormat,
dst + yoffset + xoffset);
dst += dataStride;
}

pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}
}


+ 4
- 4
src/gallium/state_trackers/vega/image.c View File

@@ -418,11 +418,11 @@ void image_sub_data(struct vg_image *image,
src += (dataStride * yoffset);
for (i = 0; i < height; i++) {
_vega_unpack_float_span_rgba(ctx, width, xoffset, src, dataFormat, temp);
pipe_put_tile_rgba(transfer, x+image->x, y+image->y, width, 1, df);
pipe_put_tile_rgba(pipe, transfer, x+image->x, y+image->y, width, 1, df);
y += yStep;
src += dataStride;
}
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}
}

@@ -454,13 +454,13 @@ void image_get_sub_data(struct vg_image * image,
#if 0
debug_printf("%d-%d == %d\n", sy, height, y);
#endif
pipe_get_tile_rgba(transfer, sx+image->x, y, width, 1, df);
pipe_get_tile_rgba(pipe, transfer, sx+image->x, y, width, 1, df);
y += yStep;
_vega_pack_rgba_span_float(ctx, width, temp, dataFormat, dst);
dst += dataStride;
}

pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}
}


+ 1
- 1
src/gallium/state_trackers/vega/paint.c View File

@@ -167,7 +167,7 @@ static INLINE struct pipe_texture *create_gradient_texture(struct vg_paint *p)
void *map = pipe->transfer_map(pipe, transfer);
memcpy(map, p->gradient.color_data, sizeof(VGint)*1024);
pipe->transfer_unmap(pipe, transfer);
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}

return tex;

+ 1
- 1
src/mesa/state_tracker/st_atom_pixeltransfer.c View File

@@ -172,7 +172,7 @@ load_color_map_texture(GLcontext *ctx, struct pipe_texture *pt)
}

pipe->transfer_unmap(pipe, transfer);
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);
}



+ 7
- 7
src/mesa/state_tracker/st_cb_accum.c View File

@@ -144,7 +144,7 @@ accum_accum(struct st_context *st, GLfloat value,

buf = (GLfloat *) malloc(width * height * 4 * sizeof(GLfloat));

pipe_get_tile_rgba(color_trans, 0, 0, width, height, buf);
pipe_get_tile_rgba(pipe, color_trans, 0, 0, width, height, buf);

switch (acc_strb->format) {
case PIPE_FORMAT_R16G16B16A16_SNORM:
@@ -165,7 +165,7 @@ accum_accum(struct st_context *st, GLfloat value,
}

free(buf);
pipe->tex_transfer_destroy(color_trans);
pipe->tex_transfer_destroy(pipe, color_trans);
}


@@ -192,7 +192,7 @@ accum_load(struct st_context *st, GLfloat value,

buf = (GLfloat *) malloc(width * height * 4 * sizeof(GLfloat));

pipe_get_tile_rgba(color_trans, 0, 0, width, height, buf);
pipe_get_tile_rgba(pipe, color_trans, 0, 0, width, height, buf);

switch (acc_strb->format) {
case PIPE_FORMAT_R16G16B16A16_SNORM:
@@ -213,7 +213,7 @@ accum_load(struct st_context *st, GLfloat value,
}

free(buf);
pipe->tex_transfer_destroy(color_trans);
pipe->tex_transfer_destroy(pipe, color_trans);
}


@@ -248,7 +248,7 @@ accum_return(GLcontext *ctx, GLfloat value,
width, height);

if (usage & PIPE_TRANSFER_READ)
pipe_get_tile_rgba(color_trans, 0, 0, width, height, buf);
pipe_get_tile_rgba(pipe, color_trans, 0, 0, width, height, buf);

switch (acc_strb->format) {
case PIPE_FORMAT_R16G16B16A16_SNORM:
@@ -277,10 +277,10 @@ accum_return(GLcontext *ctx, GLfloat value,
_mesa_problem(NULL, "unexpected format in st_clear_accum_buffer()");
}

pipe_put_tile_rgba(color_trans, 0, 0, width, height, buf);
pipe_put_tile_rgba(pipe, color_trans, 0, 0, width, height, buf);

free(buf);
pipe->tex_transfer_destroy(color_trans);
pipe->tex_transfer_destroy(pipe, color_trans);
}



+ 4
- 4
src/mesa/state_tracker/st_cb_bitmap.c View File

@@ -295,7 +295,7 @@ make_bitmap_texture(GLcontext *ctx, GLsizei width, GLsizei height,

/* Release transfer */
pipe->transfer_unmap(pipe, transfer);
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);

return pt;
}
@@ -530,7 +530,7 @@ reset_cache(struct st_context *st)
cache->ymax = -1000000;

if (cache->trans) {
pipe->tex_transfer_destroy(cache->trans);
pipe->tex_transfer_destroy(pipe, cache->trans);
cache->trans = NULL;
}

@@ -616,7 +616,7 @@ st_flush_bitmap_cache(struct st_context *st)
pipe->transfer_unmap(pipe, cache->trans);
cache->buffer = NULL;

pipe->tex_transfer_destroy(cache->trans);
pipe->tex_transfer_destroy(pipe, cache->trans);
cache->trans = NULL;
}

@@ -836,7 +836,7 @@ st_destroy_bitmap(struct st_context *st)
if (cache) {
if (cache->trans) {
pipe->transfer_unmap(pipe, cache->trans);
pipe->tex_transfer_destroy(cache->trans);
pipe->tex_transfer_destroy(pipe, cache->trans);
}
pipe_texture_reference(&st->bitmap.cache->texture, NULL);
free(st->bitmap.cache);

+ 9
- 9
src/mesa/state_tracker/st_cb_drawpixels.c View File

@@ -411,7 +411,7 @@ make_texture(struct st_context *st,

/* unmap */
pipe->transfer_unmap(pipe, transfer);
pipe->tex_transfer_destroy(transfer);
pipe->tex_transfer_destroy(pipe, transfer);

assert(success);

@@ -791,7 +791,7 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y,

/* unmap the stencil buffer */
pipe->transfer_unmap(pipe, pt);
pipe->tex_transfer_destroy(pt);
pipe->tex_transfer_destroy(pipe, pt);
}


@@ -944,7 +944,7 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy,

/* unmap the stencil buffer */
pipe->transfer_unmap(pipe, ptDraw);
pipe->tex_transfer_destroy(ptDraw);
pipe->tex_transfer_destroy(pipe, ptDraw);
}


@@ -1113,21 +1113,21 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy,
/* alternate path using get/put_tile() */
GLfloat *buf = (GLfloat *) malloc(width * height * 4 * sizeof(GLfloat));

pipe_get_tile_rgba(ptRead, 0, 0, width, height, buf);
pipe_put_tile_rgba(ptTex, 0, 0, width, height, buf);
pipe_get_tile_rgba(pipe, ptRead, 0, 0, width, height, buf);
pipe_put_tile_rgba(pipe, ptTex, 0, 0, width, height, buf);

free(buf);
}
else {
/* GL_DEPTH */
GLuint *buf = (GLuint *) malloc(width * height * sizeof(GLuint));
pipe_get_tile_z(ptRead, 0, 0, width, height, buf);
pipe_put_tile_z(ptTex, 0, 0, width, height, buf);
pipe_get_tile_z(pipe, ptRead, 0, 0, width, height, buf);
pipe_put_tile_z(pipe, ptTex, 0, 0, width, height, buf);
free(buf);
}

pipe->tex_transfer_destroy(ptRead);
pipe->tex_transfer_destroy(ptTex);
pipe->tex_transfer_destroy(pipe, ptRead);
pipe->tex_transfer_destroy(pipe, ptTex);
}

/* draw textured quad */

+ 11
- 11
src/mesa/state_tracker/st_cb_readpixels.c View File

@@ -162,7 +162,7 @@ st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y,

/* unmap the stencil buffer */
pipe->transfer_unmap(pipe, pt);
pipe->tex_transfer_destroy(pt);
pipe->tex_transfer_destroy(pipe, pt);
}


@@ -254,7 +254,7 @@ st_fast_readpixels(GLcontext *ctx, struct st_renderbuffer *strb,

map = pipe->transfer_map(pipe, trans);
if (!map) {
pipe->tex_transfer_destroy(trans);
pipe->tex_transfer_destroy(pipe, trans);
return GL_FALSE;
}

@@ -317,7 +317,7 @@ st_fast_readpixels(GLcontext *ctx, struct st_renderbuffer *strb,
}

pipe->transfer_unmap(pipe, trans);
pipe->tex_transfer_destroy(trans);
pipe->tex_transfer_destroy(pipe, trans);
}

return GL_TRUE;
@@ -441,7 +441,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
GLuint ztemp[MAX_WIDTH];
GLfloat zfloat[MAX_WIDTH];
const double scale = 1.0 / ((1 << 24) - 1);
pipe_get_tile_raw(trans, 0, y, width, 1, ztemp, 0);
pipe_get_tile_raw(pipe, trans, 0, y, width, 1, ztemp, 0);
y += yStep;
for (j = 0; j < width; j++) {
zfloat[j] = (float) (scale * (ztemp[j] & 0xffffff));
@@ -456,7 +456,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
assert(format == GL_DEPTH_STENCIL_EXT);
for (i = 0; i < height; i++) {
GLuint *zshort = (GLuint *)dst;
pipe_get_tile_raw(trans, 0, y, width, 1, dst, 0);
pipe_get_tile_raw(pipe, trans, 0, y, width, 1, dst, 0);
y += yStep;
/* Reverse into 24/8 */
for (j = 0; j < width; j++) {
@@ -473,7 +473,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
GLuint ztemp[MAX_WIDTH];
GLfloat zfloat[MAX_WIDTH];
const double scale = 1.0 / ((1 << 24) - 1);
pipe_get_tile_raw(trans, 0, y, width, 1, ztemp, 0);
pipe_get_tile_raw(pipe, trans, 0, y, width, 1, ztemp, 0);
y += yStep;
for (j = 0; j < width; j++) {
zfloat[j] = (float) (scale * ((ztemp[j] >> 8) & 0xffffff));
@@ -487,7 +487,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
/* XXX: unreachable code -- should be before st_read_stencil_pixels */
assert(format == GL_DEPTH_STENCIL_EXT);
for (i = 0; i < height; i++) {
pipe_get_tile_raw(trans, 0, y, width, 1, dst, 0);
pipe_get_tile_raw(pipe, trans, 0, y, width, 1, dst, 0);
y += yStep;
dst += dstStride;
}
@@ -498,7 +498,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
GLushort ztemp[MAX_WIDTH];
GLfloat zfloat[MAX_WIDTH];
const double scale = 1.0 / 0xffff;
pipe_get_tile_raw(trans, 0, y, width, 1, ztemp, 0);
pipe_get_tile_raw(pipe, trans, 0, y, width, 1, ztemp, 0);
y += yStep;
for (j = 0; j < width; j++) {
zfloat[j] = (float) (scale * ztemp[j]);
@@ -513,7 +513,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
GLuint ztemp[MAX_WIDTH];
GLfloat zfloat[MAX_WIDTH];
const double scale = 1.0 / 0xffffffff;
pipe_get_tile_raw(trans, 0, y, width, 1, ztemp, 0);
pipe_get_tile_raw(pipe, trans, 0, y, width, 1, ztemp, 0);
y += yStep;
for (j = 0; j < width; j++) {
zfloat[j] = (float) (scale * ztemp[j]);
@@ -527,7 +527,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
/* RGBA format */
/* Do a row at a time to flip image data vertically */
for (i = 0; i < height; i++) {
pipe_get_tile_rgba(trans, 0, y, width, 1, df);
pipe_get_tile_rgba(pipe, trans, 0, y, width, 1, df);
y += yStep;
df += dfStride;
if (!dfStride) {
@@ -539,7 +539,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
}
}

pipe->tex_transfer_destroy(trans);
pipe->tex_transfer_destroy(pipe, trans);

_mesa_unmap_pbo_dest(ctx, &clippedPacking);
}

+ 6
- 6
src/mesa/state_tracker/st_cb_texture.c View File

@@ -435,7 +435,7 @@ compress_with_blit(GLcontext * ctx,
unpack); /* source data packing */

pipe->transfer_unmap(pipe, tex_xfer);
pipe->tex_transfer_destroy(tex_xfer);
pipe->tex_transfer_destroy(pipe, tex_xfer);

/* copy / compress image */
util_blit_pixels_tex(ctx->st->blit,
@@ -873,7 +873,7 @@ decompress_with_blit(GLcontext * ctx, GLenum target, GLint level,
debug_printf("%s: fallback format translation\n", __FUNCTION__);

/* get float[4] rgba row from surface */
pipe_get_tile_rgba(tex_xfer, 0, row, width, 1, rgba);
pipe_get_tile_rgba(pipe, tex_xfer, 0, row, width, 1, rgba);

_mesa_pack_rgba_span_float(ctx, width, (GLfloat (*)[4]) rgba, format,
type, dest, &ctx->Pack, transferOps);
@@ -1310,11 +1310,11 @@ fallback_copy_texsubimage(GLcontext *ctx, GLenum target, GLint level,
/* To avoid a large temp memory allocation, do copy row by row */
for (row = 0; row < height; row++, srcY += yStep) {
uint data[MAX_WIDTH];
pipe_get_tile_z(src_trans, 0, srcY, width, 1, data);
pipe_get_tile_z(pipe, src_trans, 0, srcY, width, 1, data);
if (scaleOrBias) {
_mesa_scale_and_bias_depth_uint(ctx, width, data);
}
pipe_put_tile_z(stImage->transfer, 0, row, width, 1, data);
pipe_put_tile_z(pipe, stImage->transfer, 0, row, width, 1, data);
}
}
else {
@@ -1336,7 +1336,7 @@ fallback_copy_texsubimage(GLcontext *ctx, GLenum target, GLint level,
/* XXX this usually involves a lot of int/float conversion.
* try to avoid that someday.
*/
pipe_get_tile_rgba(src_trans, 0, 0, width, height, tempSrc);
pipe_get_tile_rgba(pipe, src_trans, 0, 0, width, height, tempSrc);

/* Store into texture memory.
* Note that this does some special things such as pixel transfer
@@ -1364,7 +1364,7 @@ fallback_copy_texsubimage(GLcontext *ctx, GLenum target, GLint level,
}

st_texture_image_unmap(ctx->st, stImage);
pipe->tex_transfer_destroy(src_trans);
pipe->tex_transfer_destroy(pipe, src_trans);
}



+ 2
- 2
src/mesa/state_tracker/st_gen_mipmap.c View File

@@ -163,8 +163,8 @@ fallback_generate_mipmap(GLcontext *ctx, GLenum target,
pipe->transfer_unmap(pipe, srcTrans);
pipe->transfer_unmap(pipe, dstTrans);

pipe->tex_transfer_destroy(srcTrans);
pipe->tex_transfer_destroy(dstTrans);
pipe->tex_transfer_destroy(pipe, srcTrans);
pipe->tex_transfer_destroy(pipe, dstTrans);
}
}


+ 2
- 2
src/mesa/state_tracker/st_texture.c View File

@@ -217,7 +217,7 @@ st_texture_image_unmap(struct st_context *st,

pipe->transfer_unmap(pipe, stImage->transfer);

pipe->tex_transfer_destroy(stImage->transfer);
pipe->tex_transfer_destroy(pipe, stImage->transfer);
}


@@ -284,7 +284,7 @@ st_texture_image_data(struct st_context *st,
u_minify(dst->width0, level),
u_minify(dst->height0, level)); /* width, height */

pipe->tex_transfer_destroy(dst_transfer);
pipe->tex_transfer_destroy(pipe, dst_transfer);

srcUB += src_image_stride;
}

Loading…
Cancel
Save