Merge branch 'arb_map_buffer_range'
authorBrian Paul <brianp@vmware.com>
Mon, 15 Jun 2009 22:42:42 +0000 (16:42 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 15 Jun 2009 22:42:42 +0000 (16:42 -0600)
Conflicts:

docs/relnotes-7.6.html
src/mesa/main/mtypes.h

1  2 
docs/relnotes-7.6.html
src/mesa/drivers/common/driverfuncs.c
src/mesa/main/bufferobj.c
src/mesa/state_tracker/st_extensions.c

index f53428fe9fae541780b551538ba3c9a2ff8ceb31,ff3ce6469b6c9275aaa080815e0e5ca1ff564214..3086dd05672e571cb1aaac2e1448df38eae1de43
@@@ -38,9 -38,7 +38,10 @@@ tb
  This was written by Zack Rusin at Tungsten Graphics.
  <li>GL_APPLE_vertex_array_object for Gallium drivers and Intel DRI drivers.
  <li>GL_ARB_copy_buffer extension (supported in Gallium and swrast drivers)
 +<li>rewritten radeon/r200/r300 driver using a buffer manager
 +<li>radeon/r200/r300 EXT_framebuffer_object support when used with kernel memory manager
 +<li>r300 - support for EXT_vertex_array_bgra/EXT_texture_sRGB
+ <LI>GL_ARB_map_buffer_range extension (supported in Gallium and software drivers)
  </ul>
  
  
Simple merge
index c04fa691154a9842ee93c4c7ec788d28b2c10466,6b22881072020b74873deb0517acb6d5dfd63206..ba19e58cdb7b06da95fd335c1c4c8dd14fe0a232
  #include "bufferobj.h"
  
  
 +/* Debug flags */
 +/*#define VBO_DEBUG*/
 +/*#define BOUNDS_CHECK*/
 +
 +
  #ifdef FEATURE_OES_mapbuffer
- #define DEFAULT_ACCESS GL_WRITE_ONLY;
+ #define DEFAULT_ACCESS GL_MAP_WRITE_BIT
  #else
- #define DEFAULT_ACCESS GL_READ_WRITE;
+ #define DEFAULT_ACCESS (GL_MAP_READ_BIT | GL_MAP_WRITE_BIT)
  #endif
  
  
@@@ -1168,24 -1208,8 +1231,24 @@@ _mesa_UnmapBufferARB(GLenum target
        return GL_FALSE;
     }
  
 +#ifdef BOUNDS_CHECK
 +   if (bufObj->Access != GL_READ_ONLY_ARB) {
 +      GLubyte *buf = (GLubyte *) bufObj->Pointer;
 +      GLuint i;
 +      /* check that last 100 bytes are still = magic value */
 +      for (i = 0; i < 100; i++) {
 +         GLuint pos = bufObj->Size - i - 1;
 +         if (buf[pos] != 123) {
 +            _mesa_warning(ctx, "Out of bounds buffer object write detected"
 +                          " at position %d (value = %u)\n",
 +                          pos, buf[pos]);
 +         }
 +      }
 +   }
 +#endif
 +
  #ifdef VBO_DEBUG
-    if (bufObj->Access == GL_WRITE_ONLY_ARB) {
+    if (bufObj->AccessFlags & GL_MAP_WRITE_BIT) {
        GLuint i, unchanged = 0;
        GLubyte *b = (GLubyte *) bufObj->Pointer;
        GLint pos = -1;