Lines Matching defs:bufObj
410 struct gl_buffer_object *bufObj)
412 return bufferobj_data(ctx, target, size, NULL, memObj, offset, usage, GL_DYNAMIC_STORAGE_BIT, bufObj);
592 struct gl_buffer_object *bufObj)
600 bufObj, MAP_INTERNAL);
610 _mesa_bufferobj_unmap(ctx, bufObj, MAP_INTERNAL);
619 _mesa_bufferobj_unmap(ctx, bufObj, MAP_INTERNAL);
767 struct gl_buffer_object **bufObj = get_buffer_target(ctx, target);
769 if (!bufObj) {
774 if (!*bufObj) {
779 return *bufObj;
858 * \param bufObj The buffer object.
870 const struct gl_buffer_object *bufObj,
884 if (offset + size > bufObj->Size) {
889 (unsigned long) bufObj->Size);
893 if (bufObj->Mappings[MAP_USER].AccessFlags & GL_MAP_PERSISTENT_BIT)
897 if (bufferobj_range_mapped(bufObj, offset, size)) {
905 if (_mesa_bufferobj_mapped(bufObj, MAP_USER)) {
1037 struct gl_buffer_object *bufObj)
1039 assert(bufObj->RefCount == 0);
1040 _mesa_buffer_unmap_all_mappings(ctx, bufObj);
1041 _mesa_bufferobj_release_buffer(bufObj);
1043 vbo_delete_minmax_cache(bufObj);
1044 align_free(bufObj->Data);
1047 bufObj->RefCount = -1000;
1048 bufObj->Name = ~0;
1050 simple_mtx_destroy(&bufObj->MinMaxCacheMutex);
1051 free(bufObj->Label);
1052 free(bufObj);
1058 * Set ptr to bufObj w/ reference counting.
1065 struct gl_buffer_object *bufObj,
1092 if (bufObj) {
1094 if (shared_binding || ctx != bufObj->Ctx)
1095 p_atomic_inc(&bufObj->RefCount);
1096 else if (ctx == bufObj->Ctx)
1097 bufObj->CtxRefCount++;
1099 *ptr = bufObj;
1127 const struct gl_buffer_object *bufObj =
1131 *total = *total + bufObj->Size;
1469 struct gl_buffer_object *bufObj;
1471 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
1472 if (!bufObj || bufObj == &DummyBufferObject) {
1478 return bufObj;
1504 struct gl_buffer_object *bufObj = NULL;
1509 bufObj = _mesa_lookup_bufferobj_locked(ctx, buffers[index]);
1513 if (bufObj == &DummyBufferObject)
1514 bufObj = NULL;
1516 if (!bufObj) {
1531 return bufObj;
1555 struct gl_buffer_object *bufObj)
1558 if (_mesa_bufferobj_mapped(bufObj, i)) {
1559 _mesa_bufferobj_unmap(ctx, bufObj, i);
1560 assert(bufObj->Mappings[i].Pointer == NULL);
1561 bufObj->Mappings[i].AccessFlags = 0;
1623 struct gl_buffer_object *bufObj,
1628 _mesa_reference_buffer_object(ctx, &binding->BufferObject, bufObj);
1638 bufObj->UsageHistory |= usage;
1652 struct gl_buffer_object *bufObj;
1655 bufObj = binding->BufferObject;
1658 bufObj = _mesa_multi_bind_lookup_bufferobj(ctx, buffers, idx, caller,
1664 if (!bufObj)
1665 set_buffer_binding(ctx, binding, bufObj, -1, -1, !range, usage);
1667 set_buffer_binding(ctx, binding, bufObj, offset, size, !range, usage);
1673 struct gl_buffer_object *bufObj,
1680 if (binding->BufferObject == bufObj &&
1690 set_buffer_binding(ctx, binding, bufObj, offset, size, autoSize, usage);
1703 struct gl_buffer_object *bufObj,
1709 bufObj, offset, size, autoSize,
1724 struct gl_buffer_object *bufObj,
1730 bufObj, offset, size, autoSize,
1744 struct gl_buffer_object *bufObj, GLintptr offset,
1748 bufObj, offset, size, autoSize,
1760 struct gl_buffer_object *bufObj)
1767 _mesa_reference_buffer_object(ctx, &ctx->UniformBuffer, bufObj);
1769 if (!bufObj)
1770 bind_uniform_buffer(ctx, index, bufObj, -1, -1, GL_TRUE);
1772 bind_uniform_buffer(ctx, index, bufObj, 0, 0, GL_TRUE);
1782 struct gl_buffer_object *bufObj)
1789 _mesa_reference_buffer_object(ctx, &ctx->ShaderStorageBuffer, bufObj);
1791 if (!bufObj)
1792 bind_shader_storage_buffer(ctx, index, bufObj, -1, -1, GL_TRUE);
1794 bind_shader_storage_buffer(ctx, index, bufObj, 0, 0, GL_TRUE);
1804 struct gl_buffer_object *bufObj)
1811 _mesa_reference_buffer_object(ctx, &ctx->AtomicBuffer, bufObj);
1813 if (!bufObj)
1814 bind_atomic_buffer(ctx, index, bufObj, -1, -1, GL_TRUE);
1816 bind_atomic_buffer(ctx, index, bufObj, 0, 0, GL_TRUE);
1835 struct gl_buffer_object *bufObj =
1837 if (bufObj) {
1841 assert(bufObj->Name == ids[i] || bufObj == &DummyBufferObject);
1843 _mesa_buffer_unmap_all_mappings(ctx, bufObj);
1847 unbind(ctx, vao, j, bufObj);
1850 if (ctx->Array.ArrayBufferObj == bufObj) {
1853 if (vao->IndexBufferObj == bufObj) {
1858 if (ctx->DrawIndirectBuffer == bufObj) {
1863 if (ctx->ParameterBuffer == bufObj) {
1868 if (ctx->DispatchIndirectBuffer == bufObj) {
1873 if (ctx->CopyReadBuffer == bufObj) {
1876 if (ctx->CopyWriteBuffer == bufObj) {
1881 if (ctx->TransformFeedback.CurrentBuffer == bufObj) {
1885 if (ctx->TransformFeedback.CurrentObject->Buffers[j] == bufObj) {
1894 if (ctx->UniformBufferBindings[j].BufferObject == bufObj) {
1899 if (ctx->UniformBuffer == bufObj) {
1905 if (ctx->ShaderStorageBufferBindings[j].BufferObject == bufObj) {
1910 if (ctx->ShaderStorageBuffer == bufObj) {
1916 if (ctx->AtomicBufferBindings[j].BufferObject == bufObj) {
1921 if (ctx->AtomicBuffer == bufObj) {
1926 if (ctx->Pack.BufferObj == bufObj) {
1929 if (ctx->Unpack.BufferObj == bufObj) {
1933 if (ctx->Texture.BufferObject == bufObj) {
1937 if (ctx->ExternalVirtualMemoryBuffer == bufObj) {
1942 if (ctx->QueryBuffer == bufObj) {
1958 bufObj->DeletePending = GL_TRUE;
1963 assert(p_atomic_read(&bufObj->RefCount) >= (bufObj->Ctx ? 2 : 1));
1965 if (bufObj->Ctx == ctx) {
1966 detach_ctx_from_buffer(ctx, bufObj);
1967 } else if (bufObj->Ctx) {
1969 _mesa_set_add(ctx->Shared->ZombieBufferObjects, bufObj);
1972 _mesa_reference_buffer_object(ctx, &bufObj, NULL);
2125 struct gl_buffer_object *bufObj;
2129 bufObj = _mesa_lookup_bufferobj(ctx, id);
2131 return bufObj && bufObj != &DummyBufferObject;
2137 struct gl_buffer_object *bufObj, GLsizeiptr size,
2185 if (bufObj->Immutable || bufObj->HandleAllocated) {
2195 buffer_storage(struct gl_context *ctx, struct gl_buffer_object *bufObj,
2203 _mesa_buffer_unmap_all_mappings(ctx, bufObj);
2207 bufObj->Written = GL_TRUE;
2208 bufObj->Immutable = GL_TRUE;
2209 bufObj->MinMaxCacheDirty = true;
2213 GL_DYNAMIC_DRAW, bufObj);
2217 flags, bufObj);
2242 struct gl_buffer_object *bufObj;
2280 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2282 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, func);
2283 if (!bufObj)
2289 bufObj = *bufObjPtr;
2291 bufObj = get_buffer(ctx, func, target, GL_INVALID_OPERATION);
2292 if (!bufObj)
2297 if (no_error || validate_buffer_storage(ctx, bufObj, size, flags, func))
2298 buffer_storage(ctx, bufObj, memObj, target, size, data, flags, offset, func);
2325 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2327 &bufObj, "glNamedBufferStorageEXT", false))
2395 buffer_data(struct gl_context *ctx, struct gl_buffer_object *bufObj,
2442 if (bufObj->Immutable || bufObj->HandleAllocated) {
2449 _mesa_buffer_unmap_all_mappings(ctx, bufObj);
2453 bufObj->Written = GL_TRUE;
2454 bufObj->MinMaxCacheDirty = true;
2458 bufObj->Name, size, data, usage);
2469 bufObj)) {
2487 buffer_data_error(struct gl_context *ctx, struct gl_buffer_object *bufObj,
2491 buffer_data(ctx, bufObj, target, size, data, usage, func, false);
2495 buffer_data_no_error(struct gl_context *ctx, struct gl_buffer_object *bufObj,
2499 buffer_data(ctx, bufObj, target, size, data, usage, func, true);
2503 _mesa_buffer_data(struct gl_context *ctx, struct gl_buffer_object *bufObj,
2507 buffer_data_error(ctx, bufObj, target, size, data, usage, func);
2516 struct gl_buffer_object **bufObj = get_buffer_target(ctx, target);
2517 buffer_data_no_error(ctx, *bufObj, target, size, data, usage,
2526 struct gl_buffer_object *bufObj;
2528 bufObj = get_buffer(ctx, "glBufferData", target, GL_INVALID_OPERATION);
2529 if (!bufObj)
2532 _mesa_buffer_data(ctx, bufObj, target, size, data, usage,
2542 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2543 buffer_data_no_error(ctx, bufObj, GL_NONE, size, data, usage,
2552 struct gl_buffer_object *bufObj;
2554 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glNamedBufferData");
2555 if (!bufObj)
2561 _mesa_buffer_data(ctx, bufObj, GL_NONE, size, data, usage,
2570 struct gl_buffer_object *bufObj;
2578 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2580 &bufObj, "glNamedBufferDataEXT", false))
2583 _mesa_buffer_data(ctx, bufObj, GL_NONE, size, data, usage,
2589 struct gl_buffer_object *bufObj,
2593 if (!buffer_object_subdata_range_good(ctx, bufObj, offset, size,
2599 if (bufObj->Immutable &&
2600 !(bufObj->StorageFlags & GL_DYNAMIC_STORAGE_BIT)) {
2605 if ((bufObj->Usage == GL_STATIC_DRAW ||
2606 bufObj->Usage == GL_STATIC_COPY) &&
2607 bufObj->NumSubDataCalls >= BUFFER_WARNING_CALL_COUNT - 1) {
2614 func, bufObj->Name, offset, size,
2615 _mesa_enum_to_string(bufObj->Usage));
2626 * \param bufObj The buffer object.
2634 _mesa_buffer_sub_data(struct gl_context *ctx, struct gl_buffer_object *bufObj,
2640 bufObj->NumSubDataCalls++;
2641 bufObj->Written = GL_TRUE;
2642 bufObj->MinMaxCacheDirty = true;
2644 _mesa_bufferobj_subdata(ctx, offset, size, data, bufObj);
2654 struct gl_buffer_object *bufObj;
2658 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2660 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, func);
2661 if (!bufObj)
2667 bufObj = *bufObjPtr;
2669 bufObj = get_buffer(ctx, func, target, GL_INVALID_OPERATION);
2670 if (!bufObj)
2675 if (no_error || validate_buffer_sub_data(ctx, bufObj, offset, size, func))
2676 _mesa_buffer_sub_data(ctx, bufObj, offset, size, data);
2718 struct gl_buffer_object *bufObj;
2726 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2728 &bufObj, "glNamedBufferSubDataEXT", false))
2731 if (validate_buffer_sub_data(ctx, bufObj, offset, size,
2733 _mesa_buffer_sub_data(ctx, bufObj, offset, size, data);
2743 struct gl_buffer_object *bufObj;
2745 bufObj = get_buffer(ctx, "glGetBufferSubData", target,
2747 if (!bufObj)
2750 if (!buffer_object_subdata_range_good(ctx, bufObj, offset, size, false,
2755 bufferobj_get_subdata(ctx, offset, size, data, bufObj);
2763 struct gl_buffer_object *bufObj;
2765 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
2767 if (!bufObj)
2770 if (!buffer_object_subdata_range_good(ctx, bufObj, offset, size, false,
2775 bufferobj_get_subdata(ctx, offset, size, data, bufObj);
2784 struct gl_buffer_object *bufObj;
2792 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2794 &bufObj, "glGetNamedBufferSubDataEXT", false))
2797 if (!buffer_object_subdata_range_good(ctx, bufObj, offset, size, false,
2802 bufferobj_get_subdata(ctx, offset, size, data, bufObj);
2809 clear_buffer_sub_data(struct gl_context *ctx, struct gl_buffer_object *bufObj,
2819 if (!no_error && !buffer_object_subdata_range_good(ctx, bufObj, offset, size,
2847 bufObj->MinMaxCacheDirty = true;
2851 data, clearValueSize, bufObj);
2862 ctx->pipe->clear_buffer(ctx->pipe, bufObj->buffer, offset, size,
2868 struct gl_buffer_object *bufObj,
2873 clear_buffer_sub_data(ctx, bufObj, internalformat, offset, size, format,
2880 struct gl_buffer_object *bufObj,
2886 clear_buffer_sub_data(ctx, bufObj, internalformat, offset, size, format,
2897 struct gl_buffer_object **bufObj = get_buffer_target(ctx, target);
2898 clear_buffer_sub_data_no_error(ctx, *bufObj, internalformat, 0,
2899 (*bufObj)->Size, format, type, data,
2909 struct gl_buffer_object *bufObj;
2911 bufObj = get_buffer(ctx, "glClearBufferData", target, GL_INVALID_VALUE);
2912 if (!bufObj)
2915 clear_buffer_sub_data_error(ctx, bufObj, internalformat, 0, bufObj->Size,
2927 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2928 clear_buffer_sub_data_no_error(ctx, bufObj, internalformat, 0, bufObj->Size,
2939 struct gl_buffer_object *bufObj;
2941 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glClearNamedBufferData");
2942 if (!bufObj)
2945 clear_buffer_sub_data_error(ctx, bufObj, internalformat, 0, bufObj->Size,
2956 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
2958 &bufObj, "glClearNamedBufferDataEXT", false))
2961 clear_buffer_sub_data_error(ctx, bufObj, internalformat, 0, bufObj->Size,
2975 struct gl_buffer_object **bufObj = get_buffer_target(ctx, target);
2976 clear_buffer_sub_data_no_error(ctx, *bufObj, internalformat, offset, size,
2989 struct gl_buffer_object *bufObj;
2991 bufObj = get_buffer(ctx, "glClearBufferSubData", target, GL_INVALID_VALUE);
2992 if (!bufObj)
2995 clear_buffer_sub_data_error(ctx, bufObj, internalformat, offset, size,
3009 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
3010 clear_buffer_sub_data_no_error(ctx, bufObj, internalformat, offset, size,
3023 struct gl_buffer_object *bufObj;
3025 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
3027 if (!bufObj)
3030 clear_buffer_sub_data_error(ctx, bufObj, internalformat, offset, size,
3042 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
3044 &bufObj, "glClearNamedBufferSubDataEXT", false))
3047 clear_buffer_sub_data_error(ctx, bufObj, internalformat, offset, size,
3053 unmap_buffer(struct gl_context *ctx, struct gl_buffer_object *bufObj)
3055 GLboolean status = _mesa_bufferobj_unmap(ctx, bufObj, MAP_USER);
3056 bufObj->Mappings[MAP_USER].AccessFlags = 0;
3057 assert(bufObj->Mappings[MAP_USER].Pointer == NULL);
3058 assert(bufObj->Mappings[MAP_USER].Offset == 0);
3059 assert(bufObj->Mappings[MAP_USER].Length == 0);
3066 struct gl_buffer_object *bufObj,
3071 if (!_mesa_bufferobj_mapped(bufObj, MAP_USER)) {
3078 if (bufObj->Mappings[MAP_USER].AccessFlags != GL_READ_ONLY_ARB) {
3079 GLubyte *buf = (GLubyte *) bufObj->Mappings[MAP_USER].Pointer;
3083 GLuint pos = bufObj->Size - i - 1;
3094 if (bufObj->Mappings[MAP_USER].AccessFlags & GL_MAP_WRITE_BIT) {
3096 GLubyte *b = (GLubyte *) bufObj->Mappings[MAP_USER].Pointer;
3099 for (i = 0; i < bufObj->Size - 1; i++) {
3108 bufObj->Name, unchanged, bufObj->Size, pos);
3113 return unmap_buffer(ctx, bufObj);
3121 struct gl_buffer_object *bufObj = *bufObjPtr;
3123 return unmap_buffer(ctx, bufObj);
3130 struct gl_buffer_object *bufObj;
3132 bufObj = get_buffer(ctx, "glUnmapBuffer", target, GL_INVALID_OPERATION);
3133 if (!bufObj)
3136 return validate_and_unmap_buffer(ctx, bufObj, "glUnmapBuffer");
3143 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
3145 return unmap_buffer(ctx, bufObj);
3152 struct gl_buffer_object *bufObj;
3160 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glUnmapNamedBuffer");
3161 if (!bufObj)
3164 return validate_and_unmap_buffer(ctx, bufObj, "glUnmapNamedBuffer");
3170 struct gl_buffer_object *bufObj, GLenum pname,
3175 *params = bufObj->Size;
3178 *params = bufObj->Usage;
3182 bufObj->Mappings[MAP_USER].AccessFlags);
3185 *params = _mesa_bufferobj_mapped(bufObj, MAP_USER);
3190 *params = bufObj->Mappings[MAP_USER].AccessFlags;
3195 *params = bufObj->Mappings[MAP_USER].Offset;
3200 *params = bufObj->Mappings[MAP_USER].Length;
3205 *params = bufObj->Immutable;
3210 *params = bufObj->StorageFlags;
3228 struct gl_buffer_object *bufObj;
3231 bufObj = get_buffer(ctx, "glGetBufferParameteriv", target,
3233 if (!bufObj)
3236 if (!get_buffer_parameter(ctx, bufObj, pname, ¶meter,
3247 struct gl_buffer_object *bufObj;
3250 bufObj = get_buffer(ctx, "glGetBufferParameteri64v", target,
3252 if (!bufObj)
3255 if (!get_buffer_parameter(ctx, bufObj, pname, ¶meter,
3266 struct gl_buffer_object *bufObj;
3269 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
3271 if (!bufObj)
3274 if (!get_buffer_parameter(ctx, bufObj, pname, ¶meter,
3285 struct gl_buffer_object *bufObj;
3294 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
3296 &bufObj, "glGetNamedBufferParameterivEXT", false))
3299 if (!get_buffer_parameter(ctx, bufObj, pname, ¶meter,
3311 struct gl_buffer_object *bufObj;
3314 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
3316 if (!bufObj)
3319 if (!get_buffer_parameter(ctx, bufObj, pname, ¶meter,
3331 struct gl_buffer_object *bufObj;
3339 bufObj = get_buffer(ctx, "glGetBufferPointerv", target,
3341 if (!bufObj)
3344 *params = bufObj->Mappings[MAP_USER].Pointer;
3351 struct gl_buffer_object *bufObj;
3359 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
3361 if (!bufObj)
3364 *params = bufObj->Mappings[MAP_USER].Pointer;
3371 struct gl_buffer_object *bufObj;
3384 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
3386 &bufObj, "glGetNamedBufferPointervEXT", false))
3389 *params = bufObj->Mappings[MAP_USER].Pointer;
3600 struct gl_buffer_object *bufObj, GLintptr offset,
3678 !(bufObj->StorageFlags & GL_MAP_READ_BIT)) {
3685 !(bufObj->StorageFlags & GL_MAP_WRITE_BIT)) {
3692 !(bufObj->StorageFlags & GL_MAP_COHERENT_BIT)) {
3699 !(bufObj->StorageFlags & GL_MAP_PERSISTENT_BIT)) {
3705 if (offset + length > bufObj->Size) {
3709 (unsigned long) bufObj->Size);
3713 if (_mesa_bufferobj_mapped(bufObj, MAP_USER)) {
3720 bufObj->NumMapBufferWriteCalls++;
3721 if ((bufObj->Usage == GL_STATIC_DRAW ||
3722 bufObj->Usage == GL_STATIC_COPY) &&
3723 bufObj->NumMapBufferWriteCalls >= BUFFER_WARNING_CALL_COUNT) {
3727 func, bufObj->Name, offset, length,
3728 _mesa_enum_to_string(bufObj->Usage));
3736 map_buffer_range(struct gl_context *ctx, struct gl_buffer_object *bufObj,
3740 if (!bufObj->Size) {
3745 void *map = _mesa_bufferobj_map_range(ctx, offset, length, access, bufObj,
3755 assert(bufObj->Mappings[MAP_USER].Pointer == map);
3756 assert(bufObj->Mappings[MAP_USER].Length == length);
3757 assert(bufObj->Mappings[MAP_USER].Offset == offset);
3758 assert(bufObj->Mappings[MAP_USER].AccessFlags == access);
3762 bufObj->Written = GL_TRUE;
3763 bufObj->MinMaxCacheDirty = true;
3769 bufObj->Name, bufObj->Size, access);
3773 GLubyte *b = (GLubyte *) bufObj->Mappings[MAP_USER].Pointer;
3774 for (i = 0; i < bufObj->Size; i++)
3782 GLubyte *buf = (GLubyte *) bufObj->Mappings[MAP_USER].Pointer;
3786 buf[bufObj->Size - i - 1] = 123;
3801 struct gl_buffer_object *bufObj = *bufObjPtr;
3803 return map_buffer_range(ctx, bufObj, offset, length, access,
3812 struct gl_buffer_object *bufObj;
3820 bufObj = get_buffer(ctx, "glMapBufferRange", target, GL_INVALID_OPERATION);
3821 if (!bufObj)
3824 if (!validate_map_buffer_range(ctx, bufObj, offset, length, access,
3828 return map_buffer_range(ctx, bufObj, offset, length, access,
3837 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
3839 return map_buffer_range(ctx, bufObj, offset, length, access,
3848 struct gl_buffer_object *bufObj = NULL;
3857 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
3858 if (!_mesa_handle_bind_buffer_gen(ctx, buffer, &bufObj, func, false))
3861 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, func);
3862 if (!bufObj)
3866 if (!validate_map_buffer_range(ctx, bufObj, offset, length, access, func))
3869 return map_buffer_range(ctx, bufObj, offset, length, access, func);
3929 struct gl_buffer_object *bufObj = *bufObjPtr;
3931 return map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags,
3939 struct gl_buffer_object *bufObj;
3947 bufObj = get_buffer(ctx, "glMapBuffer", target, GL_INVALID_OPERATION);
3948 if (!bufObj)
3951 if (!validate_map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags,
3955 return map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags,
3967 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
3969 return map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags,
3977 struct gl_buffer_object *bufObj;
3985 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glMapNamedBuffer");
3986 if (!bufObj)
3989 if (!validate_map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags,
3993 return map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags,
4013 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
4015 &bufObj, "glMapNamedBufferEXT", false))
4018 if (!validate_map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags,
4022 return map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags,
4028 struct gl_buffer_object *bufObj,
4050 if (!_mesa_bufferobj_mapped(bufObj, MAP_USER)) {
4057 if ((bufObj->Mappings[MAP_USER].AccessFlags &
4064 if (offset + length > bufObj->Mappings[MAP_USER].Length) {
4068 (long) bufObj->Mappings[MAP_USER].Length);
4072 assert(bufObj->Mappings[MAP_USER].AccessFlags & GL_MAP_WRITE_BIT);
4074 _mesa_bufferobj_flush_mapped_range(ctx, offset, length, bufObj,
4084 struct gl_buffer_object *bufObj = *bufObjPtr;
4086 _mesa_bufferobj_flush_mapped_range(ctx, offset, length, bufObj,
4095 struct gl_buffer_object *bufObj;
4097 bufObj = get_buffer(ctx, "glFlushMappedBufferRange", target,
4099 if (!bufObj)
4102 flush_mapped_buffer_range(ctx, bufObj, offset, length,
4111 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
4113 _mesa_bufferobj_flush_mapped_range(ctx, offset, length, bufObj,
4122 struct gl_buffer_object *bufObj;
4124 bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
4126 if (!bufObj)
4129 flush_mapped_buffer_range(ctx, bufObj, offset, length,
4138 struct gl_buffer_object *bufObj;
4146 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
4148 &bufObj, "glFlushMappedNamedBufferRangeEXT", false))
4151 flush_mapped_buffer_range(ctx, bufObj, offset, length,
4157 struct gl_buffer_object *bufObj,
4160 if (!bufObj) {
4165 _mesa_reference_buffer_object(ctx, &ctx->UniformBuffer, bufObj);
4166 bind_uniform_buffer(ctx, index, bufObj, offset, size, GL_FALSE);
4172 * \param bufObj the buffer object
4178 struct gl_buffer_object *bufObj,
4193 bind_buffer_range_uniform_buffer(ctx, index, bufObj, offset, size);
4199 struct gl_buffer_object *bufObj,
4203 if (!bufObj) {
4208 _mesa_reference_buffer_object(ctx, &ctx->ShaderStorageBuffer, bufObj);
4209 bind_shader_storage_buffer(ctx, index, bufObj, offset, size, GL_FALSE);
4215 * \param bufObj the buffer object
4222 struct gl_buffer_object *bufObj,
4237 bind_buffer_range_shader_storage_buffer(ctx, index, bufObj, offset, size);
4242 struct gl_buffer_object *bufObj,
4245 if (!bufObj) {
4250 _mesa_reference_buffer_object(ctx, &ctx->AtomicBuffer, bufObj);
4251 bind_atomic_buffer(ctx, index, bufObj, offset, size, GL_FALSE);
4257 * \param bufObj the buffer object
4264 struct gl_buffer_object *bufObj,
4279 bind_buffer_range_atomic_buffer(ctx, index, bufObj, offset, size);
4720 struct gl_buffer_object *bufObj;
4769 bufObj = boundBufObj;
4772 bufObj = _mesa_multi_bind_lookup_bufferobj(ctx, buffers, i, caller,
4778 _mesa_set_transform_feedback_binding(ctx, tfObj, index, bufObj,
4933 struct gl_buffer_object *bufObj;
4942 bufObj = NULL;
4944 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
4946 &bufObj, "glBindBufferRange", false))
4949 if (!no_error && !bufObj) {
4960 index, bufObj, offset, size);
4963 bind_buffer_range_uniform_buffer(ctx, index, bufObj, offset, size);
4966 bind_buffer_range_shader_storage_buffer(ctx, index, bufObj, offset,
4970 bind_buffer_range_atomic_buffer(ctx, index, bufObj, offset, size);
4988 index, bufObj, offset, size,
4993 index, bufObj, offset, size);
4996 bind_buffer_range_uniform_buffer_err(ctx, index, bufObj, offset,
5000 bind_buffer_range_shader_storage_buffer_err(ctx, index, bufObj,
5004 bind_buffer_range_atomic_buffer_err(ctx, index, bufObj,
5032 struct gl_buffer_object *bufObj;
5040 bufObj = NULL;
5042 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
5044 &bufObj, "glBindBufferBase", false))
5047 if (!bufObj) {
5084 index, bufObj, false);
5087 bind_buffer_base_uniform_buffer(ctx, index, bufObj);
5090 bind_buffer_base_shader_storage_buffer(ctx, index, bufObj);
5093 bind_buffer_base_atomic_buffer(ctx, index, bufObj);
5197 struct gl_buffer_object *bufObj, GLintptr offset,
5201 bufferobj_invalidate(ctx, bufObj, offset, length);
5210 struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
5211 invalidate_buffer_subdata(ctx, bufObj, offset, length);
5219 struct gl_buffer_object *bufObj;
5228 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
5229 if (!bufObj || bufObj == &DummyBufferObject) {
5242 if (offset < 0 || length < 0 || end > bufObj->Size) {
5255 if (!(bufObj->Mappings[MAP_USER].AccessFlags & GL_MAP_PERSISTENT_BIT) &&
5256 bufferobj_range_mapped(bufObj, offset, length)) {
5263 invalidate_buffer_subdata(ctx, bufObj, offset, length);
5271 struct gl_buffer_object *bufObj =_mesa_lookup_bufferobj(ctx, buffer);
5272 invalidate_buffer_subdata(ctx, bufObj, 0, bufObj->Size);
5279 struct gl_buffer_object *bufObj;
5287 bufObj = _mesa_lookup_bufferobj(ctx, buffer);
5288 if (!bufObj || bufObj == &DummyBufferObject) {
5302 if (_mesa_check_disallowed_mapping(bufObj)) {
5309 invalidate_buffer_subdata(ctx, bufObj, 0, bufObj->Size);