mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
vbo: fix offset in minmax cache key
Instead of saving primitive offset in the minmax cache key, save the actual buffer offset which is used in the cache lookup. Fixes rendering artifact seen with GoogleEarth when run with VMware driver. v2: Per Brian's comment, initialize offset to avoid compiler warning. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Brian Paul <brianp@vmware.com> (cherry picked from commit2d93b462b4) [Andres Gomez: resolve trivial conflicts] Signed-off-by: Andres Gomez <agomez@igalia.com> Conflicts: src/mesa/vbo/vbo_minmax_index.c Squashed with: vbo: fix build errors on android incompatible pointer to integer conversion assigning to 'GLintptr' (aka 'int') from 'const char *' [-Werror,-Wint-conversion] offset = indices; ^ ~~~~~~~ Fixes:2d93b462b4("vbo: fix offset in minmax cache key") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Charmaine Lee <charmainel@vmware.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit0986f68632)
This commit is contained in:
parent
82061efd48
commit
018e602dc6
1 changed files with 5 additions and 3 deletions
|
|
@ -244,6 +244,7 @@ vbo_get_minmax_index(struct gl_context *ctx,
|
|||
const int index_size = vbo_sizeof_ib_type(ib->type);
|
||||
const char *indices;
|
||||
GLuint i;
|
||||
GLintptr offset = 0;
|
||||
|
||||
indices = (char *) ib->ptr + prim->start * index_size;
|
||||
if (_mesa_is_bufferobj(ib->obj)) {
|
||||
|
|
@ -253,7 +254,8 @@ vbo_get_minmax_index(struct gl_context *ctx,
|
|||
min_index, max_index))
|
||||
return;
|
||||
|
||||
indices = ctx->Driver.MapBufferRange(ctx, (GLintptr) indices, size,
|
||||
offset = (GLintptr) indices;
|
||||
indices = ctx->Driver.MapBufferRange(ctx, offset, size,
|
||||
GL_MAP_READ_BIT, ib->obj,
|
||||
MAP_INTERNAL);
|
||||
}
|
||||
|
|
@ -336,8 +338,8 @@ vbo_get_minmax_index(struct gl_context *ctx,
|
|||
}
|
||||
|
||||
if (_mesa_is_bufferobj(ib->obj)) {
|
||||
vbo_minmax_cache_store(ctx, ib->obj, ib->type, prim->start, count,
|
||||
*min_index, *max_index);
|
||||
vbo_minmax_cache_store(ctx, ib->obj, ib->type, offset,
|
||||
count, *min_index, *max_index);
|
||||
ctx->Driver.UnmapBuffer(ctx, ib->obj, MAP_INTERNAL);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue