Преглед изворни кода

svga: loop over box.depth for ReadBack_image on each slice

piglit test ext_texture_array-gen-mipmap is fixed with this patch.

Tested with mtt piglit, glretrace, viewperf and conform. No regression.

Reviewed-by: Brian Paul <brianp@vmware.com>
tags/17.2-branchpoint
Neha Bhende пре 8 година
родитељ
комит
31fe1d10b2
1 измењених фајлова са 8 додато и 7 уклоњено
  1. 8
    7
      src/gallium/drivers/svga/svga_resource_texture.c

+ 8
- 7
src/gallium/drivers/svga/svga_resource_texture.c Прегледај датотеку

@@ -414,7 +414,7 @@ svga_texture_transfer_map_direct(struct svga_context *svga,
struct svga_texture *tex = svga_texture(texture);
struct svga_winsys_surface *surf = tex->handle;
unsigned level = st->base.level;
unsigned w, h, nblocksx, nblocksy;
unsigned w, h, nblocksx, nblocksy, i;
unsigned usage = st->base.usage;

if (need_tex_readback(transfer)) {
@@ -422,13 +422,14 @@ svga_texture_transfer_map_direct(struct svga_context *svga,

svga_surfaces_flush(svga);

if (svga_have_vgpu10(svga)) {
ret = readback_image_vgpu10(svga, surf, st->slice, level,
tex->b.b.last_level + 1);
} else {
ret = readback_image_vgpu9(svga, surf, st->slice, level);
for (i = 0; i < st->base.box.depth; i++) {
if (svga_have_vgpu10(svga)) {
ret = readback_image_vgpu10(svga, surf, st->slice + i, level,
tex->b.b.last_level + 1);
} else {
ret = readback_image_vgpu9(svga, surf, st->slice + i, level);
}
}

svga->hud.num_readbacks++;
SVGA_STATS_COUNT_INC(sws, SVGA_STATS_COUNT_TEXREADBACK);


Loading…
Откажи
Сачувај