Module: Mesa
Branch: master
Commit: 53ca4f8401f2fc552636d69f7d0dcfd7621769e3
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=53ca4f8401f2fc552636d69f7d0dcfd7621769e3

Author: Marek Olšák <[email protected]>
Date:   Sun Mar 21 04:39:33 2010 +0100

r300g: fix misaligned generated offset for ubyte vertex indices

---

 src/gallium/drivers/r300/r300_render.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_render.c 
b/src/gallium/drivers/r300/r300_render.c
index ff93a16..afd871a 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -353,6 +353,7 @@ static void r300_emit_draw_elements(struct r300_context 
*r300,
 
 static void r300_shorten_ubyte_elts(struct r300_context* r300,
                                     struct pipe_buffer** elts,
+                                    unsigned start,
                                     unsigned count)
 {
     struct pipe_screen* screen = r300->context.screen;
@@ -370,6 +371,8 @@ static void r300_shorten_ubyte_elts(struct r300_context* 
r300,
     in_map = pipe_buffer_map(screen, *elts, PIPE_BUFFER_USAGE_CPU_READ);
     out_map = pipe_buffer_map(screen, new_elts, PIPE_BUFFER_USAGE_CPU_WRITE);
 
+    in_map += start;
+
     for (i = 0; i < count; i++) {
         *out_map = (unsigned short)*in_map;
         in_map++;
@@ -407,8 +410,9 @@ void r300_draw_range_elements(struct pipe_context* pipe,
     }
 
     if (indexSize == 1) {
-        r300_shorten_ubyte_elts(r300, &indexBuffer, count);
+        r300_shorten_ubyte_elts(r300, &indexBuffer, start, count);
         indexSize = 2;
+        start = 0;
     }
 
     r300_update_derived_state(r300);

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to