소스 검색

r300g: fix texture transfers

The regression has first shown up after this state tracker change:
b0427bedde.

FDO bug #28082.
undefined
Marek Olšák 15 년 전
부모
커밋
60a0535101
3개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 1
    1
      src/gallium/drivers/r300/r300_texture.c
  2. 6
    0
      src/gallium/drivers/r300/r300_transfer.c
  3. 1
    1
      src/gallium/winsys/radeon/drm/radeon_r300.c

+ 1
- 1
src/gallium/drivers/r300/r300_texture.c 파일 보기

@@ -960,7 +960,7 @@ struct pipe_resource* r300_texture_create(struct pipe_screen* screen,
util_format_short_name(base->format));

tex->buffer = rws->buffer_create(rws, 2048,
PIPE_BIND_SAMPLER_VIEW, /* XXX */
base->bind,
tex->size);
rws->buffer_set_tiling(rws, tex->buffer,
tex->pitch[0],

+ 6
- 0
src/gallium/drivers/r300/r300_transfer.c 파일 보기

@@ -127,6 +127,12 @@ r300_texture_get_transfer(struct pipe_context *ctx,
struct r300_transfer *trans;
struct pipe_resource base;

/* XXX Why aren't flushes taken care of by winsys automatically?
* Winsys seems to sometimes return a cached buffer instead of
* a mapped hardware buffer if this flush is commented out. */
if (ctx->is_resource_referenced(ctx, texture, sr.face, sr.level))
ctx->flush(ctx, PIPE_FLUSH_RENDER_CACHE, NULL);

trans = CALLOC_STRUCT(r300_transfer);
if (trans) {
/* Initialize the transfer object. */

+ 1
- 1
src/gallium/winsys/radeon/drm/radeon_r300.c 파일 보기

@@ -86,7 +86,7 @@ static void *radeon_r300_winsys_buffer_map(struct r300_winsys_screen *ws,
unsigned usage)
{
struct pb_buffer *_buf = radeon_pb_buffer(buf);
return pb_map(_buf, usage);
}


Loading…
취소
저장