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-09-23Cleanup: fix compiler errorsJacques Lucke
2022-09-23Depsgraph: generalize passing parameters to depsgraph object iteratorJacques Lucke
This makes it easier to pass more parameters to the iterator in the future. Differential Revision: https://developer.blender.org/D16047
2022-09-22GPU: Ensure rendering operations occur within GPU render boundaries.Jason Fielder
This is required by the Metal backend to perform flushing of temporary objective-C resources. This is implemented as a global autoreleasepool, and is to ensure consistency such that all rendering operations, whether called via events, or via main loop will be within an autoreleasepool. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Differential Revision: https://developer.blender.org/D15900
2022-09-22Metal: MTLContext implementation and immediate mode rendering support.Thomas Dinges
MTLContext provides functionality for command encoding, binding management and graphics device management. MTLImmediate provides simple draw enablement with dynamically encoded data. These draws utilise temporary scratch buffer memory to provide minimal bandwidth overhead during workload submission. This patch also contains empty placeholders for MTLBatch and MTLDrawList to enable testing of first pixels on-screen without failure. The Metal API also requires access to the GHOST_Context to ensure the same pre-initialized Metal GPU device is used by the viewport. Given the explicit nature of Metal, explicit control is also needed over presentation, to ensure correct work scheduling and rendering pipeline state. Authored by Apple: Michael Parkin-White Ref T96261 (The diff is based on 043f59cb3b5835ba1a0bbf6f1cbad080b527f7f6) Reviewed By: fclem Differential Revision: https://developer.blender.org/D15953
2022-09-21Fix EEVEE: Screen Space Refraction Artefacts caused by viewport aspect ratioClément Foucault
This was caused by the vertical/horizontal clasification being done in NDC space which wasn't respecting the Aspect ratio. Multiplying the test vector by the target size fixes the issue.
2022-09-16Revert "EEVEE: Fix volumetric resolve in large scenes."Jeroen Bakker
This reverts commit 34051fcc12f388375697dcfc6da53e9909058fe1. Although for normal use this doesn't make a difference. But when working with huge scenes and volumetrics + NVIDIA it made a work-around not possible anymore. For the heist production we added a fix on the render-farm (enable GPU workarounds). {rB34051fcc12f388375697dcfc6da53e9909058fe1} made another work-around not accessible anymore and it and was requested to revert this change.
2022-09-16Cleanup: spelling in commentsCampbell Barton
2022-09-13EEVEE: Fix volumetric resolve in large scenes.Jeroen Bakker
On NVIDIA volumetric resolve failed for large production scenes. The result would remove most color from the final render. The cause seems to be a faulty driver. This change ported the fragment shader to a compute shader which would select a different compiler branch and didn't show the error.
2022-09-09Cleanup: spelling in commentsCampbell Barton
2022-09-06Cleanup: spelling in comments, formatting, move comments into headersCampbell Barton
2022-09-05IDMAnagement: Add owner ID pointer to embedded ones.Bastien Montagne
Add a dedicated `owner_id` pointer to ID types that can be embedded (Collections and NodeTrees), and modify slightly come code to make handling those more safe and consistent. This implements first part of T69169. Reviewed By: brecht Differential Revision: https://developer.blender.org/D15838
2022-09-05EEVEE: Fix attributes node on Alpha Clip/Hashed materialsClément Foucault
This was cause by a missing implementation of some post processing attribute functions. Leading to unresolved reference.
2022-09-05Merge branch 'blender-v3.3-release'Clément Foucault
2022-09-05Fix T100775: Regression: EEVEE world environment is stretched when using ↵Clément Foucault
orthographic view It was using normalized vector instead of `viewCameraVec` which account for orthographic views. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15861
2022-09-05Fix T100788 Regression: EEVEE wrong normal map on backfacesClément Foucault
This was caused by rB07cf3ce92fa2. It was missing a sign flip.
2022-09-02EEVEE: Fix Symbol error in SH_L2 CaculationRaphaelBelmont
The caculation of 7th SH coefficient need a negative sign Reviewed By: fclem Differential Revision: https://developer.blender.org/D15635
2022-09-02DRW-Next: Add uniform attributes (object attributes) supportClément Foucault
This replaces the direct shader uniform layout declaration by a linear search through a global buffer. Each instance has an attribute offset inside the global buffer and an attribute count. This removes any padding and tighly pack all uniform attributes inside a single buffer. This would also remove the limit of 8 attribute but it is kept because of compatibility with the old system that is still used by the old draw manager.
2022-09-02Merge branch 'blender-v3.3-release'Clément Foucault
# Conflicts: # release/scripts/addons
2022-09-02Fix T100377: EEVEE: Regression 3.2 normalmap node brokenClément Foucault
This was caused by un-wanted normalization. This is a requirement of the MikkTspace. The issue is that g_data.N is expected to be normalized by many other functions and overriden by bump displacement. Adding a new global variable containing the interpolated normal fixes the issue AND make it match cycles behavior better (mix between bump and interpolated normal).
2022-09-01Metal: Minimum per-vertex stride, 3D texture size + Transform feedback ↵Jason Fielder
GPUCapabilities expansion. - Adding in compatibility paths to support minimum per-vertex strides for vertex formats. OpenGL supports a minimum stride of 1 byte, in Metal, this minimum stride is 4 bytes. Meaing a vertex format must be atleast 4-bytes in size. - Replacing transform feedback compile-time check to conditional look-up, given TF is supported on macOS with Metal. - 3D texture size safety check added as a general capability, rather than being in the gl backend only. Also required for Metal. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14510
2022-09-01Tweak cryptomatte channels naming to improve interoperabilitySergey Sharybin
Use lowercase rgba channel names which still by-passes lossy nature of DWA compression and which also keeps external compositing tools happy. Thanks Steffen Dünner for testing this patch! Differential Revision: https://developer.blender.org/D15834
2022-09-01Fix cryptomatte passes saved lossy into multilayer EXRSergey Sharybin
The DWA compression code in OpenEXR has hardcoded rules which decides which channels are lossy or lossless. There is no control over these rules via API. This change makes it so channel names of xyzw is used for cryptomatte passes in Cycles. This works around the hardcoded rules in the DWA code making it so lossless compression is used. It is important to use lower case y channel name as the upper case Y uses lossy compression. The change in the channel naming also makes it so the write code uses 32bit for the cryptomatte even when saving half-float EXR. Fixes T96933: Cryptomatte layers saved incorrectly with EXR DWA compression Fixes T88049: Cryptomatte EXR Output Bit Depth should always be 32bit Differential Revision: https://developer.blender.org/D15823
2022-08-31Fix T100700: Compositor crashes when disabled then enabledOmar Emara
The viewport compositor crashes when it is disabled then enabled after the compositor node tree is edited. This happens because the compositor engine uses the view_update callback of the draw engine type to detect changes in the node tree and reset its state for future evaluation. However, the draw manager only calls the view_update callback for enabled engines, so the compositor never receives the needed updates to properly reset its state and then crashes at draw time. This patch call the view_update callback for all registered engines regardless if they are enabled or not, that way, they always receive the potentially important updated needed to maintain a correct state. Aside from the compositor engine, this change affects the EEVEE and Workbench engines because they are the only engines that utilizes this callback. However, both of them only reset a flag that is checked at draw time. So the change should have no side effects. For the EEVEE engine, we just add a null check in case it was not instanced, while Workbench already have the appropriate null check. Differential Revision: https://developer.blender.org/D15821 Reviewed By: Clement Foucault
2022-08-26Merge branch 'blender-v3.3-release'Philipp Oeser
2022-08-26Fix T100602: Incoming Vector in world shader for Eevee is invertedPhilipp Oeser
Regression from {rBf4d7ea2cf61} where the direction was flipped. Maniphest Tasks: T100602 Differential Revision: https://developer.blender.org/D15779
2022-08-17Cleanup: Remove redundant use of evaluated non-mesh objectsHans Goudey
Metaball, curve, text, and surface objects use the geometry component system to add evaluated mesh object instances to the dependency graph "for render engine" iterator. Therefore it is unnecessary to process those object types in these loops-- it would either be redundant work or a no-op.
2022-08-17Metaball: Evaluate metaball objects as mesh componentsHans Goudey
With the ultimate goal of simplifying drawing and evaluation, this patch makes the following changes and removes code: - Use `Mesh` instead of `DispList` for evaluated basis metaballs. - Remove all `DispList` drawing code, which is now unused. - Simplify code that converts evaluated metaballs to meshes. - Store the evaluated mesh in the evaluated geometry set. This has the following indirect benefits: - Evaluated meshes from metaball objects can be used in geometry nodes. - Renderers can ignore evaluated metaball objects completely - Cycles rendering no longer has to convert to mesh from `DispList`. - We get closer to removing `DispList` completely. - Optimizations to mesh rendering will also apply to metaball objects. The vertex normals on the evaluated mesh are technically invalid; the regular calculation wouldn't reproduce them. Metaball objects don't support modifiers though, so it shouldn't be a problem. Eventually we can support per-vertex custom normals (T93551). Differential Revision: https://developer.blender.org/D14593
2022-08-17Cleanup: strip blank lines around comment blocksCampbell Barton
2022-08-15Cleanup: fix typosBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D15680
2022-08-09DRW: DebugDraw: Port module to C++ and add GPU capabilitiesClément Foucault
This is a complete rewrite of the draw debug drawing module in C++. It uses `GPUStorageBuf` to store the data to be drawn and use indirect drawing. This makes it easier to do a mirror API for GPU shaders. The C++ API class is exposed through `draw_debug.hh` and should be used when possible in new code. However, the debug drawing will not work for platform not yet supporting `GPUStorageBuf`. Also keep in mind that this module must only be used in debug build for performance and compatibility reasons.
2022-08-02EEVEE: Depth of field: Fix incorrect variance occlusionClément Foucault
The change is likely not noticeable.
2022-08-01Eevee: Add support of rendering curves with cryptomatte.Jeroen Bakker
There were 2 errors. 1. hair code was used to draw curves 2. vertex shader wasn't aware of curves and failed to compile.
2022-07-15Fix: Move DRW_shgroup_add_material_resources(grp, mat) to after the ↵Martijn Versteegh
null-check for grp. Reviewed By: fclem Maniphest Tasks: T99646 Differential Revision: https://developer.blender.org/D15436
2022-07-15Fix T99606: Regression: TexCoordinate losing precision far away from originClément Foucault
Same root cause as T99128. The fix also needed to be done in another place.
2022-07-11Cleanup: spelling in commentsCampbell Barton
2022-07-01Metal: MTLMemoryManager implementation includes functions which manage ↵Jason Fielder
allocation of MTLBuffer resources. The memory manager includes both a GPUContext-local manager which allocates per-context resources such as Circular Scratch Buffers for temporary data such as uniform updates and resource staging, and a GPUContext-global memory manager which features a pooled memory allocator for efficient re-use of resources, to reduce CPU-overhead of frequent memory allocations. These Memory Managers act as a simple interface for use by other Metal backend modules and to coordinate the lifetime of buffers, to ensure that GPU-resident resources are correctly tracked and freed when no longer in use. Note: This also contains dependent DIFF changes from D15027, though these will be removed once D15027 lands. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D15277
2022-06-30Cleanup: Remove scene frame macros (`CFRA` et al.)Julian Eisel
Removes the following macros for scene/render frame values: - `CFRA` - `SUBFRA` - `SFRA` - `EFRA` These macros don't add much, other than saving a few characters when typing. It's not immediately clear what they refer to, they just hide what they actually access. Just be explicit and clear about that. Plus these macros gave read and write access to the variables, so eyesores like this would be done (eyesore because it looks like assigning to a constant): ``` CFRA = some_frame_nbr; ``` Reviewed By: sergey Differential Revision: https://developer.blender.org/D15311
2022-06-30Cleanup: spelling in commentsCampbell Barton
2022-06-29Fix T98697: EEVEE: Regression: Missing custom property from volumetricsClément Foucault
The resource binding were missing from the shading group (`shgroup->uniform_attrs`), leading to no custom property UBO creation (`drw_uniform_attrs_pool_update`) when issuing the drawcall, resulting in a missing UBO bind. The fix make sure to no duplicate the bindings by creating a simple shader bind instead of a `GPUMaterial` bind. Candidate for 3.2.1 corrective release.
2022-06-29Fix T99128: EEVEE: Regression: Pixelated Environment TextureClément Foucault
Use view position to retreive world space direction to retain float precision. Candidate for 3.2.1 corrective release.
2022-06-29Fix T99138: EEVEE: Regression: World volume shader incorrect texture coordsClément Foucault
The ORCO property was not being properly initialized in this case. Candidate for 3.2.1 corrective release.
2022-06-28DRW: Curve: Fix wrong UBO alignmentClément Foucault
This was preventing correct attribute rendering with multiple attributes. Since the `CurveInfos` struct is used for data sharing between C++ and GLSL and inside a UBO it needs to obey the `std140` alignment rules which states that arrays of scalars are padded to the size of `vec4` for each array entry.
2022-06-21Cleanup: remove unneeded code in eevee_bloom.Jeroen Bakker
This had to be added to the previous commit.
2022-06-21Fix T98972: EEVEE Bloom Pass Outputs Final Image Instead of Bloom.Jeroen Bakker
Regression introduced by {rBca37654b6327}. This commit reversed the order of loading uniforms. The bloom renderpass used the previous loading order to overwrite an existing uniform (bloomBaseAdd). Due to the new ordering this doesn't work anymore where the render pass outputted an image similar to the final image. This was fixed by loading the correct value for bloomAddBase and remove the rewrite.
2022-06-20Fix T99019 EEVEE: Regression: Specular BSDF does not apply occlusionClément Foucault
Since the occlusion input is going to be removed in EEVEE-Next, I just added a temporary workaround. The occlusion is passed as SSS radius as the Specular BSDF does not use it. The final result matches 3.1 release
2022-06-17Fix T98663: Eevee compilation error cryptomatte shaders.Jeroen Bakker
On MacOS Eevee cyptomatte shaders fails as it doesn't ignore the `attrib_load` parameter. I validated that removind the parameter works on Linux/AMD and MacOS Intel. It could be that there are other platforms that require the dummy parameter. If this should use a forward declaration and implement an emoty function in the cryptomatte vertex shader.
2022-06-07Merge branch 'blender-v3.2-release'Clément Foucault
# Conflicts: # source/blender/draw/engines/eevee/shaders/volumetric_vert.glsl
2022-06-07Fix EEVEE: Shader error when using volume temperature or color attributesClément Foucault
This bug was unreported. This was triggering a linking error caused by the vertex shader not having a local version of `attr_load_temperature_post` and `attr_load_color_post`.
2022-06-07Cleanup: spelling in comments, additional white spaceCampbell Barton
2022-06-01Cleanup: spelling in comments, use doxy sectionsCampbell Barton