Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-10-24GPencil: Fix regression (part3) with edit mode introduced in rB0ee9282b5c51Clément Foucault
Vertex indexing has not been updated and stroke_start usage was wrong. Update all `stroke_start` usage.
2022-10-24Pencil: Fix regression (part2) with stroke buffer introduced in rB0ee9282b5c51Clément Foucault
`vert_len` was being shadowed and index_min & max wasn't correctly set.
2022-10-24GPencil: Fix regression with stroke buffer introduced in rB0ee9282b5c51Clément Foucault
2022-10-24GPencil: Fix regressions introduced in rB0ee9282b5c51Clément Foucault
Batching was broken / disabled and starting indices were wrong.
2022-10-24GPencil: Fix build errors caused by designated initializer in C++Clément Foucault
2022-10-24GPencil: Use indexed rendering instead of instancesClément Foucault
This allows using instancing in other ways, like resources indexing.
2022-10-24GPencil: Port draw_cache_impl_gpencil.cc to C++Clément Foucault
2022-10-21EEVEE: Fix ill defined blend in cubemap array workaroundClément Foucault
This fixes some firefly issues on corners of the cubemaps where the blending factors would go above 1 or below 0.
2022-10-20Fix T93382: Blender still generates subsurface render passesLukas Stockner
In T93382, the problem was that the Blender-side rendering code was still generating the subsurface passes because the old render pass flags were set, even though Cycles doesn't generate them anymore. After a closer look, it turns out that the entire hardcoded pass creation code can be removed. We already have an Engine API function to query the list of render passes from the engine, so we might as well just call that and create the returned passes. Turns out that Eevee already did this anyways. On the Cycles side, it allows to deduplicate a lot of `BlenderSync::sync_render_passes`. Before, passes were defined in engine.py and in sync.cpp. Now, all passes that engine.py returns are created automatically, so sync.cpp only needs to handle a few special cases. I'm not really concerned about affecting external renderer addons, since they already needed to handle the old "builtin passes" in their Engine API implementation anyways to make them show up in the compositor. So, unless they missed that for like 10 releases, they should not notice any difference. Differential Revision: https://developer.blender.org/D16295
2022-10-19EEVEE: Depth Of Field: Replace ambiguous select with manual checkClément Foucault
This is an attempt to remove a driver bug.
2022-10-19Fix T101896 Eevee: Custom object properties don't work in shader for Curves ↵Clément Foucault
objects Move the material resources binding inside the `DRW_shgroup_curves_create_sub` so that `DRW_shgroup_call_no_cull` extracts the attributes.
2022-10-18Metal: MTLBatch and MTLDrawList implementation.Jason Fielder
MTLBatch and MTLDrawList implementation enables use of Metal Viewport for UI and Workbench. Includes Vertex descriptor caching and SSBO Vertex Fetch mode draw call submission. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D16101
2022-10-17FIX T101445: halo Particles are not working.Jason Fielder
color uniform assignment needing to be changed to ucolor was missed. Ref T101445 Reviewed By: fclem Maniphest Tasks: T101445 Differential Revision: https://developer.blender.org/D16236
2022-10-17Cleanup: spelling in comments, unused arg warningCampbell Barton
2022-10-16Fix T99450: Animated Holdout not updating on frame changeLukas Stockner
Problem here was that layer_collection_objects_sync wasn't called when the holdout property is updated due to frame change, so the changed visibility flag was never applied to ob->base_flag. Turns out there's no real reason to handle the per-object holdout property through the layer system. So, instead of merging both the layer holdout and object holdout into base_flag and checking that from the render engines, only handle the layer holdout (which can't be animated, so no issue here) through base_flag and explicitly also check the object holdout in the render engines.
2022-10-15Cleanup: comment out unused lambda parameterJoseph Eagar
2022-10-15Sculpt: Fix draw artifacts when drawing multires maskJoseph Eagar
2022-10-15Sculpt: do not validate PBVH draw data in mesh_batch_cache_validJoseph Eagar
Turns out PBVH drawing and normal mesh batches are not mutually exclusive inside the draw cache; there are edge cases with modifiers and instancing where you need both, and forcing one or the other inside this function leads to memory corruption.
2022-10-14Fix: Draw: Initialize StencilSet in the correct orderMiguel Pozo
tmp
2022-10-14Cleanup: Small changes to curves draw cacheHans Goudey
- Remove unused include - Avoid repeating blender:: namespace - Remove timer left in by mistake in previous commit
2022-10-14Curves: Multithread position vertex buffer extractionHans Goudey
On a Ryzen 3700x I observed a 4ms improvement (from 5ms to 1ms) on every redraw when sculpting with 88000 curves.
2022-10-13Fix: Crash updating draw cache of original curves dataHans Goudey
Error in c67e5628d22f8348492 which mistook clearing the pointer for clearing the values in the struct.
2022-10-13Cleanup: Use std::mutex for mesh runtime mutexesHans Goudey
Instead of allocating three separate ThreadMutex pointers, just embed std::mutex into the struct directly.
2022-10-13Mesh: Move runtime data out of DNAHans Goudey
This commit replaces the `Mesh_Runtime` struct embedded in `Mesh` with `blender::bke::MeshRuntime`. This has quite a few benefits: - It's possible to use C++ types like `std::mutex`, `Array`, `BitVector`, etc. more easily - Meshes saved in files are slightly smaller - Copying and writing meshes is a bit more obvious without clearing of runtime data, etc. The first is by far the most important. It will allows us to avoid a bunch of manual memory management boilerplate that is error-prone and annoying. It should also simplify future CoW improvements for runtime data. This patch doesn't change anything besides changing `mesh.runtime.data` to `mesh.runtime->data`. The cleanups above will happen separately. Differential Revision: https://developer.blender.org/D16180
2022-10-13Draw: Add missing TBB define to draw moduleHans Goudey
Allows improving performance with BLI_task.hh in draw extraction code. Threading added in c15a63d21eae49ffd improved performance by 3-4x for me, but didn't make a difference until now.
2022-10-12Cleanup: EEVEE-Next: Add precision to commentClément Foucault
2022-10-12DRW: View: Expose matrices through interfaceClément Foucault
2022-10-12DRW: Wrappers: Add TextureRef to wrap around GPUTexture pointersClément Foucault
This adds the possibility to use the C++ API for other GPUTexture.
2022-10-12DRW: Fix gl error related to incorrect uniform sizeClément Foucault
2022-10-12Cleanup: DRW: Improve state_stencil documentationClément Foucault
2022-10-12ImageEngine: Clamp image data to fit half float range.Jeroen Bakker
When image data exceeds half float ranges values are set to +/- infinity that could lead to artifacts later on in the pipeline. Color management for example. This patch adds a utility function `IMB_gpu_clamp_half_float` that clamps full float values to fit within the range of half floats. This fixes T98575 and T101601.
2022-10-12UV: add grid shape source to the uv editor, and add new "pixel" optionChris Blackbourn
This change is part of a wider set of changes to implement Grid and Pixel snapping in the UV Editor. This particular change adds a new third option, `pixel grid`, to the previous grid options, `dynamic grid` and `fixed grid`. Maniphest Tasks : T78391 Differential Revision: https://developer.blender.org/D16197
2022-10-11Cleanup: Move draw_cache_impl_volume.c to C++Hans Goudey
2022-10-11Sculpt: Fix mask from cavity not redrawing viewport with modifiersJoseph Eagar
2022-10-11Sculpt: Fix T101674: Passing null to GPU_batch_elembuf_setJoseph Eagar
2022-10-10EEVEE-Next: Fix surface deferred shader compilation in debug modeClément Foucault
2022-10-10Cleanup: quiet warnings, formatCampbell Barton
2022-10-09Cleanup: Remove data duplication from large array in eevee_camera.hhJesse Yurkovich
Use `inline constexpr` instead of `static const` to prevent these variables from being duplicated in each translation unit that includes the eevee_camera.hh header (was included into 17 different object files with MSVC). Differential Revision: https://developer.blender.org/D16200
2022-10-08Attribute Node: support accessing attributes of View Layer and Scene.Alexander Gavrilov
The attribute node already allows accessing attributes associated with objects and meshes, which allows changing the behavior of the same material between different objects or instances. The same idea can be extended to an even more global level of layers and scenes. Currently view layers provide an option to replace all materials with a different one. However, since the same material will be applied to all objects in the layer, varying the behavior between layers while preserving distinct materials requires duplicating objects. Providing access to properties of layers and scenes via the attribute node enables making materials with built-in switches or settings that can be controlled globally at the view layer level. This is probably most useful for complex NPR shading and compositing. Like with objects, the node can also access built-in scene properties, like render resolution or FOV of the active camera. Lookup is also attempted in World, similar to how the Object mode checks the Mesh datablock. In Cycles this mode is implemented by replacing the attribute node with the attribute value during sync, allowing constant folding to take the values into account. This means however that materials that use this feature have to be re-synced upon any changes to scene, world or camera. The Eevee version uses a new uniform buffer containing a sorted array mapping name hashes to values, with binary search lookup. The array is limited to 512 entries, which is effectively limitless even considering it is shared by all materials in the scene; it is also just 16KB of memory so no point trying to optimize further. The buffer has to be rebuilt when new attributes are detected in a material, so the draw engine keeps a table of recently seen attribute names to minimize the chance of extra rebuilds mid-draw. Differential Revision: https://developer.blender.org/D15941
2022-10-08Viewport: Enable draw_debug.cc code when WITH_DRAW_DEBUG is onJoseph Eagar
2022-10-07Cleanup: redundant parenthesisCampbell Barton
2022-10-07Cleanup: DRW: Rename ViewInfos to ViewMatricesClément Foucault
This makes sense now that the struct only contains matrices.
2022-10-07DRW: Remove mouse_pixel and is_inverted from ViewInfosClément Foucault
This is part of the effor to simplify the View struct in order to implement multiview rendering. `mouse_pixel` is only use for debug purpose and will be reintroduced later. `is_inverted` is moved to `draw::View`.
2022-10-07DRW: Remove viewport_size from DRWViewClément Foucault
This is part of the effor to simplify the View struct in order to implement multiview rendering.
2022-10-07EEVEE-Next: Use global viewport size instead of DRWView oneClément Foucault
This is part of the effor to simplify the View struct in order to implement multiview rendering.
2022-10-07GPencil: Use global viewport size instead of DRWView oneClément Foucault
This is part of the effor to simplify the View struct in order to implement multiview rendering.
2022-10-07Basic: Use global viewport size instead of DRWView oneClément Foucault
This is part of the effor to simplify the View struct in order to implement multiview rendering.
2022-10-07Overlay: Use global viewport size instead of DRWView oneClément Foucault
This is part of the effor to simplify the View struct in order to implement multiview rendering.
2022-10-07DRW: Remove screen_vecsClément Foucault
These were only a normalized copy of the XY axes of the inverse viewmat. But since the viewmatrix is always normalized we can use it directly.
2022-10-07DRW: Move clipping planes to their own UBOClément Foucault
This is part of the effor to simplify the View struct in order to implement multiview rendering.