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-05Fix T100649: Regression: Environment texture is stretched when added to meshClément Foucault
The new code was not using the correct default attribute. Add access to `g_data.P` through `node_tex_coord_position()` to replace the old `GPU_builtin(GPU_VIEW_POSITION)` which was used before. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15862
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-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-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-19Fix build error on mips64el architectureBrecht Van Lommel
Same as D12194, name "mips" conflicts on such systems.
2022-08-17Cleanup: spelling in commentsCampbell Barton
2022-08-01GPU: Fix failing compute tests.Jeroen Bakker
Tests created GPUTextures with incorrect mipmaps.
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-26Refactor: Extract color attributes as generic attributesHans Goudey
Previously there was a special extraction process for "vertex colors" that copied the color data to the GPU with a special format. Instead, this patch replaces this with use of the generic attribute extraction. This reduces the number of code paths, allowing easier optimization in the future. To make it possible to use the generic extraction system for attributes but also assign aliases for use by shaders, some changes are necessary. First, the GPU material attribute can now store whether it actually refers to the default color attribute, rather than a specific name. This replaces the hack to use `CD_MCOL` in the color attribute shader node. Second, the extraction code checks the names against the default and active names and assigns aliases if the request corresponds to a special active attribute. Finally, support for byte color attributes was added to the generic attribute extraction. Differential Revision: https://developer.blender.org/D15205
2022-07-21GPU: Fix compilation with WITH_GPU_BUILDTIME_SHADER_BUILDER optionClément Foucault
2022-07-21Cleanup: formatCampbell Barton
2022-07-21Cleanup: spelling in comments, typos in tool-tipsCampbell Barton
2022-07-19Metal: Add license header to new filesClément Foucault
2022-07-19Metal: MTLUniformBuffer module implementationJason Fielder
Initial implementation. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Differential Revision: https://developer.blender.org/D15357
2022-07-19Metal: MTLQueryPool implementation adding support for occlusion queries.Jason Fielder
When a query begins, the current visibility result buffer needs to be associated with the currently active Render Pass. The MTLContext and MTLCommandBuffer are responsible for ensuring new render pass objects are created if the visibility state changes. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D15356
2022-07-19EEVEE: use mipmaps of compressed textures (DDS)Ethan-Hall
Currently Blender generates mipmaps that override the existing ones. This patch disables generating new mipmaps for compressed textures. Reviewed By: fclem Differential Revision: https://developer.blender.org/D14459
2022-07-16Fix error in assertion after 92a99c14965905e73f049bc1f92b597a903977fcCampbell Barton
2022-07-15Fix Eevee backround render crash after recent changes from D15463Brecht Van Lommel
Backend initialization needs to be delayed until after the OpenGL context is created. This worked fine in foreground mode because the OpenGL context already exists for the window at the point GPU_backend_init_once was called, but not for background mode. Create the backend just in time in GPU_context_create as before, and automatically free it when the last context id discarded. But check if any GPU backend is supported before creating the OpenGL context. Ref D15463, D15465
2022-07-15Fix compiler error in debug builds after 1cf465bbc331Julian Eisel
2022-07-15Fix GPU backend deleting resources without an active contextBrecht Van Lommel
This causes an assert with libepoxy, but was wrong already regardless. Refactor logic to work as follows: * GPU_exit() deletes backend resources * Destroy UI GPU resources with the context active * Call GPU_backend_exit() after deleting the context Ref D15291 Differential Revision: https://developer.blender.org/D15465
2022-07-15Fix T99706: Crash rendering with headless buildsCampbell Barton
When rendering with headless builds, show an error instead of crashing. Previously GPU_backend_init was called indirectly from DRW_opengl_context_create, a new function is now called from the window manager (GPU_backend_init_once), so it's possible to check if the GPU has a back-end. This also disables the `bgl` Python module when building WITH_HEADLESS. Reviewed By: fclem Ref D15463
2022-07-15GPU: Fix shader builder on hardware that does not have all featuresClément Foucault
2022-07-15Cleanup: GPU: Replace NULL by nullptr from C++ filesClément Foucault
2022-07-15GPU: Remove USD dependency from shader_builder.Ray Molenkamp
Dependency was added as shader builder depended to blenkernel as an umbrella, in stead of adding the actual dependencies it required.
2022-07-14Cleanup: spelling in commentsCampbell Barton
Also remove duplicate comments in bmesh_log.h, caused by automated comment relocation in [0]. [0]: c4e041da23b9c45273fcd4874308c536b6a315d1
2022-07-11GPU: add BUIDTIME to WITH_GPU_SHADER_BUILDERJeroen Bakker
Adds a better name that describes when it is used. The GPU_SHADER_BUILDER is a buildtime tool for developers to pre-validate GLSL (and in the overseen future pre-compile to SpirV). We don't see that this needs to become a required step in the future so WITH_GPU_BUILDTIME_SHADER_BUILDER is more descriptive name.
2022-07-11GPU: Update shader builder stubs.Jeroen Bakker
Fixes workflow when using WITH_GPU_SHADER_BUILDER=On.
2022-07-07Curves: Add sculpt selection overlayHans Goudey
This commit adds visualization to the selection in curves sculpt mode. Previously it was only possible to see the selection when it was connected to a material. In order to obstruct the users vision as little as possible, the selected areas of the curve are left as is, but a dark overlay is drawn over unselected areas. To make it work, the overlay requests the selection attribute and then ensures that the evaluation is complete for curves. Then it retrieves the evaluated selection GPU texture and passes that to the shader. This reuses the existing generic attribute extraction system because there currently wouldn't be any benefits to dealing with selection separately, and because it avoids duplication of the logic that extracts attributes from curves and evaluates them if necessary. Differential Revision: https://developer.blender.org/D15219
2022-07-05GPU: add missing license headerCampbell Barton
2022-07-04METAL: Add license header to new filesClément Foucault
2022-07-04Cleanup: 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-07-01Cleanup: GPUCodegen: Remove unused variablesClément Foucault
2022-07-01GPUMaterial: Remove the max attribute checkClément Foucault
This is needed to make the GPU_attribute used as generic input mechanism.
2022-06-30EEVEE-Next: Add Film and RenderBuffers moduleClément Foucault
This modules handles renderpasses allocation and filling. Also handles blitting to viewport framebuffer and render result reading. Changes against the old implementation: - the filling of the renderpasses happens all at once requiring only 1 geometry pass. - The filtering is optimized with weights precomputed on CPU and reuse of neighboor pixels. - Only one accumulation buffer for renderpasses (no ping-pong). - Accumulation happens in one pass for every passes using a single dispatch or fullscreen triangle pass. TAA and history reprojection is not yet implemented. AOVs support is present but with a 16 AOV limit for now. Cryptomatte is not yet implemented.
2022-06-30Cleanup: colon after params, move text into public doc-strings, spellingCampbell Barton
2022-06-30Fix T98886: PBVH_GRIDS ignores face smooth flag on first gpu buildJoseph Eagar
2022-06-30Cleanup: spelling in commentsCampbell Barton
2022-06-29Cleanup: Clang tidy, unused variable warningHans Goudey
2022-06-29Fix T98825: EEVEE: Regression: Buffer overflow in sample name bufferClément Foucault
This happened because of the false assumption that `std::array<char, 32>` would be treated as a container and not relocate their content if the `Vector` would grow. Replacing with actual object allocation fixes the issue. Candidate for 3.2.1 corrective release.
2022-06-29Cleanup: spelling in commentsCampbell Barton
2022-06-28Cleanup: GPUShader: Fix missing space in debug messageClément Foucault
2022-06-28Cleanup: fix various typosluzpaz
Differential Revision: https://developer.blender.org/D15304
2022-06-28Cleanup: compiler warnings, remove unused functionsCampbell Barton
2022-06-27Cleanup: formatCampbell Barton
2022-06-27MTLCommandBufferState for coordinating GPU workload submission and render ↵Jason Fielder
pass coordination. MTLFrameBuffer has been implemented to support creation of RenderCommandEncoders, along with supporting functionality in the Metal Context. Optimisation stubs for GPU_framebuffer_bind_ext has been added, which enables specific assignment of attachment load-store ops at the bind level, rather than on a framebuffer object as a whole. Begin and end frame markers are used to encapsulate frame boundaries for explicit workload submission. This is required for explicit APIs where implicit flushing of work does not occur. Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D15027
2022-06-22Cleanup: remove redundant GPU headersCampbell Barton
2022-06-21Fix crash editing anisotropic filter preference from background modeBrecht Van Lommel