[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