-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12/03/2013 10:44 AM, Eric Anholt wrote: > Siavash Eliasi <siavashser...@gmail.com> writes: > >> Hello, this is V2 series of patches to accomplish *Enable >> ARB_map_buffer_alignment in all drivers* newbie project suggested >> by Ian Romanick. > > I think there's a piece missing to this, which is this bit of spec > text: > > "If no error occurs, the pointer value returned by MapBufferRange > must reflect an allocation aligned to the value of > MIN_MAP_BUFFER_ALIGNMENT basic machine units. Subtracting <offset> > basic machine units from the returned pointer will always produce a > multiple of the value of MIN_MAP_BUFFER_ALIGNMENT." > > In i965's intel_bufferobj_map_range, range_map_bo or > range_map_buffer mappings won't have that alignment.
Yeah... I had forgotten about that when I originally posted the project. There are a couple ways we could handle it. The one that occurred to me first is to modify _mesa_MapBufferRange to only call ctx->Driver.MapBufferRange with a properly aligned offset (and do the fix-up on the pointer before storing it in gl_buffer_object::Pointer). We don't have to worry about gl_buffer_object::Offset being rounded because, as far as I can tell, it's not visible to applications. We'd just have to make sure that each driver's UnmapBuffer implementation only uses Offset and not Pointer. Does that sound sensible? > _______________________________________________ mesa-dev mailing > list mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iEYEARECAAYFAlKmLrIACgkQX1gOwKyEAw/xuACeKdD5Wxf5zW4B5O5tpoocDqI+ hw8An3i4KMkAAFZYAtayOY60GpxYyuFn =1xhS -----END PGP SIGNATURE----- _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev