Blender Git Commits

Blender Git "GPU_data_request" branch commits.

Page: 2 / 5

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
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021