[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44500] trunk/blender/source/blender/gpu/ intern/gpu_buffers.c: Bugfix: avoid reading from an OpenGL buffer mapped write-only.
Nicholas Bishop
nicholasbishop at gmail.com
Tue Feb 28 06:00:38 CET 2012
Revision: 44500
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44500
Author: nicholasbishop
Date: 2012-02-28 05:00:28 +0000 (Tue, 28 Feb 2012)
Log Message:
-----------
Bugfix: avoid reading from an OpenGL buffer mapped write-only.
When set to solid-shading, GPU_update_grid_buffers was calling
normal_quad_v3 to output into a mapped buffer, but normal_quad_v3
reads as well as writes.
This fix actually makes a huge performance difference with my drivers
(Gallium/Radeon).
Modified Paths:
--------------
trunk/blender/source/blender/gpu/intern/gpu_buffers.c
Modified: trunk/blender/source/blender/gpu/intern/gpu_buffers.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_buffers.c 2012-02-28 04:00:56 UTC (rev 44499)
+++ trunk/blender/source/blender/gpu/intern/gpu_buffers.c 2012-02-28 05:00:28 UTC (rev 44500)
@@ -1427,11 +1427,14 @@
that is what opengl will use */
for(j = 0; j < gridsize-1; ++j) {
for(k = 0; k < gridsize-1; ++k) {
- normal_quad_v3(vert_data[(j+1)*gridsize + (k+1)].no,
+ float fno[3];
+ normal_quad_v3(fno,
grid[(j+1)*gridsize + k].co,
grid[(j+1)*gridsize + k+1].co,
grid[j*gridsize + k+1].co,
grid[j*gridsize + k].co);
+
+ copy_v3_v3(vert_data[(j+1)*gridsize + (k+1)].no, fno);
}
}
}
More information about the Bf-blender-cvs
mailing list