Mesa (pipe-video): [g3dvl] correct layer size calculation

Christian König deathsimple at kemper.freedesktop.org
Sat Mar 26 01:04:26 UTC 2011


Module: Mesa
Branch: pipe-video
Commit: adbc9cee0ddf5a542d3e503db673af30e6d8df5b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=adbc9cee0ddf5a542d3e503db673af30e6d8df5b

Author: Christian König <deathsimple at vodafone.de>
Date:   Sat Mar 26 01:26:52 2011 +0100

[g3dvl] correct layer size calculation

---

 src/gallium/auxiliary/vl/vl_compositor.c |   15 ++++++---------
 1 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c
index d65524b..673f9bd 100644
--- a/src/gallium/auxiliary/vl/vl_compositor.c
+++ b/src/gallium/auxiliary/vl/vl_compositor.c
@@ -372,21 +372,17 @@ void vl_compositor_set_layers(struct vl_compositor *compositor,
       pipe_sampler_view_reference(&compositor->layers[i], NULL);
 }
 
-static void gen_rect_verts(unsigned pos,
-                           struct pipe_video_rect *src_rect,
+static void gen_rect_verts(struct pipe_video_rect *src_rect,
                            struct vertex2f *src_inv_size,
                            struct pipe_video_rect *dst_rect,
                            struct vertex2f *dst_inv_size,
                            struct vertex4f *vb)
 {
-   assert(pos < VL_COMPOSITOR_MAX_LAYERS + 1);
    assert(src_rect);
    assert(src_inv_size);
    assert((dst_rect && dst_inv_size) /*|| (!dst_rect && !dst_inv_size)*/);
    assert(vb);
 
-   vb += pos * 4;
-
    vb[0].x = dst_rect->x * dst_inv_size->x;
    vb[0].y = dst_rect->y * dst_inv_size->y;
    vb[0].z = src_rect->x * src_inv_size->x;
@@ -415,7 +411,7 @@ static unsigned gen_data(struct vl_compositor *c,
                          struct pipe_sampler_view **textures,
                          void **frag_shaders)
 {
-   void *vb;
+   struct vertex4f *vb;
    struct pipe_transfer *buf_transfer;
    unsigned num_rects = 0;
    unsigned i;
@@ -435,11 +431,12 @@ static unsigned gen_data(struct vl_compositor *c,
 
    {
       struct vertex2f src_inv_size = { 1.0f / src_surface->texture->width0, 1.0f / src_surface->texture->height0};
-      gen_rect_verts(num_rects, src_rect, &src_inv_size, dst_rect, &c->fb_inv_size, vb);
+      gen_rect_verts(src_rect, &src_inv_size, dst_rect, &c->fb_inv_size, vb);
       textures[num_rects] = src_surface;
       /* XXX: Hack, sort of */
       frag_shaders[num_rects] = c->fragment_shader.ycbcr_2_rgb;
       ++num_rects;
+      vb += 4;
    }
 
    for (i = 0; c->dirty_layers > 0; i++) {
@@ -447,12 +444,12 @@ static unsigned gen_data(struct vl_compositor *c,
 
       if (c->dirty_layers & (1 << i)) {
          struct vertex2f layer_inv_size = {1.0f / c->layers[i]->texture->width0, 1.0f / c->layers[i]->texture->height0};
-         gen_rect_verts(num_rects, &c->layer_src_rects[i], &layer_inv_size,
-                        &c->layer_dst_rects[i], &c->fb_inv_size, vb);
+         gen_rect_verts(&c->layer_src_rects[i], &layer_inv_size, &c->layer_dst_rects[i], &layer_inv_size, vb);
          textures[num_rects] = c->layers[i];
          /* XXX: Hack */
          frag_shaders[num_rects] = c->fragment_shader.rgb_2_rgb;
          ++num_rects;
+         vb += 4;
          c->dirty_layers &= ~(1 << i);
       }
    }




More information about the mesa-commit mailing list