Age | Commit message (Collapse) | Author |
|
Old solution was to create a new vbo and copy it to the location of
the old vbo hoping for the batches to update their vaos before drawing.
The issue is that the new VAO caching is not updating the VAOs at all
unless the shader interface changes.
So unless we expand gawain to support updating of vertex buffers (in a
better way than the current "dynamic" buffer) we need to delete every batch
linked to the vbo we want to recreate.
This solution might have performance implications.
|
|
|
|
|
|
and allocate loop_normals in MeshRenderData instead of CustomData
Differential Revision: D2907
|
|
From D2906 with few changes
|
|
|
|
- NOCHECK -> ALL
- ALL -> MAYBE_ALL
Where 'MAYBE_ALL' checks to see if the mesh has changed.
This is clearer that `BKE_MESH_BATCH_DIRTY_ALL` is dirty and
going to be updated without any guess-work.
|
|
|
|
Use mesh batch cache for mesh selection.
Note that we could create the batches and free immediately
so they don't take up memory.
This resolves a problem where selection was limited
to immediate-mode buffer size.
|
|
|
|
|
|
Support using full material shading in sculpt & paint modes mode.
Access 'Full Shading' from the display panel when in paint modes.
|
|
This frees the whole mesh batch cache, instead of only the required
parts, as freeing specific parts of a cache is currently causing
crashes.
|
|
UVs need specific data in the VBO, which is not computed unless the
shaders assigned to the mesh actually use UVs. When adding UVs to the
shader, the VBOs were not being recomputed to include the required data.
This adds a DEG relation between the shader and the mesh, and recomputes
the required data if the shader changed.
Thanks Sergey, for all the DEG stuff...
|
|
there are no UV maps.'
|
|
|
|
Bug introduced on f6bb3262f17.
CustomData_get_named_layer returns a different result than
CustomData_get_named_layer_index.
|
|
Gives approx 14% speedup here.
|
|
|
|
|
|
- Replace GWN_vertbuf_attr_set with Gwn_VertBufRaw & GWN_vertbuf_raw_step
to avoid intermediate copy.
- Avoid extra conversion step with: float[3] -> short[3] -> Gwn_PackedNormal.
We can skip the short[3].
Gives approx 6% speedup here.
|
|
|
|
|
|
|
|
|
|
Read from the GPUMaterial to find custom-data layers used for drawing.
This resolves problem where having UV's would always calculate tangents
causing noticeable slow down compared to 2.7x.
|
|
Would calculate all tangents for every UV layer.
|
|
Prepare for different number of UV/Tangent layers.
|
|
This also renames some flags/variables to be more generic for updating
purposes. The call used here was previously only used for updating
paint data, but as it was reused here, flags and variables were renamed
to accomodate more clearly to the new usages.
|
|
Use consistent prefix for gawain API names as well as
some abbreviations to avoid over-long names, see: D2678
|
|
|
|
|
|
|
|
This matches cycles & derived-mesh
|
|
|
|
|
|
Generalize derived-mesh tangent calculation so
it can be used by Batch cache creation too.
|
|
|
|
Storing edit-mesh data as indices for passing
only to get back edit-mesh data.
This also complicated checks for real edges in tessellation tris.
Simpler to pass data directly.
|
|
|
|
- Split BMesh/Mesh loops.
- Loop over faces instead of tris.
- Add out-of-bounds check for material index (rare but can happen).
|
|
Can be used by any user that needs faces split by materials.
|
|
Uses workaround so material slots are used when neither blender-internal
or cycles are enabled.
|
|
Changed because the values co-exist with active layers
(Mesh.mloopuv, Mesh.mloopcol).
|
|
|
|
|
|
This format is part of OpenGL 3.3, and one of the reasons for choosing 3.3 over 3.2.
Instead of checking #if USE_10_10_10 just use it wherever needed.
|
|
|
|
|
|
|