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-02Fix T100163: Eevee: Regression: Displacement maps affected by rotationClément Foucault
This was an oversight as the matrix multiplication present in original code was reversed. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15858
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-02Fix T99528: EEVEE: Regression: Faulty shaders when using Volume Info nodeClément Foucault
Workaround the issue by adding an intermediate function. This is usually the case when working with attributes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15860
2022-09-02Realtime Compositor: Implement dilate erode nodeOmar Emara
This patch implements the dilate/erode node for the realtime compositor. Differential Revision: https://developer.blender.org/D15790 Reviewed By: Clement Foucault
2022-09-02Fix T98190: EEVEE: Very slow rendering on Intel HD Graphics 4400Clément Foucault
This particular GPU driver does not constant fold all the way in order to discard the unused branches. To workaround that, we introduce a series of material flag that generates defines that only keep used branches. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15852
2022-09-02Fix build error after recent Metal GPU commitHans Goudey
These definitions were in the patch but didn't make it to the commit.
2022-09-02Cleanup: Remove duplicate declaration in GPU capabilitiesHans Goudey
2022-09-01Metal: MTLShader and MTLShaderGenerator implementation.Thomas Dinges
Full support for translation and compilation of shaders in Metal, using GPUShaderCreateInfo. Includes render pipeline state creation and management, enabling all standard GPU viewport rendering features in Metal. Authored by Apple: Michael Parkin-White, Marco Giordano Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D15563
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-01Metal: MTLIndexBuf class implementation.Jason Fielder
Implementation also contains a number of optimisations and feature enablements specific to the Metal API and Apple Silicon GPUs. Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D15369
2022-09-01Cleanup: make formatJacques Lucke
2022-09-01Node Editor: Visual tweaks to node linksLeon Schittek
Several visual tweaks to node links to make them overall fit in better with the look of the node editor: - Change the link thickness with the zoom level to a certain degree. - Remove the fuzziness of the node link and its shadow/outline. - The link outline color can now be made transparent. - Add circles at the end of dragged links when connecting to sockets. - Improve the banding of the color interpolation along the link. - Adjust the spacing of dashes along straight node links. Reviewed By: Pablo Vazquez, Hans Goudey Differential Revision: http://developer.blender.org/D15036
2022-09-01GPUMaterial: Make uniform attrib precompute hash and attribute safe nameClément Foucault
This avoids redundant operation at draw time. The per attrib hash is to be used with the future implementation.
2022-09-01PyGPU: GPUShader: implementation of 'attrs_info_get' methodGermano Cavalcante
With the new `attrs_info_get` method, we can get information about the attributes used in a `GPUShader` and thus have more freedom in the automatic creation of `GPUVertFormat`s Reviewed By: fclem, campbellbarton Differential Revision: https://developer.blender.org/D15764
2022-08-31Cleanup: Use const for node data in compositorHans Goudey
Push the const usage a bit further for compositor nodes, so that they are more explicit about not modifying original nodes from the editor. Differential Revision: https://developer.blender.org/D15822
2022-08-31Mesh: Move material indices to a generic attributeHans Goudey
This patch moves material indices from the mesh `MPoly` struct to a generic integer attribute. The builtin material index was already exposed in geometry nodes, but this makes it a "proper" attribute accessible with Python and visible in the "Attributes" panel. The goals of the refactor are code simplification and memory and performance improvements, mainly because the attribute doesn't have to be stored and processed if there are no materials. However, until 4.0, material indices will still be read and written in the old format, meaning there may be a temporary increase in memory usage. Further notes: * Completely removing the `MPoly.mat_nr` after 4.0 may require changes to DNA or introducing a new `MPoly` type. * Geometry nodes regression tests didn't look at material indices, so the change reveals a bug in the realize instances node that I fixed. * Access to material indices from the RNA `MeshPolygon` type is slower with this patch. The `material_index` attribute can be used instead. * Cycles is changed to read from the attribute instead. * BMesh isn't changed in this patch. Theoretically it could be though, to save 2 bytes per face when less than two materials are used. * Eventually we could use a 16 bit integer attribute type instead. Ref T95967 Differential Revision: https://developer.blender.org/D15675
2022-08-31GPUCapabilities: Add GPU_shader_draw_parameters_supportClément Foucault
This checks for the availability of `gl_BaseInstanceARB` or equivalent. Disabling for any workaround that disables shader_image_load_store_support as a preventive measure.
2022-08-31Cleanup: formatCampbell Barton
2022-08-31Node: Mix nodeCharlie Jolly
This patch is a response to T92588 and is implemented as a Function/Shader node. This node has support for Float, Vector and Color data types. For Vector it supports uniform and non-uniform mixing. For Color it now has the option to remove factor clamping. It replaces the Mix RGB for Shader and Geometry node trees. As discussed in T96219, this patch converts existing nodes in .blend files. The old node is still available in the Python API but hidden from the menus. Reviewed By: HooglyBoogly, JacquesLucke, simonthommes, brecht Maniphest Tasks: T92588 Differential Revision: https://developer.blender.org/D13749
2022-08-30GPUBatch: Add multi_draw_indirect capability and indirect buffer offsetClément Foucault
This is for completion and to be used by the new draw manager.
2022-08-30GPUTexture: Add type correct GPU_SAMPLER_MAX constant for C++Clément Foucault
This avoid having to cast when using it in `.cc` and `.hh` files.
2022-08-30GPUMaterial: Expose debug name getterClément Foucault
This also makes it mandatory, but reduced length for release.
2022-08-30GPUCodegen: Do not rely on auto resource locationClément Foucault
This allows the render engine to expect non-overlapping resources in the generated create info. Textures are indexed from 0 and up. Nodetree ubo is bound to slot 0. Uniform attributes ubo is bound to slot 1.
2022-08-30GPUBatch: Add draw parameter getterClément Foucault
This is used to populate indirect draw commands in the draw manager.
2022-08-30GPUStorageBuf: Add `read()` function to readback buffer data to hostClément Foucault
This is not expected to be fast. This is only for inspecting the content of the buffer for debugging or validation purpose.
2022-08-30Cleanup: formatCampbell Barton
2022-08-30Cleanup: Use const for custom data layersHans Goudey
2022-08-29Fix compilation issue in MTLQueryPool::allocate_buffer.Jeroen Bakker
This compilation issue happened due to multiple patches being handled at the same time one overwriting a correction of the other.
2022-08-29Cleanup: Add missing override keyword in mtl_backend.Jeroen Bakker
2022-08-28Cleanup: replace NULL with nullptr for C++ filesCampbell Barton
2022-08-27CMake: include missing header filesCampbell Barton
2022-08-26Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-26Fix T55284: error in Hybrid MultiFractal Musgrave textureLuis Pereira
The calculation was revised to address two issues: * Discontinuities occurring when detail was a non-integer greater than 2. * Levels of detail in the interval [0,1) repeating the levels of detail in the interval [1,2). This fixes Cycles, Eevee and geometry nodes. Differential Revision: https://developer.blender.org/D15785
2022-08-23Cleanup: Avoid using invalid attribute domainHans Goudey
The number of attribute domains isn't an attribute domain, so storing ATTR_DOMAIN_NUM in a variable with an eAttrDomain type isn't correct. In the cases it was used, the value wouldn't be accessed anyway.
2022-08-23Fix: Compositor results are fuzzy with bilinear filteringOmar Emara
The realtime compositor sometimes produces fuzzy results when the interpolation is set to bilinear. This was due to the domain realization shader, which incorrectly sampled the input image. This patch fixes such fuzziness by introducing a 0.5 offset to evaluate the sampler at the center of pixels. Additionally, it makes sure the centring offset is an integer offset by taking its floor, retaining the previous 0.5 offset even with the difference in size is odd.
2022-08-23Cleanup: match names between functions & declarationsCampbell Barton
2022-08-22Fix: Memory leak in realtime compositorOmar Emara
There was a memory leak in the GPU code generator for the compositor output. It was just due to a missing free in the GPU code generator destructor, so this patch makes sure it is freed.
2022-08-19Merge branch 'blender-v3.3-release'Brecht Van Lommel
2022-08-19Fix build error on mips64el architectureBrecht Van Lommel
Same as D12194, name "mips" conflicts on such systems.
2022-08-19Fix ubsan warnings about indexing into null pointersLoren Osborn
Ref T99382 Differential Revision: https://developer.blender.org/D15390
2022-08-18Realtime Compositor: Implement bilateral blur nodeOmar Emara
This patch implements the bilateral blur node for the realtime compositor. Differential Revision: https://developer.blender.org/D15674 Reviewed By: Clement Foucault
2022-08-18Realtime Compositor: Implement despeckle nodeOmar Emara
This patch implements the despeckle node for the realtime compositor. Differential Revision: https://developer.blender.org/D15673 Reviewed By: Clement Foucault
2022-08-18Realtime Compositor: Implement directional blur nodeOmar Emara
This patch implements the directional blur node for the realtime compositor. Differential Revision: https://developer.blender.org/D15672 Reviewed By: Clement Foucault
2022-08-18Realtime Compositor: Implement filter nodeOmar Emara
This patch implements the filter node for the realtime compositor. Differential Revision: https://developer.blender.org/D15661 Reviewed By: Clement Foucault
2022-08-18Realtime Compositor: Implement bokeh image nodeOmar Emara
This patch implements the bokeh image node for the realtime compositor. Differential Revision: https://developer.blender.org/D15660 Reviewed By: Clement Foucault
2022-08-17Merge branch 'blender-v3.3-release'Campbell Barton
2022-08-17Cleanup: spelling in commentsCampbell Barton
2022-08-17Cleanup: strip blank lines around comment blocksCampbell Barton
2022-08-16GPU: ShaderCreateInfo: Use variadic template instead of default argumentsClément Foucault
This should reduce the issue described in T100431. This is also cleaner and without arbitrary argument limit.
2022-08-15EEVEE-Next: HiZ Buffer: New implementationClément Foucault
This new implementation does all downsampling in a single compute shader dispatch, removing a lot of complexity from the previous recursive downsampling. This is heavilly inspired by the Single-Pass-Downsampler from GPUOpen: https://github.com/GPUOpen-Effects/FidelityFX-SPD However I do not implement all the optimization bits as they require vulkan (GL_KHR_shader_subgroup) and is not as versatile (it is only for HiZ). Timers inside renderdoc report ~0.4ms of saving on a 2048*1024 render for the whole downsampling. Note that the previous implementation only processed 6 mips where the new one processes 8 mips. ``` EEVEE ~1.0ms EEVEE-Next ~0.6ms ``` Padding has been bumped to be of 128px for processing 8 mips. A new debug option has been added (debug value 2) to validate the HiZ.