April 22, 2015, 02:01 (GMT) |
fix compiler warnings (gcc 4.9) |
April 21, 2015, 21:17 (GMT) |
Mesh drawing: loop normals Looks good, matches existing viewport. Still room for size optimization here and with flat shading. |
April 21, 2015, 07:15 (GMT) |
fix compile on MSVC BLI_threads uses bool, so depends on include order. Proper fix would be to #include <stdbool.h> in BLI_threads.h but I don't want to modify in this branch. |
April 21, 2015, 07:02 (GMT) |
disable logging of orphaned GL buffer IDs |
April 21, 2015, 06:27 (GMT) |
Merge remote-tracking branch 'origin/GPU_data_request' into GPU_data_request Conflicts (resolved): source/blender/gpu/intern/gpux_draw.c source/blender/gpu/intern/gpux_element.c source/blender/gpu/intern/gpux_vbo.c |
April 21, 2015, 05:41 (GMT) |
Mesh drawing: variety of surface normal treatments Can be NONE, SMOOTH, FLAT or LOOP. LOOP is unfinished at the moment. NONE might be pulled into its own drawing override mode. Note: this commit includes some debug/tracing that is still useful to me but will be removed in the future. |
April 21, 2015, 04:35 (GMT) |
const-ify BKE_mesh_calc_poly_normal Some of my new mesh drawing code needs to call this with const data. TODO: swing the â??const hammerâ? at more BKE_mesh functions |
April 21, 2015, 04:31 (GMT) |
very minor cleanup |
April 21, 2015, 04:30 (GMT) |
manage GL buffer IDs in a thread-safe way Old way was causing crash in GL when DerivedMesh discarded its GPUxBatch from another thread. New way deletes ID when safe to do so, otherwise â??orphansâ? the ID to be deleted later. |
April 19, 2015, 07:06 (GMT) |
add GPUxBatch size query How much VRAM does our draw data use? Or process memory for client-side data. Note: right now data is stored in *both* places, but the code will be smarter about storage in the future. |
April 17, 2015, 15:31 (GMT) |
Use BLI_assert instead of assert |
April 17, 2015, 14:36 (GMT) |
Use our own allocation routines for GPUx module |
April 17, 2015, 09:37 (GMT) |
Merge branch 'master' into GPU_data_request Conflicts: source/blender/makesdna/DNA_view3d_types.h |
April 17, 2015, 05:16 (GMT) |
add to GPUx state: interpolation (smooth shading) and remove manual calls to glShadeModel. TODO: interpolation qualifier per attrib (flat/smooth/noperspective) instead of here. This requires GLSL 1.3 (OpenGL 3.0) or EXT_gpu_shader4 so we canâ??t go down that path yet. |
April 17, 2015, 03:23 (GMT) |
remove short int -> float conversion for vertex normals Performance experiment â?? thought this might be slowing down large shaded meshes on Mac + nVidia but it was not. Index buffers in VRAM fixed the perf issue :) Keeping normals as GL_SHORT uses less memory. Would be 1/2 but padding/alignment makes it 2/3. These stay GL_SHORT in VRAM also, and are converted to floats when loaded by the vertex shader. |
April 16, 2015, 21:10 (GMT) |
fix compiler warnings (gcc 4.9) |
April 16, 2015, 20:11 (GMT) |
store index buffers in VRAM With this change, smooth solid meshes draw faster in the new viewport than old with VBOs. Wireframe was already faster, now it's CRAZY fast. |
April 16, 2015, 17:56 (GMT) |
cache GPUx batches for performance++ WIP â?? developed on Mac, want to test on Linux & Windows so pushing unfinished. Everything needed for drawing is collected into a GPUxBatch. These are generated per-object the first time drawn, then reused for subsequent draws. Regenerated when DerivedMesh or draw mode changes. TODO: - actively reclaim memory (like gpu_buffers.câ??s pool) - store a list of batches per DM, for complex drawing - find cause of low perf on high poly OB_SOLID rendering |
April 13, 2015, 20:11 (GMT) |
init GL state tracking *after* clearing viewport Clear function doesnâ??t use state tracking, sets GL directly. |
April 13, 2015, 08:34 (GMT) |
workaround for VBOs on Mesa |
|