Commit Graph

129 Commits

Author SHA1 Message Date
0ac1564f68 opengl render was freeing all images from the graphics card each update.
with some 4x4k and 4x8k textures this becomes very slow.

only free animated textures (movies and sequences)
2010-05-20 16:08:06 +00:00
389e590460 ghash alloc string from render branch
svn merge https://svn.blender.org/svnroot/bf-blender/branches/render25 -r28571:28573
 svn merge https://svn.blender.org/svnroot/bf-blender/branches/render25 -r28575:28576
2010-05-07 07:54:25 +00:00
0c495ffe10 Fix for GPU_free_unused_buffers deadlock, solution by Tamito Kajiyama, thanks! 2010-05-05 17:14:43 +00:00
3f12beb4d0 Fix #22123 and #22124: some problems with mutex locks, also tweak to
how removing opengl textures from outside main thread is done so it
happens as part of the main loop.
2010-04-25 10:49:13 +00:00
ace1c998c4 warning cleanup, also made voxel.c and volumetric.c use BM_INLINE define rather then having their own ifdefs in each file. 2010-04-24 10:08:07 +00:00
Dalai Felinto
6562e6a4d1 PThreads "fix" for CMake / MSVC
I heard that the actual solution would be to remove #include <pthread.h> from BLI_threads.h
But in the mean time is not fair to CMake/MSVC to be the only system not building ;)
2010-04-16 23:58:12 +00:00
9a85013692 Merge various small changes from render branch:
* Division by zero fix for TNT SVD code.
* Sound fix, in case ffmpeg decode fails, don't use the samples.
* Fix for incorrect bounds of transformed objects in new raytracing code.
* Gave memory arena's a name used for allocations for easier memory
  usage debugging.
* Dupligroup no_draw option was using layers but not restrict view/render
  setting. (not a bugfix exactly but would do display list context switching
  while drawing for no reason).
* Fix objects instanced on hair particles not giving consistent results
  when the object is transformed.
* New math functions: madd_v4_v4fl, len_squared_v3v3, interp_v4_v4v4v4,
  mul_v4_m4v4, SH and form factor functions, box_minmax_bounds_m4.
* mul_m4_m4m4 and mul_m3_m3m3 now accept the same pointers for multiple
  arguments.
* endjob callback for WM jobs system.
* Geometry node uv/color layer now has search list/autocomplete.
* Various small buildsystem tweaks, not strictly needed yet in trunk.
2010-04-15 10:28:32 +00:00
7d9067ca2c Make memstat easier to read, add missing Intel ID and cleanups. 2010-04-14 21:12:05 +00:00
22d4b02087 Fixing Scons compile on Windows:
*Missed PTHREAD declaration.
2010-04-14 17:15:33 +00:00
0d557969b8 used private mutexes to avoid deadlocks 2010-04-13 20:34:40 +00:00
86aa4e5c3d prevent images from freeing gpu buffers if not run within the main thread, instead they are queued to be freed the next time GPU_image_free() is run from the main thread. 2010-04-13 12:51:03 +00:00
Dalai Felinto
c1a9d4d7a3 Bugfix: 21586 - UI problems with Tiled Textures (animatable for GE)
The problem was present in Blender 2.49, but it didn't produce any side effect.
glScale was changing the texture matrix and the matrix was never been reset. That messes up with UI drawing.
2010-04-08 20:58:18 +00:00
ec5527cb52 Fix #21349: triple buffer drawing doesn't work well with thousands of
colors setting on Mac, just disabled it in that case.
2010-04-05 10:25:40 +00:00
49271a2fea Fix #21667: smoke drawing crashes calling glTexImage3D on graphics card that do
not support it.
2010-03-27 10:48:01 +00:00
a2778a262b Fix #20548: flat shading not drawing right in sculpt mode. 2010-03-22 17:17:36 +00:00
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
1b30b13a4d Fix #21227, #21346 and #21336: image texture wasn't centered correctly
when sculpting and using it from material nodes.
2010-03-01 18:11:09 +00:00
1a6f683b43 another attempt at fixing the VBO buffer deletion bugs 2010-02-17 18:48:02 +00:00
866ecdebe7 added some more error checking for buffer allocation and fixed it up a bit. Hopefully this won't introduce new bugs and fix old ones. 2010-02-15 19:09:59 +00:00
b673f7318c Added support for animated texture draw, GLSL textures.
Note, this is not like GE ffmpg, but Blender Image Texture
display for GLSL materials. Speed can be disappointing,
use smaller images for realtime edits.
2010-02-13 13:09:30 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
051c6e999f partial fix for [#21036] crash with glsl shading
copying UVs was doing a buffer overrun.
2010-02-08 21:19:15 +00:00
58b89bbac3 Fix sculpt mode drawing performance regression, happened on at least
NVidia/Linux. Disabling GL_MULTISAMPLE apparently makes things go much
slower even though we're not using it, why is a mystery to me.
2010-02-01 19:22:54 +00:00
fe555522f1 GPU type detection tweaks for unix/mac software rendering. 2010-02-01 10:04:37 +00:00
87bbb2d827 WM Draw Methods now has a new option Automatic (default). This will
set the draw method to triple buffer or overlap depending on the
configuration. Ideally I could get all cases working well with triple
buffer but it's hard in practice. At the moment there are two cases
that use overlap instead:

* opensource ATI drives on linux
* windows software renderer

Also added a utility function to check GPU device/os/driver.
2010-01-31 23:45:51 +00:00
127b3e6882 Fix #20879: crash when add textures brush in sculpt mode. Drawing
the texture would crash because the VBO was still bound. As I
understand it this is not necessarily against the opengl spec,
but might as well unbind it, the driver bug seems to have been
fixed but has not trickled down everywhere yet.

http://bugs.freedesktop.org/show_bug.cgi?id=23859
2010-01-31 15:06:20 +00:00
91882d3ba1 Fix #19980: crash with opengl render active viewport. 2010-01-30 09:53:55 +00:00
2b352211f4 Fix #19875: drawing smoke on graphics cards that do not support
non-power-of-two textures lead to artifacts due to uninitialized
memory if the domain had a non-power-of-two size.
2010-01-30 09:24:50 +00:00
083e5b66a9 GPU_buffer_setup could return a freed buffer. (when VBO's were used) 2010-01-16 17:47:56 +00:00
ccb54eff2e FSAA: properly disable it for first window draw, remove obsolete backbuffer
disable code, and only enable it for 3d drawing in the 3d view.
2010-01-08 09:30:36 +00:00
4faf36e3ad Added OpenGL debugging function to print state information, was using this as
a patch here for a while but might as well commit it.
2010-01-04 16:28:59 +00:00
c6ffe23762 Sculpt Branch:
* Added detection if VBO extension is supported.
* Redraw other 3d views after sculpting.
* Fix brush sometimes punching through mesh with very small polygons,
  added an extra epsilon to the ray-triangle intersection.
2009-12-11 14:16:17 +00:00
6639ba6b86 Sculpt Branch:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r25180:25245
2009-12-09 15:24:55 +00:00
8df3e7b54c Sculpt Branch:
* Fallback code in case VBO allocation fails.
2009-12-09 15:20:47 +00:00
f54776b1a6 VBO:
* Fix #19785: curves not drawing with VBO enabled
* Fix #19553: duplicate Window crashes with VBO's

The convention in Blender was to have GL_VERTEX_ARRAY and GL_NORMAL_ARRAY
enabled by default, and other arrays disabled. The VBO drawing code did
not take this into account. I've made these now disabled by default, since
that makes the code clearer in other places too.
2009-12-09 14:37:26 +00:00
82ddfbf99f Sculpt Branch:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r24889:25180
2009-12-07 19:22:48 +00:00
010c99deb2 Sculpt Branch:
* Multithread parts of multires and subsurf. Only loops working on
  face grid data and do no memory allocation have been multithreaded,
  others would be more complicated.
* Force some CCGSubsurf functions to be inlined, gives a small overall
  speedup in subsurf code.

* Fix sculpting not working correct with transformed objects.
* Fix a few cases of "spikes" on lower level multires levels. There's
  still cases where it happens, usually on boundary cornders. The
  problem is that in such cases the limit surfaces can be very different
  from the low res surface, so the tangent space is very different too..
* Fix crash deleting multires higher levels with level set to 0.
* Fix crashes that happened sometimes when adding faces in editmode.
2009-12-03 18:35:37 +00:00
b89138564e Changes to Color Management
After testing and feedback, I've decided to slightly modify the way color 
management works internally. While the previous method worked well for 
rendering, was a smaller transition and had some advantages over this
new method, it was a bit more ambiguous, and was making things difficult 
for other areas such as compositing.

This implementation now considers all color data (with only a couple of 
exceptions such as brush colors) to be stored in linear RGB color space, 
rather than sRGB as previously. This brings it in line with Nuke, which also 
operates this way, quite successfully. Color swatches, pickers, color ramp 
display are now gamma corrected to display gamma so you can see what 
you're doing, but the numbers themselves are considered linear. This 
makes understanding blending modes more clear (a 0.5 value on overlay 
will not change the result now) as well as making color swatches act more 
predictably in the compositor, however bringing over color values from 
applications like photoshop or gimp, that operate in a gamma space, 
will give identical results.

This commit will convert over existing files saved by earlier 2.5 versions to 
work generally the same, though there may be some slight differences with 
things like textures. Now that we're set on changing other areas of shading, 
this won't be too disruptive overall.

I've made a diagram explaining the pipeline here:
http://mke3.net/blender/devel/2.5/25_linear_workflow_pipeline.png

and some docs here:
http://www.blender.org/development/release-logs/blender-250/color-management/
2009-12-02 07:56:34 +00:00
2582e3a900 Sculpt: fix windows compile issues, pointed out by JMS, thanks! 2009-11-25 18:20:46 +00:00
55d2a56d60 Sculpt:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r24483:24889
2009-11-25 17:51:16 +00:00
134935a8db Sculpt: Grid based PBVH
* PBVH can now be created contain both from face grids or standard
  meshes. The former is much quicker to build for high res meshes.
* Moved some drawing code into pbvh (mostly for the frustum test).
* Moved ray intersection code into pbvh.
* GPU buffers also can be built from either mesh or grids now.
* Updated sculpt code to work with this. The ugly part is that there
  is now a macro for iterating over vertices, to handle both cases,
  and some duplicated code for e.g. undo.
* Smooth brush does not work yet with grids.
2009-11-25 13:40:43 +00:00
Dalai Felinto
d875f4927e patch [#19796] GLEW update by Mitchell Stokes (Moguri)
GLEW update to version 1.5.1 [11-03-08]
this opens room for Geometry Shader support.

* - Brecht, Campbell told me you did some local changes in order to make it right in Linux. I get to you in order to know what those changes are (or feel free to commit them directly)
2009-11-21 20:36:03 +00:00
2e3326c153 Sculpt: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r24330:24483 2009-11-11 10:44:46 +00:00
37e4a311b0 Math Lib
* Convert all code to use new functions.
* Branch maintainers may want to skip this commit, and run this
  conversion script instead, if they use a lot of math functions
  in new code:
  http://www.pasteall.org/9052/python
2009-11-10 20:43:45 +00:00
7fe52eedba Removed an unused function and changed the VBO functions to use the ARB name for consistency with the rest of the file. 2009-11-10 03:45:52 +00:00
196ecb7bab material shader curve factor (same as compo node) 2009-11-09 16:00:12 +00:00
a365ccd20e Sculpt: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r24095:24152 2009-10-29 10:12:07 +00:00
b6459105b4 OpenGL Render restored.
I tried to make it integrate more with regular render but couldn't
do it well, it still needs a 3D view to take the settings from, and
can't run in a separate thread due to OpenGL.

However, it is now rendering to an offscreen buffer which then gets
displayed in the image window. This requires FBO's to be available, so
a fallback creating a new window is still needed. Currently available
from the Render menu in the top header.
2009-10-28 18:03:04 +00:00
93beb0b85a Commit of the sculpt patch (#19672). Further development will be in this branch until we merge to trunk. 2009-10-27 19:53:34 +00:00
5fb73d8b81 Make compiler happy, remove doubtful non init usage. 2009-10-21 17:56:26 +00:00