projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
swrast: add dri2ConfigQueryExtension to the correct extension list
[mesa.git]
/
src
/
mesa
/
drivers
/
dri
/
nouveau
/
nouveau_bufferobj.c
diff --git
a/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c
b/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c
index 783a152955f859f87f0e444c99f1fc5e01704d46..afccf353960d02222119ab944c145f667852ed2b 100644
(file)
--- a/
src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c
+++ b/
src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c
@@
-48,7
+48,7
@@
get_bufferobj_map(struct gl_context *ctx, struct gl_buffer_object *obj,
}
static struct gl_buffer_object *
}
static struct gl_buffer_object *
-nouveau_bufferobj_new(struct gl_context *ctx, GLuint buffer
, GLenum target
)
+nouveau_bufferobj_new(struct gl_context *ctx, GLuint buffer)
{
struct nouveau_bufferobj *nbo;
{
struct nouveau_bufferobj *nbo;
@@
-56,7
+56,7
@@
nouveau_bufferobj_new(struct gl_context *ctx, GLuint buffer, GLenum target)
if (!nbo)
return NULL;
if (!nbo)
return NULL;
- _mesa_initialize_buffer_object(ctx, &nbo->base, buffer
, target
);
+ _mesa_initialize_buffer_object(ctx, &nbo->base, buffer);
return &nbo->base;
}
return &nbo->base;
}
@@
-86,6
+86,7
@@
nouveau_bufferobj_data(struct gl_context *ctx, GLenum target, GLsizeiptrARB size
/* Free previous storage */
nouveau_bo_ref(NULL, &nbo->bo);
free(nbo->sys);
/* Free previous storage */
nouveau_bo_ref(NULL, &nbo->bo);
free(nbo->sys);
+ nbo->sys = NULL;
if (target == GL_ELEMENT_ARRAY_BUFFER_ARB ||
(size < 512 && usage == GL_DYNAMIC_DRAW_ARB) ||
if (target == GL_ELEMENT_ARRAY_BUFFER_ARB ||
(size < 512 && usage == GL_DYNAMIC_DRAW_ARB) ||
@@
-127,12
+128,13
@@
nouveau_bufferobj_get_subdata(struct gl_context *ctx, GLintptrARB offset,
static void *
nouveau_bufferobj_map_range(struct gl_context *ctx, GLintptr offset,
GLsizeiptr length, GLbitfield access,
static void *
nouveau_bufferobj_map_range(struct gl_context *ctx, GLintptr offset,
GLsizeiptr length, GLbitfield access,
- struct gl_buffer_object *obj)
+ struct gl_buffer_object *obj,
+ gl_map_buffer_index index)
{
unsigned flags = 0;
char *map;
{
unsigned flags = 0;
char *map;
- assert(!obj->Pointer);
+ assert(!obj->
Mappings[index].
Pointer);
if (!(access & GL_MAP_UNSYNCHRONIZED_BIT)) {
if (access & GL_MAP_READ_BIT)
if (!(access & GL_MAP_UNSYNCHRONIZED_BIT)) {
if (access & GL_MAP_READ_BIT)
@@
-145,23
+147,24
@@
nouveau_bufferobj_map_range(struct gl_context *ctx, GLintptr offset,
if (!map)
return NULL;
if (!map)
return NULL;
- obj->Pointer = map + offset;
- obj->Offset = offset;
- obj->Length = length;
- obj->AccessFlags = access;
+ obj->
Mappings[index].
Pointer = map + offset;
+ obj->
Mappings[index].
Offset = offset;
+ obj->
Mappings[index].
Length = length;
+ obj->
Mappings[index].
AccessFlags = access;
- return obj->Pointer;
+ return obj->
Mappings[index].
Pointer;
}
static GLboolean
}
static GLboolean
-nouveau_bufferobj_unmap(struct gl_context *ctx, struct gl_buffer_object *obj)
+nouveau_bufferobj_unmap(struct gl_context *ctx, struct gl_buffer_object *obj,
+ gl_map_buffer_index index)
{
{
- assert(obj->Pointer);
+ assert(obj->
Mappings[index].
Pointer);
- obj->Pointer = NULL;
- obj->Offset = 0;
- obj->Length = 0;
- obj->AccessFlags = 0;
+ obj->
Mappings[index].
Pointer = NULL;
+ obj->
Mappings[index].
Offset = 0;
+ obj->
Mappings[index].
Length = 0;
+ obj->
Mappings[index].
AccessFlags = 0;
return GL_TRUE;
}
return GL_TRUE;
}