mesa: remove no longer needed _mesa_is_bufferobj function

All buffers have Name != 0.

Note that there is no longer the pointer dereference to get Name,
so it's faster.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466>
This commit is contained in:
Marek Olšák 2020-03-21 23:56:07 -04:00
parent 58fab9a6fe
commit 10beee8a77
40 changed files with 123 additions and 134 deletions

View file

@ -211,7 +211,7 @@ do_blit_bitmap( struct gl_context *ctx,
irb = intel_renderbuffer(fb->_ColorDrawBuffers[0]); irb = intel_renderbuffer(fb->_ColorDrawBuffers[0]);
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
bitmap = map_pbo(ctx, width, height, unpack, bitmap); bitmap = map_pbo(ctx, width, height, unpack, bitmap);
if (bitmap == NULL) if (bitmap == NULL)
return true; /* even though this is an error, we're done */ return true; /* even though this is an error, we're done */
@ -310,7 +310,7 @@ out:
if (unlikely(INTEL_DEBUG & DEBUG_SYNC)) if (unlikely(INTEL_DEBUG & DEBUG_SYNC))
intel_batchbuffer_flush(intel); intel_batchbuffer_flush(intel);
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
/* done with PBO so unmap it now */ /* done with PBO so unmap it now */
ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL);
} }

View file

@ -84,7 +84,7 @@ do_blit_readpixels(struct gl_context * ctx,
DBG("%s\n", __func__); DBG("%s\n", __func__);
assert(_mesa_is_bufferobj(pack->BufferObj)); assert(pack->BufferObj);
struct gl_renderbuffer *rb = ctx->ReadBuffer->_ColorReadBuffer; struct gl_renderbuffer *rb = ctx->ReadBuffer->_ColorReadBuffer;
struct intel_renderbuffer *irb = intel_renderbuffer(rb); struct intel_renderbuffer *irb = intel_renderbuffer(rb);
@ -166,7 +166,7 @@ intelReadPixels(struct gl_context * ctx,
DBG("%s\n", __func__); DBG("%s\n", __func__);
if (_mesa_is_bufferobj(pack->BufferObj)) { if (pack->BufferObj) {
/* Using PBOs, so try the BLT based path. */ /* Using PBOs, so try the BLT based path. */
if (do_blit_readpixels(ctx, x, y, width, height, format, type, pack, if (do_blit_readpixels(ctx, x, y, width, height, format, type, pack,
pixels)) { pixels)) {

View file

@ -115,7 +115,7 @@ try_pbo_upload(struct gl_context *ctx,
GLuint src_offset; GLuint src_offset;
drm_intel_bo *src_buffer; drm_intel_bo *src_buffer;
if (!_mesa_is_bufferobj(unpack->BufferObj)) if (!unpack->BufferObj)
return false; return false;
DBG("trying pbo upload\n"); DBG("trying pbo upload\n");

View file

@ -857,7 +857,7 @@ blorp_get_client_bo(struct brw_context *brw,
*row_stride_out = stride; *row_stride_out = stride;
*image_stride_out = _mesa_image_image_stride(packing, w, h, format, type); *image_stride_out = _mesa_image_image_stride(packing, w, h, format, type);
if (_mesa_is_bufferobj(packing->BufferObj)) { if (packing->BufferObj) {
const uint32_t offset = first_pixel + (intptr_t)pixels; const uint32_t offset = first_pixel + (intptr_t)pixels;
if (!read_only && ((offset % cpp) || (stride % cpp))) { if (!read_only && ((offset % cpp) || (stride % cpp))) {
perf_debug("Bad PBO alignment; fallback to CPU mapping\n"); perf_debug("Bad PBO alignment; fallback to CPU mapping\n");
@ -1070,7 +1070,7 @@ brw_blorp_download_miptree(struct brw_context *brw,
} }
/* This pass only works for PBOs */ /* This pass only works for PBOs */
assert(_mesa_is_bufferobj(packing->BufferObj)); assert(packing->BufferObj);
uint32_t dst_offset, dst_row_stride, dst_image_stride; uint32_t dst_offset, dst_row_stride, dst_image_stride;
struct brw_bo *dst_bo = struct brw_bo *dst_bo =

View file

@ -493,7 +493,7 @@ brw_prepare_vertices(struct brw_context *brw)
_mesa_draw_buffer_binding(vao, ffs(vbomask) - 1); _mesa_draw_buffer_binding(vao, ffs(vbomask) - 1);
const GLsizei stride = glbinding->Stride; const GLsizei stride = glbinding->Stride;
assert(_mesa_is_bufferobj(glbinding->BufferObj)); assert(glbinding->BufferObj);
/* Accumulate the range of a single vertex, start with inverted range */ /* Accumulate the range of a single vertex, start with inverted range */
uint32_t vertex_range_start = ~(uint32_t)0; uint32_t vertex_range_start = ~(uint32_t)0;
@ -581,7 +581,7 @@ brw_prepare_vertices(struct brw_context *brw)
_mesa_draw_buffer_binding(vao, ffs(usermask) - 1); _mesa_draw_buffer_binding(vao, ffs(usermask) - 1);
const GLsizei stride = glbinding->Stride; const GLsizei stride = glbinding->Stride;
assert(!_mesa_is_bufferobj(glbinding->BufferObj)); assert(!glbinding->BufferObj);
assert(brw->vb.index_bounds_valid); assert(brw->vb.index_bounds_valid);
/* Accumulate the range of a single vertex, start with inverted range */ /* Accumulate the range of a single vertex, start with inverted range */
@ -727,7 +727,7 @@ brw_upload_indices(struct brw_context *brw)
/* Turn into a proper VBO: /* Turn into a proper VBO:
*/ */
if (!_mesa_is_bufferobj(bufferobj)) { if (!bufferobj) {
/* Get new bufferobj, offset: /* Get new bufferobj, offset:
*/ */
brw_upload_data(&brw->upload, index_buffer->ptr, ib_size, ib_type_size, brw_upload_data(&brw->upload, index_buffer->ptr, ib_size, ib_type_size,

View file

@ -208,7 +208,7 @@ do_blit_bitmap( struct gl_context *ctx,
irb = intel_renderbuffer(fb->_ColorDrawBuffers[0]); irb = intel_renderbuffer(fb->_ColorDrawBuffers[0]);
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
bitmap = map_pbo(ctx, width, height, unpack, bitmap); bitmap = map_pbo(ctx, width, height, unpack, bitmap);
if (bitmap == NULL) if (bitmap == NULL)
return true; /* even though this is an error, we're done */ return true; /* even though this is an error, we're done */
@ -312,7 +312,7 @@ out:
if (unlikely(INTEL_DEBUG & DEBUG_SYNC)) if (unlikely(INTEL_DEBUG & DEBUG_SYNC))
intel_batchbuffer_flush(brw); intel_batchbuffer_flush(brw);
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
/* done with PBO so unmap it now */ /* done with PBO so unmap it now */
ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL);
} }

View file

@ -164,7 +164,7 @@ intelDrawPixels(struct gl_context * ctx,
} }
if (brw->screen->devinfo.gen < 6 && if (brw->screen->devinfo.gen < 6 &&
_mesa_is_bufferobj(unpack->BufferObj)) { unpack->BufferObj) {
if (do_blit_drawpixels(ctx, x, y, width, height, format, type, unpack, if (do_blit_drawpixels(ctx, x, y, width, height, format, type, unpack,
pixels)) { pixels)) {
return; return;

View file

@ -95,7 +95,7 @@ intel_readpixels_tiled_memcpy(struct gl_context * ctx,
if (!devinfo->has_llc || if (!devinfo->has_llc ||
!(type == GL_UNSIGNED_BYTE || type == GL_UNSIGNED_INT_8_8_8_8_REV) || !(type == GL_UNSIGNED_BYTE || type == GL_UNSIGNED_INT_8_8_8_8_REV) ||
pixels == NULL || pixels == NULL ||
_mesa_is_bufferobj(pack->BufferObj) || pack->BufferObj ||
pack->Alignment > 4 || pack->Alignment > 4 ||
pack->SkipPixels > 0 || pack->SkipPixels > 0 ||
pack->SkipRows > 0 || pack->SkipRows > 0 ||
@ -272,7 +272,7 @@ intelReadPixels(struct gl_context * ctx,
intel_prepare_render(brw); intel_prepare_render(brw);
brw->front_buffer_dirty = dirty; brw->front_buffer_dirty = dirty;
if (_mesa_is_bufferobj(pack->BufferObj)) { if (pack->BufferObj) {
if (intel_readpixels_blorp(ctx, x, y, width, height, if (intel_readpixels_blorp(ctx, x, y, width, height,
format, type, pixels, pack)) format, type, pixels, pack))
return; return;

View file

@ -208,7 +208,7 @@ intel_texsubimage_tiled_memcpy(struct gl_context * ctx,
!(texImage->TexObject->Target == GL_TEXTURE_2D || !(texImage->TexObject->Target == GL_TEXTURE_2D ||
texImage->TexObject->Target == GL_TEXTURE_RECTANGLE) || texImage->TexObject->Target == GL_TEXTURE_RECTANGLE) ||
pixels == NULL || pixels == NULL ||
_mesa_is_bufferobj(packing->BufferObj) || packing->BufferObj ||
packing->Alignment > 4 || packing->Alignment > 4 ||
packing->SkipPixels > 0 || packing->SkipPixels > 0 ||
packing->SkipRows > 0 || packing->SkipRows > 0 ||
@ -322,13 +322,13 @@ intel_upload_tex(struct gl_context * ctx,
bool ok; bool ok;
/* Check that there is actually data to store. */ /* Check that there is actually data to store. */
if (pixels == NULL && !_mesa_is_bufferobj(packing->BufferObj)) if (pixels == NULL && !packing->BufferObj)
return; return;
bool tex_busy = mt && bool tex_busy = mt &&
(brw_batch_references(&brw->batch, mt->bo) || brw_bo_busy(mt->bo)); (brw_batch_references(&brw->batch, mt->bo) || brw_bo_busy(mt->bo));
if (_mesa_is_bufferobj(packing->BufferObj) || tex_busy || if (packing->BufferObj || tex_busy ||
mt->aux_usage == ISL_AUX_USAGE_CCS_E) { mt->aux_usage == ISL_AUX_USAGE_CCS_E) {
ok = intel_texsubimage_blorp(brw, dims, texImage, ok = intel_texsubimage_blorp(brw, dims, texImage,
xoffset, yoffset, zoffset, xoffset, yoffset, zoffset,
@ -756,7 +756,7 @@ intel_gettexsubimage_tiled_memcpy(struct gl_context *ctx,
!(texImage->TexObject->Target == GL_TEXTURE_2D || !(texImage->TexObject->Target == GL_TEXTURE_2D ||
texImage->TexObject->Target == GL_TEXTURE_RECTANGLE) || texImage->TexObject->Target == GL_TEXTURE_RECTANGLE) ||
pixels == NULL || pixels == NULL ||
_mesa_is_bufferobj(packing->BufferObj) || packing->BufferObj ||
packing->Alignment > 4 || packing->Alignment > 4 ||
packing->SkipPixels > 0 || packing->SkipPixels > 0 ||
packing->SkipRows > 0 || packing->SkipRows > 0 ||
@ -867,7 +867,7 @@ intel_get_tex_sub_image(struct gl_context *ctx,
DBG("%s\n", __func__); DBG("%s\n", __func__);
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
if (intel_gettexsubimage_blorp(brw, texImage, if (intel_gettexsubimage_blorp(brw, texImage,
xoffset, yoffset, zoffset, xoffset, yoffset, zoffset,
width, height, depth, format, type, width, height, depth, format, type,

View file

@ -35,10 +35,10 @@ struct nouveau_bufferobj {
#define to_nouveau_bufferobj(x) ((struct nouveau_bufferobj *)(x)) #define to_nouveau_bufferobj(x) ((struct nouveau_bufferobj *)(x))
#define nouveau_bufferobj_hw(x) \ #define nouveau_bufferobj_hw(x) \
(_mesa_is_bufferobj(x) ? to_nouveau_bufferobj(x)->bo : NULL) (x ? to_nouveau_bufferobj(x)->bo : NULL)
#define nouveau_bufferobj_sys(x) \ #define nouveau_bufferobj_sys(x) \
(_mesa_is_bufferobj(x) ? to_nouveau_bufferobj(x)->sys : NULL) (x ? to_nouveau_bufferobj(x)->sys : NULL)
void void
nouveau_bufferobj_functions_init(struct dd_function_table *functions); nouveau_bufferobj_functions_init(struct dd_function_table *functions);

View file

@ -46,7 +46,7 @@ get_array_stride(struct gl_context *ctx, const struct tnl_vertex_array *a)
struct nouveau_render_state *render = to_render_state(ctx); struct nouveau_render_state *render = to_render_state(ctx);
const struct gl_vertex_buffer_binding *binding = a->BufferBinding; const struct gl_vertex_buffer_binding *binding = a->BufferBinding;
if (render->mode == VBO && !_mesa_is_bufferobj(binding->BufferObj)) { if (render->mode == VBO && !binding->BufferObj) {
const struct gl_array_attributes *attrib = a->VertexAttrib; const struct gl_array_attributes *attrib = a->VertexAttrib;
/* Pack client buffers. */ /* Pack client buffers. */
return align(attrib->Format._ElementSize, 4); return align(attrib->Format._ElementSize, 4);
@ -230,7 +230,7 @@ get_max_client_stride(struct gl_context *ctx, const struct tnl_vertex_array *arr
FOR_EACH_BOUND_ATTR(render, i, attr) { FOR_EACH_BOUND_ATTR(render, i, attr) {
const struct tnl_vertex_array *a = &arrays[attr]; const struct tnl_vertex_array *a = &arrays[attr];
if (!_mesa_is_bufferobj(a->BufferBinding->BufferObj)) if (!a->BufferBinding->BufferObj)
s = MAX2(s, get_array_stride(ctx, a)); s = MAX2(s, get_array_stride(ctx, a));
} }

View file

@ -131,13 +131,13 @@ do_blit_readpixels(struct gl_context * ctx,
aligned_rowstride = get_texture_image_row_stride(radeon, dst_format, dst_rowstride, 0, GL_TEXTURE_2D); aligned_rowstride = get_texture_image_row_stride(radeon, dst_format, dst_rowstride, 0, GL_TEXTURE_2D);
dst_rowstride *= _mesa_get_format_bytes(dst_format); dst_rowstride *= _mesa_get_format_bytes(dst_format);
if (_mesa_is_bufferobj(pack->BufferObj) && aligned_rowstride != dst_rowstride) if (pack->BufferObj && aligned_rowstride != dst_rowstride)
return GL_FALSE; return GL_FALSE;
dst_imagesize = get_texture_image_size(dst_format, dst_imagesize = get_texture_image_size(dst_format,
aligned_rowstride, aligned_rowstride,
height, 1, 0); height, 1, 0);
if (!_mesa_is_bufferobj(pack->BufferObj)) if (!pack->BufferObj)
{ {
dst_buffer = radeon_bo_open(radeon->radeonScreen->bom, 0, dst_imagesize, 1024, RADEON_GEM_DOMAIN_GTT, 0); dst_buffer = radeon_bo_open(radeon->radeonScreen->bom, 0, dst_imagesize, 1024, RADEON_GEM_DOMAIN_GTT, 0);
dst_offset = 0; dst_offset = 0;
@ -176,8 +176,8 @@ do_blit_readpixels(struct gl_context * ctx,
height, height,
flip_y)) flip_y))
{ {
if (!_mesa_is_bufferobj(pack->BufferObj)) if (!pack->BufferObj)
{ {
radeon_bo_map(dst_buffer, 0); radeon_bo_map(dst_buffer, 0);
copy_rows(pixels, dst_rowstride, dst_buffer->ptr, copy_rows(pixels, dst_rowstride, dst_buffer->ptr,
aligned_rowstride, height, dst_rowstride); aligned_rowstride, height, dst_rowstride);
@ -188,7 +188,7 @@ do_blit_readpixels(struct gl_context * ctx,
return GL_TRUE; return GL_TRUE;
} }
if (!_mesa_is_bufferobj(pack->BufferObj)) if (!pack->BufferObj)
radeon_bo_unref(dst_buffer); radeon_bo_unref(dst_buffer);
return GL_FALSE; return GL_FALSE;

View file

@ -355,7 +355,7 @@ xmesa_DrawPixels_8R8G8B( struct gl_context *ctx,
if (swrast->NewState) if (swrast->NewState)
_swrast_validate_derived( ctx ); _swrast_validate_derived( ctx );
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
/* unpack from PBO */ /* unpack from PBO */
GLubyte *buf; GLubyte *buf;
if (!_mesa_validate_pbo_access(2, unpack, width, height, 1, if (!_mesa_validate_pbo_access(2, unpack, width, height, 1,
@ -415,7 +415,7 @@ xmesa_DrawPixels_8R8G8B( struct gl_context *ctx,
XPutImage(dpy, xrb->pixmap, gc, &ximage, 0, 0, dstX, dstY, w, h); XPutImage(dpy, xrb->pixmap, gc, &ximage, 0, 0, dstX, dstY, w, h);
} }
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL);
} }
} }
@ -487,7 +487,7 @@ xmesa_DrawPixels_5R6G5B( struct gl_context *ctx,
if (swrast->NewState) if (swrast->NewState)
_swrast_validate_derived( ctx ); _swrast_validate_derived( ctx );
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
/* unpack from PBO */ /* unpack from PBO */
GLubyte *buf; GLubyte *buf;
if (!_mesa_validate_pbo_access(2, unpack, width, height, 1, if (!_mesa_validate_pbo_access(2, unpack, width, height, 1,

View file

@ -1415,7 +1415,7 @@ attrib_src(const struct gl_vertex_array_object *vao,
&vao->BufferBinding[array->BufferBindingIndex]; &vao->BufferBinding[array->BufferBindingIndex];
const GLubyte *src = _mesa_vertex_attrib_address(array, binding); const GLubyte *src = _mesa_vertex_attrib_address(array, binding);
if (_mesa_is_bufferobj(binding->BufferObj)) { if (binding->BufferObj) {
src = ADD_POINTERS(binding->BufferObj->Mappings[MAP_INTERNAL].Pointer, src = ADD_POINTERS(binding->BufferObj->Mappings[MAP_INTERNAL].Pointer,
src); src);
} }

View file

@ -409,7 +409,7 @@ compute_vbo_offset_range(const struct gl_vertex_array_object *vao,
GLsizeiptr* min, GLsizeiptr* max) GLsizeiptr* min, GLsizeiptr* max)
{ {
/* The function is meant to work on VBO bindings */ /* The function is meant to work on VBO bindings */
assert(_mesa_is_bufferobj(binding->BufferObj)); assert(binding->BufferObj);
/* Start with an inverted range of relative offsets. */ /* Start with an inverted range of relative offsets. */
GLuint min_offset = ~(GLuint)0; GLuint min_offset = ~(GLuint)0;
@ -554,7 +554,7 @@ _mesa_update_vao_derived_arrays(struct gl_context *ctx,
struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[bindex]; struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[bindex];
/* The scan goes different for user space arrays than vbos */ /* The scan goes different for user space arrays than vbos */
if (_mesa_is_bufferobj(binding->BufferObj)) { if (binding->BufferObj) {
/* The bound arrays. */ /* The bound arrays. */
const GLbitfield bound = enabled & binding->_BoundArrays; const GLbitfield bound = enabled & binding->_BoundArrays;
@ -733,7 +733,7 @@ _mesa_update_vao_derived_arrays(struct gl_context *ctx,
} }
/* User space buffer object */ /* User space buffer object */
assert(!_mesa_is_bufferobj(binding2->BufferObj)); assert(!binding2->BufferObj);
eff_bound_arrays |= VERT_BIT(j); eff_bound_arrays |= VERT_BIT(j);
} }
@ -776,7 +776,7 @@ _mesa_update_vao_derived_arrays(struct gl_context *ctx,
assert(binding->Stride == binding2->Stride); assert(binding->Stride == binding2->Stride);
assert(binding->InstanceDivisor == binding2->InstanceDivisor); assert(binding->InstanceDivisor == binding2->InstanceDivisor);
assert(binding->BufferObj == binding2->BufferObj); assert(binding->BufferObj == binding2->BufferObj);
if (_mesa_is_bufferobj(binding->BufferObj)) { if (binding->BufferObj) {
assert(attrib->_EffRelativeOffset <= MaxRelativeOffset); assert(attrib->_EffRelativeOffset <= MaxRelativeOffset);
assert(binding->Offset + attrib->RelativeOffset == assert(binding->Offset + attrib->RelativeOffset ==
binding2->_EffOffset + attrib->_EffRelativeOffset); binding2->_EffOffset + attrib->_EffRelativeOffset);
@ -818,7 +818,7 @@ _mesa_all_varyings_in_vbos(const struct gl_vertex_array_object *vao)
&vao->BufferBinding[attrib_array->BufferBindingIndex]; &vao->BufferBinding[attrib_array->BufferBindingIndex];
/* We have already masked out vao->VertexAttribBufferMask */ /* We have already masked out vao->VertexAttribBufferMask */
assert(!_mesa_is_bufferobj(buffer_binding->BufferObj)); assert(!buffer_binding->BufferObj);
/* Bail out once we find the first non vbo with a non zero stride */ /* Bail out once we find the first non vbo with a non zero stride */
if (buffer_binding->Stride != 0) if (buffer_binding->Stride != 0)
@ -847,7 +847,7 @@ _mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao)
&vao->BufferBinding[attrib_array->BufferBindingIndex]; &vao->BufferBinding[attrib_array->BufferBindingIndex];
/* We have already masked with vao->VertexAttribBufferMask */ /* We have already masked with vao->VertexAttribBufferMask */
assert(_mesa_is_bufferobj(buffer_binding->BufferObj)); assert(buffer_binding->BufferObj);
/* Bail out once we find the first disallowed mapping */ /* Bail out once we find the first disallowed mapping */
if (_mesa_check_disallowed_mapping(buffer_binding->BufferObj)) if (_mesa_check_disallowed_mapping(buffer_binding->BufferObj))
@ -877,7 +877,7 @@ _mesa_vao_map_arrays(struct gl_context *ctx, struct gl_vertex_array_object *vao,
mask &= ~binding->_BoundArrays; mask &= ~binding->_BoundArrays;
struct gl_buffer_object *bo = binding->BufferObj; struct gl_buffer_object *bo = binding->BufferObj;
assert(_mesa_is_bufferobj(bo)); assert(bo);
if (_mesa_bufferobj_mapped(bo, MAP_INTERNAL)) if (_mesa_bufferobj_mapped(bo, MAP_INTERNAL))
continue; continue;
@ -896,7 +896,7 @@ _mesa_vao_map(struct gl_context *ctx, struct gl_vertex_array_object *vao,
struct gl_buffer_object *bo = vao->IndexBufferObj; struct gl_buffer_object *bo = vao->IndexBufferObj;
/* map the index buffer, if there is one, and not already mapped */ /* map the index buffer, if there is one, and not already mapped */
if (_mesa_is_bufferobj(bo) && !_mesa_bufferobj_mapped(bo, MAP_INTERNAL)) if (bo && !_mesa_bufferobj_mapped(bo, MAP_INTERNAL))
ctx->Driver.MapBufferRange(ctx, 0, bo->Size, access, bo, MAP_INTERNAL); ctx->Driver.MapBufferRange(ctx, 0, bo->Size, access, bo, MAP_INTERNAL);
_mesa_vao_map_arrays(ctx, vao, access); _mesa_vao_map_arrays(ctx, vao, access);
@ -919,7 +919,7 @@ _mesa_vao_unmap_arrays(struct gl_context *ctx,
mask &= ~binding->_BoundArrays; mask &= ~binding->_BoundArrays;
struct gl_buffer_object *bo = binding->BufferObj; struct gl_buffer_object *bo = binding->BufferObj;
assert(_mesa_is_bufferobj(bo)); assert(bo);
if (!_mesa_bufferobj_mapped(bo, MAP_INTERNAL)) if (!_mesa_bufferobj_mapped(bo, MAP_INTERNAL))
continue; continue;
@ -937,7 +937,7 @@ _mesa_vao_unmap(struct gl_context *ctx, struct gl_vertex_array_object *vao)
struct gl_buffer_object *bo = vao->IndexBufferObj; struct gl_buffer_object *bo = vao->IndexBufferObj;
/* unmap the index buffer, if there is one, and still mapped */ /* unmap the index buffer, if there is one, and still mapped */
if (_mesa_is_bufferobj(bo) && _mesa_bufferobj_mapped(bo, MAP_INTERNAL)) if (bo && _mesa_bufferobj_mapped(bo, MAP_INTERNAL))
ctx->Driver.UnmapBuffer(ctx, bo, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, bo, MAP_INTERNAL);
_mesa_vao_unmap_arrays(ctx, vao); _mesa_vao_unmap_arrays(ctx, vao);

View file

@ -206,7 +206,7 @@ get_buffer(struct gl_context *ctx, const char *func, GLenum target,
return NULL; return NULL;
} }
if (!_mesa_is_bufferobj(*bufObj)) { if (!*bufObj) {
_mesa_error(ctx, error, "%s(no buffer bound)", func); _mesa_error(ctx, error, "%s(no buffer bound)", func);
return NULL; return NULL;
} }

View file

@ -60,17 +60,6 @@ _mesa_check_disallowed_mapping(const struct gl_buffer_object *obj)
GL_MAP_PERSISTENT_BIT); GL_MAP_PERSISTENT_BIT);
} }
/**
* Is the given buffer object a user-created buffer object?
* Mesa uses default buffer objects in several places. Default buffers
* always have Name==0. User created buffers have Name!=0.
*/
static inline GLboolean
_mesa_is_bufferobj(const struct gl_buffer_object *obj)
{
return obj != NULL && obj->Name != 0;
}
extern void extern void
_mesa_init_buffer_objects(struct gl_context *ctx); _mesa_init_buffer_objects(struct gl_context *ctx);

View file

@ -214,7 +214,7 @@ valid_dispatch_indirect(struct gl_context *ctx, GLintptr indirect)
* DRAW_INDIRECT_BUFFER binding, or if the command would source data * DRAW_INDIRECT_BUFFER binding, or if the command would source data
* beyond the end of the buffer object." * beyond the end of the buffer object."
*/ */
if (!_mesa_is_bufferobj(ctx->DispatchIndirectBuffer)) { if (!ctx->DispatchIndirectBuffer) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"%s: no buffer bound to DISPATCH_INDIRECT_BUFFER", name); "%s: no buffer bound to DISPATCH_INDIRECT_BUFFER", name);
return GL_FALSE; return GL_FALSE;

View file

@ -1536,7 +1536,7 @@ unpack_image(struct gl_context *ctx, GLuint dimensions,
return NULL; return NULL;
} }
if (!_mesa_is_bufferobj(unpack->BufferObj)) { if (!unpack->BufferObj) {
/* no PBO */ /* no PBO */
GLvoid *image; GLvoid *image;

View file

@ -72,7 +72,7 @@ check_array_data(struct gl_context *ctx, struct gl_vertex_array_object *vao,
&vao->BufferBinding[array->BufferBindingIndex]; &vao->BufferBinding[array->BufferBindingIndex];
struct gl_buffer_object *bo = binding->BufferObj; struct gl_buffer_object *bo = binding->BufferObj;
const void *data = array->Ptr; const void *data = array->Ptr;
if (_mesa_is_bufferobj(bo)) { if (bo) {
data = ADD_POINTERS(_mesa_vertex_attrib_address(array, binding), data = ADD_POINTERS(_mesa_vertex_attrib_address(array, binding),
bo->Mappings[MAP_INTERNAL].Pointer); bo->Mappings[MAP_INTERNAL].Pointer);
} }
@ -133,7 +133,7 @@ check_draw_elements_data(struct gl_context *ctx, GLsizei count,
_mesa_vao_map(ctx, vao, GL_MAP_READ_BIT); _mesa_vao_map(ctx, vao, GL_MAP_READ_BIT);
if (_mesa_is_bufferobj(vao->IndexBufferObj)) if (vao->IndexBufferObj)
elements = elements =
ADD_POINTERS(vao->IndexBufferObj->Mappings[MAP_INTERNAL].Pointer, elements); ADD_POINTERS(vao->IndexBufferObj->Mappings[MAP_INTERNAL].Pointer, elements);
@ -257,7 +257,7 @@ print_draw_arrays(struct gl_context *ctx,
array->Format.Size, binding->Stride, array->Format.Size, binding->Stride,
array->Ptr, bufObj ? bufObj->Name : 0); array->Ptr, bufObj ? bufObj->Name : 0);
if (_mesa_is_bufferobj(bufObj)) { if (bufObj) {
GLubyte *p = bufObj->Mappings[MAP_INTERNAL].Pointer; GLubyte *p = bufObj->Mappings[MAP_INTERNAL].Pointer;
int offset = (int) (GLintptr) int offset = (int) (GLintptr)
_mesa_vertex_attrib_address(array, binding); _mesa_vertex_attrib_address(array, binding);
@ -751,7 +751,7 @@ skip_draw_elements(struct gl_context *ctx, GLsizei count,
/* Not using a VBO for indices, so avoid NULL pointer derefs later. /* Not using a VBO for indices, so avoid NULL pointer derefs later.
*/ */
if (!_mesa_is_bufferobj(ctx->Array.VAO->IndexBufferObj) && indices == NULL) if (!ctx->Array.VAO->IndexBufferObj && indices == NULL)
return true; return true;
if (skip_validated_draw(ctx)) if (skip_validated_draw(ctx))
@ -1226,7 +1226,7 @@ _mesa_validated_multidrawelements(struct gl_context *ctx, GLenum mode,
* subranges of the index buffer as one large index buffer may lead to * subranges of the index buffer as one large index buffer may lead to
* us reading unmapped memory. * us reading unmapped memory.
*/ */
if (!_mesa_is_bufferobj(ctx->Array.VAO->IndexBufferObj)) if (!ctx->Array.VAO->IndexBufferObj)
fallback = GL_TRUE; fallback = GL_TRUE;
} }
@ -1542,7 +1542,7 @@ _mesa_exec_DrawArraysIndirect(GLenum mode, const GLvoid *indirect)
* pointer passed as their <indirect> parameters." * pointer passed as their <indirect> parameters."
*/ */
if (ctx->API == API_OPENGL_COMPAT && if (ctx->API == API_OPENGL_COMPAT &&
!_mesa_is_bufferobj(ctx->DrawIndirectBuffer)) { !ctx->DrawIndirectBuffer) {
DrawArraysIndirectCommand *cmd = (DrawArraysIndirectCommand *) indirect; DrawArraysIndirectCommand *cmd = (DrawArraysIndirectCommand *) indirect;
_mesa_exec_DrawArraysInstancedBaseInstance(mode, cmd->first, cmd->count, _mesa_exec_DrawArraysInstancedBaseInstance(mode, cmd->first, cmd->count,
@ -1589,14 +1589,14 @@ _mesa_exec_DrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect
* pointer passed as their <indirect> parameters." * pointer passed as their <indirect> parameters."
*/ */
if (ctx->API == API_OPENGL_COMPAT && if (ctx->API == API_OPENGL_COMPAT &&
!_mesa_is_bufferobj(ctx->DrawIndirectBuffer)) { !ctx->DrawIndirectBuffer) {
/* /*
* Unlike regular DrawElementsInstancedBaseVertex commands, the indices * Unlike regular DrawElementsInstancedBaseVertex commands, the indices
* may not come from a client array and must come from an index buffer. * may not come from a client array and must come from an index buffer.
* If no element array buffer is bound, an INVALID_OPERATION error is * If no element array buffer is bound, an INVALID_OPERATION error is
* generated. * generated.
*/ */
if (!_mesa_is_bufferobj(ctx->Array.VAO->IndexBufferObj)) { if (!ctx->Array.VAO->IndexBufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glDrawElementsIndirect(no buffer bound " "glDrawElementsIndirect(no buffer bound "
"to GL_ELEMENT_ARRAY_BUFFER)"); "to GL_ELEMENT_ARRAY_BUFFER)");
@ -1661,7 +1661,7 @@ _mesa_exec_MultiDrawArraysIndirect(GLenum mode, const GLvoid *indirect,
* pointer passed as their <indirect> parameters." * pointer passed as their <indirect> parameters."
*/ */
if (ctx->API == API_OPENGL_COMPAT && if (ctx->API == API_OPENGL_COMPAT &&
!_mesa_is_bufferobj(ctx->DrawIndirectBuffer)) { !ctx->DrawIndirectBuffer) {
if (!_mesa_valid_draw_indirect_multi(ctx, primcount, stride, if (!_mesa_valid_draw_indirect_multi(ctx, primcount, stride,
"glMultiDrawArraysIndirect")) "glMultiDrawArraysIndirect"))
@ -1730,14 +1730,14 @@ _mesa_exec_MultiDrawElementsIndirect(GLenum mode, GLenum type,
* pointer passed as their <indirect> parameters." * pointer passed as their <indirect> parameters."
*/ */
if (ctx->API == API_OPENGL_COMPAT && if (ctx->API == API_OPENGL_COMPAT &&
!_mesa_is_bufferobj(ctx->DrawIndirectBuffer)) { !ctx->DrawIndirectBuffer) {
/* /*
* Unlike regular DrawElementsInstancedBaseVertex commands, the indices * Unlike regular DrawElementsInstancedBaseVertex commands, the indices
* may not come from a client array and must come from an index buffer. * may not come from a client array and must come from an index buffer.
* If no element array buffer is bound, an INVALID_OPERATION error is * If no element array buffer is bound, an INVALID_OPERATION error is
* generated. * generated.
*/ */
if (!_mesa_is_bufferobj(ctx->Array.VAO->IndexBufferObj)) { if (!ctx->Array.VAO->IndexBufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glMultiDrawElementsIndirect(no buffer bound " "glMultiDrawElementsIndirect(no buffer bound "
"to GL_ELEMENT_ARRAY_BUFFER)"); "to GL_ELEMENT_ARRAY_BUFFER)");

View file

@ -773,7 +773,7 @@ _mesa_validate_MultiDrawElements(struct gl_context *ctx,
/* Not using a VBO for indices, so avoid NULL pointer derefs later. /* Not using a VBO for indices, so avoid NULL pointer derefs later.
*/ */
if (!_mesa_is_bufferobj(ctx->Array.VAO->IndexBufferObj)) { if (!ctx->Array.VAO->IndexBufferObj) {
for (i = 0; i < primcount; i++) { for (i = 0; i < primcount; i++) {
if (!indices[i]) if (!indices[i])
return GL_FALSE; return GL_FALSE;
@ -1161,7 +1161,7 @@ valid_draw_indirect(struct gl_context *ctx,
return GL_FALSE; return GL_FALSE;
} }
if (!_mesa_is_bufferobj(ctx->DrawIndirectBuffer)) { if (!ctx->DrawIndirectBuffer) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"%s: no buffer bound to DRAW_INDIRECT_BUFFER", name); "%s: no buffer bound to DRAW_INDIRECT_BUFFER", name);
return GL_FALSE; return GL_FALSE;
@ -1203,7 +1203,7 @@ valid_draw_indirect_elements(struct gl_context *ctx,
* If no element array buffer is bound, an INVALID_OPERATION error is * If no element array buffer is bound, an INVALID_OPERATION error is
* generated. * generated.
*/ */
if (!_mesa_is_bufferobj(ctx->Array.VAO->IndexBufferObj)) { if (!ctx->Array.VAO->IndexBufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"%s(no buffer bound to GL_ELEMENT_ARRAY_BUFFER)", name); "%s(no buffer bound to GL_ELEMENT_ARRAY_BUFFER)", name);
return GL_FALSE; return GL_FALSE;
@ -1345,7 +1345,7 @@ valid_draw_indirect_parameters(struct gl_context *ctx,
* MultiDrawElementsIndirectCountARB if no buffer is bound to the * MultiDrawElementsIndirectCountARB if no buffer is bound to the
* PARAMETER_BUFFER_ARB binding point." * PARAMETER_BUFFER_ARB binding point."
*/ */
if (!_mesa_is_bufferobj(ctx->ParameterBuffer)) { if (!ctx->ParameterBuffer) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"%s: no buffer bound to PARAMETER_BUFFER", name); "%s: no buffer bound to PARAMETER_BUFFER", name);
return GL_FALSE; return GL_FALSE;

View file

@ -143,7 +143,7 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
GLint x = IROUND(ctx->Current.RasterPos[0]); GLint x = IROUND(ctx->Current.RasterPos[0]);
GLint y = IROUND(ctx->Current.RasterPos[1]); GLint y = IROUND(ctx->Current.RasterPos[1]);
if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { if (ctx->Unpack.BufferObj) {
/* unpack from PBO */ /* unpack from PBO */
if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height,
1, format, type, INT_MAX, pixels)) { 1, format, type, INT_MAX, pixels)) {
@ -326,7 +326,7 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
GLint x = IFLOOR(ctx->Current.RasterPos[0] + epsilon - xorig); GLint x = IFLOOR(ctx->Current.RasterPos[0] + epsilon - xorig);
GLint y = IFLOOR(ctx->Current.RasterPos[1] + epsilon - yorig); GLint y = IFLOOR(ctx->Current.RasterPos[1] + epsilon - yorig);
if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { if (ctx->Unpack.BufferObj) {
/* unpack from PBO */ /* unpack from PBO */
if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height,
1, GL_COLOR_INDEX, GL_BITMAP, 1, GL_COLOR_INDEX, GL_BITMAP,

View file

@ -53,7 +53,7 @@ buffer_object_purgeable(struct gl_context *ctx, GLuint name, GLenum option)
"glObjectPurgeable(name = 0x%x)", name); "glObjectPurgeable(name = 0x%x)", name);
return 0; return 0;
} }
if (!_mesa_is_bufferobj(bufObj)) { if (!bufObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, "glObjectPurgeable(buffer 0)" ); _mesa_error(ctx, GL_INVALID_OPERATION, "glObjectPurgeable(buffer 0)" );
return 0; return 0;
} }

View file

@ -79,7 +79,7 @@ _mesa_validate_pbo_access(GLuint dimensions,
If a PBO is bound, 'ptr' is an offset into the bound PBO. If a PBO is bound, 'ptr' is an offset into the bound PBO.
In that case 'clientMemSize' is ignored: we just use the PBO's size. In that case 'clientMemSize' is ignored: we just use the PBO's size.
*/ */
if (!_mesa_is_bufferobj(pack->BufferObj)) { if (!pack->BufferObj) {
offset = 0; offset = 0;
size = (clientMemSize == INT_MAX) ? UINTPTR_MAX : clientMemSize; size = (clientMemSize == INT_MAX) ? UINTPTR_MAX : clientMemSize;
} else { } else {
@ -151,7 +151,7 @@ _mesa_map_pbo_source(struct gl_context *ctx,
{ {
const GLubyte *buf; const GLubyte *buf;
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
/* unpack from PBO */ /* unpack from PBO */
buf = (GLubyte *) ctx->Driver.MapBufferRange(ctx, 0, buf = (GLubyte *) ctx->Driver.MapBufferRange(ctx, 0,
unpack->BufferObj->Size, unpack->BufferObj->Size,
@ -188,7 +188,7 @@ _mesa_validate_pbo_source(struct gl_context *ctx, GLuint dimensions,
if (!_mesa_validate_pbo_access(dimensions, unpack, width, height, depth, if (!_mesa_validate_pbo_access(dimensions, unpack, width, height, depth,
format, type, clientMemSize, ptr)) { format, type, clientMemSize, ptr)) {
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"%s(out of bounds PBO access)", "%s(out of bounds PBO access)",
where); where);
@ -200,7 +200,7 @@ _mesa_validate_pbo_source(struct gl_context *ctx, GLuint dimensions,
return false; return false;
} }
if (!_mesa_is_bufferobj(unpack->BufferObj)) { if (!unpack->BufferObj) {
/* non-PBO access: no further validation to be done */ /* non-PBO access: no further validation to be done */
return true; return true;
} }
@ -225,7 +225,7 @@ _mesa_validate_pbo_source_compressed(struct gl_context *ctx, GLuint dimensions,
GLsizei imageSize, const GLvoid *pixels, GLsizei imageSize, const GLvoid *pixels,
const char *where) const char *where)
{ {
if (!_mesa_is_bufferobj(unpack->BufferObj)) { if (!unpack->BufferObj) {
/* not using a PBO */ /* not using a PBO */
return true; return true;
} }
@ -284,7 +284,7 @@ _mesa_unmap_pbo_source(struct gl_context *ctx,
const struct gl_pixelstore_attrib *unpack) const struct gl_pixelstore_attrib *unpack)
{ {
assert(unpack != &ctx->Pack); /* catch pack/unpack mismatch */ assert(unpack != &ctx->Pack); /* catch pack/unpack mismatch */
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL);
} }
} }
@ -305,7 +305,7 @@ _mesa_map_pbo_dest(struct gl_context *ctx,
{ {
void *buf; void *buf;
if (_mesa_is_bufferobj(pack->BufferObj)) { if (pack->BufferObj) {
/* pack into PBO */ /* pack into PBO */
buf = (GLubyte *) ctx->Driver.MapBufferRange(ctx, 0, buf = (GLubyte *) ctx->Driver.MapBufferRange(ctx, 0,
pack->BufferObj->Size, pack->BufferObj->Size,
@ -346,7 +346,7 @@ _mesa_map_validate_pbo_dest(struct gl_context *ctx,
if (!_mesa_validate_pbo_access(dimensions, unpack, width, height, depth, if (!_mesa_validate_pbo_access(dimensions, unpack, width, height, depth,
format, type, clientMemSize, ptr)) { format, type, clientMemSize, ptr)) {
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"%s(out of bounds PBO access)", where); "%s(out of bounds PBO access)", where);
} else { } else {
@ -357,7 +357,7 @@ _mesa_map_validate_pbo_dest(struct gl_context *ctx,
return NULL; return NULL;
} }
if (!_mesa_is_bufferobj(unpack->BufferObj)) { if (!unpack->BufferObj) {
/* non-PBO access: no further validation to be done */ /* non-PBO access: no further validation to be done */
return ptr; return ptr;
} }
@ -381,7 +381,7 @@ _mesa_unmap_pbo_dest(struct gl_context *ctx,
const struct gl_pixelstore_attrib *pack) const struct gl_pixelstore_attrib *pack)
{ {
assert(pack != &ctx->Unpack); /* catch pack/unpack mismatch */ assert(pack != &ctx->Unpack); /* catch pack/unpack mismatch */
if (_mesa_is_bufferobj(pack->BufferObj)) { if (pack->BufferObj) {
ctx->Driver.UnmapBuffer(ctx, pack->BufferObj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, pack->BufferObj, MAP_INTERNAL);
} }
} }
@ -402,7 +402,7 @@ _mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions,
{ {
GLubyte *buf; GLubyte *buf;
if (!_mesa_is_bufferobj(unpack->BufferObj)) { if (!unpack->BufferObj) {
/* no PBO */ /* no PBO */
return pixels; return pixels;
} }
@ -450,7 +450,7 @@ _mesa_validate_pbo_compressed_teximage(struct gl_context *ctx,
return NULL; return NULL;
} }
if (!_mesa_is_bufferobj(packing->BufferObj)) { if (!packing->BufferObj) {
/* not using a PBO - return pointer unchanged */ /* not using a PBO - return pointer unchanged */
return pixels; return pixels;
} }
@ -478,7 +478,7 @@ void
_mesa_unmap_teximage_pbo(struct gl_context *ctx, _mesa_unmap_teximage_pbo(struct gl_context *ctx,
const struct gl_pixelstore_attrib *unpack) const struct gl_pixelstore_attrib *unpack)
{ {
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, unpack->BufferObj, MAP_INTERNAL);
} }
} }

View file

@ -158,7 +158,7 @@ validate_pbo_access(struct gl_context *ctx,
&ctx->DefaultPacking.BufferObj, NULL); &ctx->DefaultPacking.BufferObj, NULL);
if (!ok) { if (!ok) {
if (_mesa_is_bufferobj(pack->BufferObj)) { if (pack->BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"gl[Get]PixelMap*v(out of bounds PBO access)"); "gl[Get]PixelMap*v(out of bounds PBO access)");
} else { } else {
@ -199,7 +199,7 @@ _mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values )
values = (const GLfloat *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values); values = (const GLfloat *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values);
if (!values) { if (!values) {
if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { if (ctx->Unpack.BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glPixelMapfv(PBO is mapped)"); "glPixelMapfv(PBO is mapped)");
} }
@ -240,7 +240,7 @@ _mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values )
values = (const GLuint *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values); values = (const GLuint *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values);
if (!values) { if (!values) {
if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { if (ctx->Unpack.BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glPixelMapuiv(PBO is mapped)"); "glPixelMapuiv(PBO is mapped)");
} }
@ -295,7 +295,7 @@ _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values )
values = (const GLushort *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values); values = (const GLushort *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values);
if (!values) { if (!values) {
if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { if (ctx->Unpack.BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glPixelMapusv(PBO is mapped)"); "glPixelMapusv(PBO is mapped)");
} }
@ -344,7 +344,7 @@ _mesa_GetnPixelMapfvARB( GLenum map, GLsizei bufSize, GLfloat *values )
values = (GLfloat *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values); values = (GLfloat *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values);
if (!values) { if (!values) {
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glGetPixelMapfv(PBO is mapped)"); "glGetPixelMapfv(PBO is mapped)");
} }
@ -393,7 +393,7 @@ _mesa_GetnPixelMapuivARB( GLenum map, GLsizei bufSize, GLuint *values )
values = (GLuint *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values); values = (GLuint *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values);
if (!values) { if (!values) {
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glGetPixelMapuiv(PBO is mapped)"); "glGetPixelMapuiv(PBO is mapped)");
} }
@ -442,7 +442,7 @@ _mesa_GetnPixelMapusvARB( GLenum map, GLsizei bufSize, GLushort *values )
values = (GLushort *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values); values = (GLushort *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values);
if (!values) { if (!values) {
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glGetPixelMapusv(PBO is mapped)"); "glGetPixelMapusv(PBO is mapped)");
} }

View file

@ -1141,7 +1141,7 @@ read_pixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,
if (!no_error) { if (!no_error) {
if (!_mesa_validate_pbo_access(2, &ctx->Pack, width, height, 1, if (!_mesa_validate_pbo_access(2, &ctx->Pack, width, height, 1,
format, type, bufSize, pixels)) { format, type, bufSize, pixels)) {
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"glReadPixels(out of bounds PBO access)"); "glReadPixels(out of bounds PBO access)");
} else { } else {
@ -1152,7 +1152,7 @@ read_pixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,
return; return;
} }
if (_mesa_is_bufferobj(ctx->Pack.BufferObj) && if (ctx->Pack.BufferObj &&
_mesa_check_disallowed_mapping(ctx->Pack.BufferObj)) { _mesa_check_disallowed_mapping(ctx->Pack.BufferObj)) {
/* buffer is mapped - that's an error */ /* buffer is mapped - that's an error */
_mesa_error(ctx, GL_INVALID_OPERATION, "glReadPixels(PBO is mapped)"); _mesa_error(ctx, GL_INVALID_OPERATION, "glReadPixels(PBO is mapped)");

View file

@ -701,7 +701,7 @@ _mesa_GetTexSubImage_sw(struct gl_context *ctx,
_mesa_get_texture_dimensions(texImage->TexObject->Target); _mesa_get_texture_dimensions(texImage->TexObject->Target);
/* map dest buffer, if PBO */ /* map dest buffer, if PBO */
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
/* Packing texture image into a PBO. /* Packing texture image into a PBO.
* Map the (potentially) VRAM-based buffer into our process space so * Map the (potentially) VRAM-based buffer into our process space so
* we can write into it with the code below. * we can write into it with the code below.
@ -760,7 +760,7 @@ _mesa_GetTexSubImage_sw(struct gl_context *ctx,
width, height, depth, format, type, pixels, texImage); width, height, depth, format, type, pixels, texImage);
} }
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
ctx->Driver.UnmapBuffer(ctx, ctx->Pack.BufferObj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, ctx->Pack.BufferObj, MAP_INTERNAL);
} }
} }
@ -788,7 +788,7 @@ get_compressed_texsubimage_sw(struct gl_context *ctx,
width, height, depth, width, height, depth,
&ctx->Pack, &store); &ctx->Pack, &store);
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
/* pack texture image into a PBO */ /* pack texture image into a PBO */
dest = (GLubyte *) dest = (GLubyte *)
ctx->Driver.MapBufferRange(ctx, 0, ctx->Pack.BufferObj->Size, ctx->Driver.MapBufferRange(ctx, 0, ctx->Pack.BufferObj->Size,
@ -835,7 +835,7 @@ get_compressed_texsubimage_sw(struct gl_context *ctx,
} }
} }
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
ctx->Driver.UnmapBuffer(ctx, ctx->Pack.BufferObj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, ctx->Pack.BufferObj, MAP_INTERNAL);
} }
} }
@ -1101,7 +1101,7 @@ pbo_error_check(struct gl_context *ctx, GLenum target,
if (!_mesa_validate_pbo_access(dimensions, &ctx->Pack, width, height, depth, if (!_mesa_validate_pbo_access(dimensions, &ctx->Pack, width, height, depth,
format, type, clientMemSize, pixels)) { format, type, clientMemSize, pixels)) {
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
"%s(out of bounds PBO access)", caller); "%s(out of bounds PBO access)", caller);
} else { } else {
@ -1112,7 +1112,7 @@ pbo_error_check(struct gl_context *ctx, GLenum target,
return true; return true;
} }
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
/* PBO should not be mapped */ /* PBO should not be mapped */
if (_mesa_check_disallowed_mapping(ctx->Pack.BufferObj)) { if (_mesa_check_disallowed_mapping(ctx->Pack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION, _mesa_error(ctx, GL_INVALID_OPERATION,
@ -1121,7 +1121,7 @@ pbo_error_check(struct gl_context *ctx, GLenum target,
} }
} }
if (!_mesa_is_bufferobj(ctx->Pack.BufferObj) && !pixels) { if (!ctx->Pack.BufferObj && !pixels) {
/* not an error, do nothing */ /* not an error, do nothing */
return true; return true;
} }
@ -1719,7 +1719,7 @@ getcompressedteximage_error_check(struct gl_context *ctx,
&ctx->Pack); &ctx->Pack);
/* Do dest buffer bounds checking */ /* Do dest buffer bounds checking */
if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { if (ctx->Pack.BufferObj) {
/* do bounds checking on PBO write */ /* do bounds checking on PBO write */
if ((GLubyte *) pixels + totalBytes > if ((GLubyte *) pixels + totalBytes >
(GLubyte *) ctx->Pack.BufferObj->Size) { (GLubyte *) ctx->Pack.BufferObj->Size) {
@ -1744,7 +1744,7 @@ getcompressedteximage_error_check(struct gl_context *ctx,
} }
} }
if (!_mesa_is_bufferobj(ctx->Pack.BufferObj) && !pixels) { if (!ctx->Pack.BufferObj && !pixels) {
/* not an error, but do nothing */ /* not an error, but do nothing */
return true; return true;
} }

View file

@ -169,7 +169,7 @@ _mesa_vertex_attrib_binding(struct gl_context *ctx,
if (array->BufferBindingIndex != bindingIndex) { if (array->BufferBindingIndex != bindingIndex) {
const GLbitfield array_bit = VERT_BIT(attribIndex); const GLbitfield array_bit = VERT_BIT(attribIndex);
if (_mesa_is_bufferobj(vao->BufferBinding[bindingIndex].BufferObj)) if (vao->BufferBinding[bindingIndex].BufferObj)
vao->VertexAttribBufferMask |= array_bit; vao->VertexAttribBufferMask |= array_bit;
else else
vao->VertexAttribBufferMask &= ~array_bit; vao->VertexAttribBufferMask &= ~array_bit;
@ -205,7 +205,7 @@ _mesa_bind_vertex_buffer(struct gl_context *ctx,
struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index]; struct gl_vertex_buffer_binding *binding = &vao->BufferBinding[index];
if (ctx->Const.VertexBufferOffsetIsInt32 && (int)offset < 0 && if (ctx->Const.VertexBufferOffsetIsInt32 && (int)offset < 0 &&
_mesa_is_bufferobj(vbo)) { vbo) {
/* The offset will be interpreted as a signed int, so make sure /* The offset will be interpreted as a signed int, so make sure
* the user supplied offset is not negative (driver limitation). * the user supplied offset is not negative (driver limitation).
*/ */
@ -227,7 +227,7 @@ _mesa_bind_vertex_buffer(struct gl_context *ctx,
binding->Offset = offset; binding->Offset = offset;
binding->Stride = stride; binding->Stride = stride;
if (!_mesa_is_bufferobj(vbo)) { if (!vbo) {
vao->VertexAttribBufferMask &= ~binding->_BoundArrays; vao->VertexAttribBufferMask &= ~binding->_BoundArrays;
} else { } else {
vao->VertexAttribBufferMask |= binding->_BoundArrays; vao->VertexAttribBufferMask |= binding->_BoundArrays;
@ -831,7 +831,7 @@ validate_array(struct gl_context *ctx, const char *func,
* 2.9.6), and the pointer argument is not NULL." * 2.9.6), and the pointer argument is not NULL."
*/ */
if (ptr != NULL && vao != ctx->Array.DefaultVAO && if (ptr != NULL && vao != ctx->Array.DefaultVAO &&
!_mesa_is_bufferobj(obj)) { !obj) {
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(non-VBO array)", func); _mesa_error(ctx, GL_INVALID_OPERATION, "%s(non-VBO array)", func);
return; return;
} }

View file

@ -45,7 +45,7 @@ static inline const GLubyte *
_mesa_vertex_attrib_address(const struct gl_array_attributes *array, _mesa_vertex_attrib_address(const struct gl_array_attributes *array,
const struct gl_vertex_buffer_binding *binding) const struct gl_vertex_buffer_binding *binding)
{ {
if (_mesa_is_bufferobj(binding->BufferObj)) if (binding->BufferObj)
return (const GLubyte *) (binding->Offset + array->RelativeOffset); return (const GLubyte *) (binding->Offset + array->RelativeOffset);
else else
return array->Ptr; return array->Ptr;

View file

@ -156,7 +156,7 @@ st_setup_arrays(struct st_context *st,
= _mesa_draw_buffer_binding(vao, i); = _mesa_draw_buffer_binding(vao, i);
const unsigned bufidx = (*num_vbuffers)++; const unsigned bufidx = (*num_vbuffers)++;
if (_mesa_is_bufferobj(binding->BufferObj)) { if (binding->BufferObj) {
/* Set the binding */ /* Set the binding */
struct st_buffer_object *stobj = st_buffer_object(binding->BufferObj); struct st_buffer_object *stobj = st_buffer_object(binding->BufferObj);

View file

@ -503,7 +503,7 @@ search_drawpixels_cache(struct st_context *st,
unpack->SkipPixels != 0 || unpack->SkipPixels != 0 ||
unpack->SkipRows != 0 || unpack->SkipRows != 0 ||
unpack->SwapBytes || unpack->SwapBytes ||
_mesa_is_bufferobj(unpack->BufferObj)) { unpack->BufferObj) {
/* we don't allow non-default pixel unpacking values */ /* we don't allow non-default pixel unpacking values */
return NULL; return NULL;
} }

View file

@ -470,7 +470,7 @@ st_ReadPixels(struct gl_context *ctx, GLint x, GLint y,
goto fallback; goto fallback;
} }
if (st->pbo.download_enabled && _mesa_is_bufferobj(pack->BufferObj)) { if (st->pbo.download_enabled && pack->BufferObj) {
if (try_pbo_readpixels(st, strb, if (try_pbo_readpixels(st, strb,
st_fb_orientation(ctx->ReadBuffer) == Y_0_TOP, st_fb_orientation(ctx->ReadBuffer) == Y_0_TOP,
x, y, width, height, x, y, width, height,

View file

@ -1487,7 +1487,7 @@ st_TexSubImage(struct gl_context *ctx, GLuint dims,
/* Try texture_subdata, which should be the fastest memcpy path. */ /* Try texture_subdata, which should be the fastest memcpy path. */
if (pixels && if (pixels &&
!_mesa_is_bufferobj(unpack->BufferObj) && !unpack->BufferObj &&
_mesa_texstore_can_use_memcpy(ctx, texImage->_BaseFormat, _mesa_texstore_can_use_memcpy(ctx, texImage->_BaseFormat,
texImage->TexFormat, format, type, texImage->TexFormat, format, type,
unpack)) { unpack)) {
@ -1557,7 +1557,7 @@ st_TexSubImage(struct gl_context *ctx, GLuint dims,
goto fallback; goto fallback;
} }
if (_mesa_is_bufferobj(unpack->BufferObj)) { if (unpack->BufferObj) {
if (try_pbo_upload(ctx, dims, texImage, format, type, dst_format, if (try_pbo_upload(ctx, dims, texImage, format, type, dst_format,
xoffset, yoffset, zoffset, xoffset, yoffset, zoffset,
width, height, depth, pixels, unpack)) width, height, depth, pixels, unpack))
@ -1777,7 +1777,7 @@ st_CompressedTexSubImage(struct gl_context *ctx, GLuint dims,
goto fallback; goto fallback;
} }
if (!_mesa_is_bufferobj(ctx->Unpack.BufferObj)) if (!ctx->Unpack.BufferObj)
goto fallback; goto fallback;
if (st_compressed_format_fallback(st, texImage->TexFormat)) if (st_compressed_format_fallback(st, texImage->TexFormat))

View file

@ -206,7 +206,7 @@ st_draw_vbo(struct gl_context *ctx,
info.min_index = min_index; info.min_index = min_index;
info.max_index = max_index; info.max_index = max_index;
if (_mesa_is_bufferobj(bufobj)) { if (bufobj) {
/* indices are in a real VBO */ /* indices are in a real VBO */
info.has_user_indices = false; info.has_user_indices = false;
info.index.resource = st_buffer_object(bufobj)->buffer; info.index.resource = st_buffer_object(bufobj)->buffer;
@ -295,7 +295,7 @@ st_indirect_draw_vbo(struct gl_context *ctx,
struct gl_buffer_object *bufobj = ib->obj; struct gl_buffer_object *bufobj = ib->obj;
/* indices are always in a real VBO */ /* indices are always in a real VBO */
assert(_mesa_is_bufferobj(bufobj)); assert(bufobj);
info.index_size = 1 << ib->index_size_shift; info.index_size = 1 << ib->index_size_shift;
info.index.resource = st_buffer_object(bufobj)->buffer; info.index.resource = st_buffer_object(bufobj)->buffer;

View file

@ -291,7 +291,7 @@ static void bind_inputs( struct gl_context *ctx,
const struct gl_array_attributes *attrib = array->VertexAttrib; const struct gl_array_attributes *attrib = array->VertexAttrib;
const void *ptr; const void *ptr;
if (_mesa_is_bufferobj(binding->BufferObj)) { if (binding->BufferObj) {
if (!binding->BufferObj->Mappings[MAP_INTERNAL].Pointer) { if (!binding->BufferObj->Mappings[MAP_INTERNAL].Pointer) {
bo[*nr_bo] = binding->BufferObj; bo[*nr_bo] = binding->BufferObj;
(*nr_bo)++; (*nr_bo)++;
@ -362,7 +362,7 @@ static void bind_indices( struct gl_context *ctx,
return; return;
} }
if (_mesa_is_bufferobj(ib->obj) && if (ib->obj &&
!_mesa_bufferobj_mapped(ib->obj, MAP_INTERNAL)) { !_mesa_bufferobj_mapped(ib->obj, MAP_INTERNAL)) {
/* if the buffer object isn't mapped yet, map it now */ /* if the buffer object isn't mapped yet, map it now */
bo[*nr_bo] = ib->obj; bo[*nr_bo] = ib->obj;

View file

@ -227,7 +227,7 @@ void t_rebase_prims( struct gl_context *ctx,
tmp_attribs[i] = *(arrays[i].VertexAttrib); tmp_attribs[i] = *(arrays[i].VertexAttrib);
tmp_arrays[i].BufferBinding = arrays[i].BufferBinding; tmp_arrays[i].BufferBinding = arrays[i].BufferBinding;
tmp_arrays[i].VertexAttrib = &tmp_attribs[i]; tmp_arrays[i].VertexAttrib = &tmp_attribs[i];
if (_mesa_is_bufferobj(arrays[i].BufferBinding->BufferObj)) if (arrays[i].BufferBinding->BufferObj)
tmp_attribs[i].RelativeOffset += tmp_attribs[i].RelativeOffset +=
min_index * arrays[i].BufferBinding->Stride; min_index * arrays[i].BufferBinding->Stride;
else else

View file

@ -455,7 +455,7 @@ replay_init(struct copy_context *copy)
copy->varying[j].size = attrib->Format._ElementSize; copy->varying[j].size = attrib->Format._ElementSize;
copy->vertex_size += attrib->Format._ElementSize; copy->vertex_size += attrib->Format._ElementSize;
if (_mesa_is_bufferobj(vbo)) { if (vbo) {
if (!_mesa_bufferobj_mapped(vbo, MAP_INTERNAL)) { if (!_mesa_bufferobj_mapped(vbo, MAP_INTERNAL)) {
ctx->Driver.MapBufferRange(ctx, 0, vbo->Size, GL_MAP_READ_BIT, vbo, ctx->Driver.MapBufferRange(ctx, 0, vbo->Size, GL_MAP_READ_BIT, vbo,
MAP_INTERNAL); MAP_INTERNAL);
@ -476,7 +476,7 @@ replay_init(struct copy_context *copy)
* caller convert non-indexed prims to indexed. Could alternately * caller convert non-indexed prims to indexed. Could alternately
* do it internally. * do it internally.
*/ */
if (_mesa_is_bufferobj(copy->ib->obj) && if (copy->ib->obj &&
!_mesa_bufferobj_mapped(copy->ib->obj, MAP_INTERNAL)) !_mesa_bufferobj_mapped(copy->ib->obj, MAP_INTERNAL))
ctx->Driver.MapBufferRange(ctx, 0, copy->ib->obj->Size, GL_MAP_READ_BIT, ctx->Driver.MapBufferRange(ctx, 0, copy->ib->obj->Size, GL_MAP_READ_BIT,
copy->ib->obj, MAP_INTERNAL); copy->ib->obj, MAP_INTERNAL);
@ -578,12 +578,12 @@ replay_finish(struct copy_context *copy)
for (i = 0; i < copy->nr_varying; i++) { for (i = 0; i < copy->nr_varying; i++) {
struct gl_buffer_object *vbo = struct gl_buffer_object *vbo =
copy->varying[i].array->BufferBinding->BufferObj; copy->varying[i].array->BufferBinding->BufferObj;
if (_mesa_is_bufferobj(vbo) && _mesa_bufferobj_mapped(vbo, MAP_INTERNAL)) if (vbo && _mesa_bufferobj_mapped(vbo, MAP_INTERNAL))
ctx->Driver.UnmapBuffer(ctx, vbo, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, vbo, MAP_INTERNAL);
} }
/* Unmap index buffer */ /* Unmap index buffer */
if (_mesa_is_bufferobj(copy->ib->obj) && if (copy->ib->obj &&
_mesa_bufferobj_mapped(copy->ib->obj, MAP_INTERNAL)) { _mesa_bufferobj_mapped(copy->ib->obj, MAP_INTERNAL)) {
ctx->Driver.UnmapBuffer(ctx, copy->ib->obj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, copy->ib->obj, MAP_INTERNAL);
} }

View file

@ -89,7 +89,7 @@ vbo_exec_bind_arrays(struct gl_context *ctx)
struct vbo_exec_context *exec = &vbo->exec; struct vbo_exec_context *exec = &vbo->exec;
GLintptr buffer_offset; GLintptr buffer_offset;
if (_mesa_is_bufferobj(exec->vtx.bufferobj)) { if (exec->vtx.bufferobj) {
assert(exec->vtx.bufferobj->Mappings[MAP_INTERNAL].Pointer); assert(exec->vtx.bufferobj->Mappings[MAP_INTERNAL].Pointer);
buffer_offset = exec->vtx.bufferobj->Mappings[MAP_INTERNAL].Offset + buffer_offset = exec->vtx.bufferobj->Mappings[MAP_INTERNAL].Offset +
exec->vtx.buffer_offset; exec->vtx.buffer_offset;
@ -137,7 +137,7 @@ vbo_exec_bind_arrays(struct gl_context *ctx)
} }
_mesa_enable_vertex_array_attribs(ctx, vao, vao_enabled); _mesa_enable_vertex_array_attribs(ctx, vao, vao_enabled);
assert(vao_enabled == vao->Enabled); assert(vao_enabled == vao->Enabled);
assert(!_mesa_is_bufferobj(exec->vtx.bufferobj) || assert(!exec->vtx.bufferobj ||
(vao_enabled & ~vao->VertexAttribBufferMask) == 0); (vao_enabled & ~vao->VertexAttribBufferMask) == 0);
_mesa_set_draw_vao(ctx, vao, _vbo_get_vao_filter(mode)); _mesa_set_draw_vao(ctx, vao, _vbo_get_vao_filter(mode));
@ -150,7 +150,7 @@ vbo_exec_bind_arrays(struct gl_context *ctx)
static void static void
vbo_exec_vtx_unmap(struct vbo_exec_context *exec) vbo_exec_vtx_unmap(struct vbo_exec_context *exec)
{ {
if (_mesa_is_bufferobj(exec->vtx.bufferobj)) { if (exec->vtx.bufferobj) {
struct gl_context *ctx = exec->ctx; struct gl_context *ctx = exec->ctx;
if (ctx->Driver.FlushMappedBufferRange && if (ctx->Driver.FlushMappedBufferRange &&
@ -211,7 +211,7 @@ vbo_exec_vtx_map(struct vbo_exec_context *exec)
MESA_MAP_NOWAIT_BIT; MESA_MAP_NOWAIT_BIT;
} }
if (!_mesa_is_bufferobj(exec->vtx.bufferobj)) if (!exec->vtx.bufferobj)
return; return;
assert(!exec->vtx.buffer_map); assert(!exec->vtx.buffer_map);
@ -295,7 +295,7 @@ vbo_exec_vtx_flush(struct vbo_exec_context *exec)
{ {
/* Only unmap if persistent mappings are unsupported. */ /* Only unmap if persistent mappings are unsupported. */
bool persistent_mapping = exec->ctx->Extensions.ARB_buffer_storage && bool persistent_mapping = exec->ctx->Extensions.ARB_buffer_storage &&
_mesa_is_bufferobj(exec->vtx.bufferobj) && exec->vtx.bufferobj &&
exec->vtx.buffer_map; exec->vtx.buffer_map;
if (0) if (0)

View file

@ -248,7 +248,7 @@ vbo_get_minmax_index(struct gl_context *ctx,
GLintptr offset = 0; GLintptr offset = 0;
indices = (char *) ib->ptr + (prim->start << ib->index_size_shift); indices = (char *) ib->ptr + (prim->start << ib->index_size_shift);
if (_mesa_is_bufferobj(ib->obj)) { if (ib->obj) {
GLsizeiptr size = MIN2(count << ib->index_size_shift, ib->obj->Size); GLsizeiptr size = MIN2(count << ib->index_size_shift, ib->obj->Size);
if (vbo_get_minmax_cached(ib->obj, 1 << ib->index_size_shift, (GLintptr) indices, if (vbo_get_minmax_cached(ib->obj, 1 << ib->index_size_shift, (GLintptr) indices,
@ -338,7 +338,7 @@ vbo_get_minmax_index(struct gl_context *ctx,
unreachable("not reached"); unreachable("not reached");
} }
if (_mesa_is_bufferobj(ib->obj)) { if (ib->obj) {
vbo_minmax_cache_store(ctx, ib->obj, 1 << ib->index_size_shift, offset, vbo_minmax_cache_store(ctx, ib->obj, 1 << ib->index_size_shift, offset,
count, *min_index, *max_index); count, *min_index, *max_index);
ctx->Driver.UnmapBuffer(ctx, ib->obj, MAP_INTERNAL); ctx->Driver.UnmapBuffer(ctx, ib->obj, MAP_INTERNAL);

View file

@ -1374,7 +1374,7 @@ _save_OBE_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
_mesa_vao_map(ctx, vao, GL_MAP_READ_BIT); _mesa_vao_map(ctx, vao, GL_MAP_READ_BIT);
if (_mesa_is_bufferobj(indexbuf)) if (indexbuf)
indices = indices =
ADD_POINTERS(indexbuf->Mappings[MAP_INTERNAL].Pointer, indices); ADD_POINTERS(indexbuf->Mappings[MAP_INTERNAL].Pointer, indices);