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 |
|