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-04-20Cleanup: spelling in commentsCampbell Barton
2022-04-20Cleanup: unused argument warningCampbell Barton
2022-04-19GPU: Fix Adresse Sanitizer errorsClément Foucault
2022-04-19Cleanup: GPUMaterial: Remove GPU_material_is_volume_shaderClément Foucault
2022-04-19PyGPU: remove outdated function 'code_from_builtin'Germano Cavalcante
Since shader sources are now parsed on demand via `GPUShaderCreateInfo`, sources are not available to be read via `GPU_shader_get_builtin_shader_code`. Currently this results in a crash as the code tries to read `NULL` pointers. `GPU_shader_get_builtin_shader_code` was created with the intention of informing the user how a builtin shader works, thus "replacing" detailed documentation. Therefore this function doesn't really have a practical use in an addon. So, instead of updating the function (which would require several changes to the gpu module), remove it and improve the documentation. Release Notes: https://wiki.blender.org/wiki/Reference/Release_Notes/3.2/Python_API#Breaking_Changes Reviewed By: fclem Differential Revision: https://developer.blender.org/D14678
2022-04-19GPU: Replace `GPUMaterialVolumeGrid` by `GPUMaterialAttribute`Clément Foucault
This is to make the codegen and shading nodes object type agnostic. This is essential for flexibility of the engine to use the nodetree as it see fits. The essential volume attributes struct properties are moved to the `GPUMaterialAttribute` which see its final input name set on creation. The binding process is centralized into `draw_volume.cc` to avoid duplicating the code between multiple engines. It mimics the hair attributes process. Volume object grid transforms and other per object uniforms are packed into one UBO per object. The grid transform is now based on object which simplify the matrix preparations. This also gets rid of the double transforms and use object info orco factors for volume objects. Tagging @brecht because he did the initial implementation of Volume Grids.
2022-04-18Cleanup: Clang tidyHans Goudey
- Inconsistent parameter names - Else after return - Braces around statements - Qualified auto - Also (not clang tidy): Pass StringRef by value, unused parameter
2022-04-14Fix crash when loading Blender due to recent changeGermano Cavalcante
Issue introduced in {rB80859a6cb272} Only seen on Windows. The `keyword_parse` lambda function code did not consider `\r` as a whitespace char, resulting in a wrong parse. (More investigation needs to be done).
2022-04-14GPU: Make nodetree GLSL Codegen render engine agnosticClément Foucault
This commit removes all EEVEE specific code from the `gpu_shader_material*.glsl` files. It defines a clear interface to evaluate the closure nodes leaving more flexibility to the render engine. Some of the long standing workaround are fixed: - bump mapping support is no longer duplicating a lot of node and is instead compiled into a function call. - bump rewiring to Normal socket is no longer needed as we now use a global `g_data.N` for that. Closure sampling with upstread weight eval is now supported if the engine needs it. This also makes all the material GLSL sources use `GPUSource` for better debugging experience. The `GPUFunction` parsing now happens in `GPUSource` creation. The whole `GPUCodegen` now uses the `ShaderCreateInfo` and is object type agnostic. Is has also been rewritten in C++. This patch changes a view behavior for EEVEE: - Mix shader node factor imput is now clamped. - Tangent Vector displacement behavior is now matching cycles. - The chosen BSDF used for SSR might change. - Hair shading may have very small changes on very large hairs when using hair polygon stripes. - ShaderToRGB node will remove any SSR and SSS form a shader. - SSS radius input now is no longer a scaling factor but defines an average radius. The SSS kernel "shape" (radii) are still defined by the socket default values. Appart from the listed changes no other regressions are expected.
2022-04-14Metal: GPU_PRIM_LINE_LOOP alternative implementations.Jason Fielder
Prefer using immVertex3f when 3D shaders are used for 2D rendering due to overhead of vertex padding in hardware. CPU overhead is negligible. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14494
2022-04-13Cleanup: Proper printing of a stringSergey Sharybin
Print it as a "%s" so that possible percentage symbols in the error message does not cause issues. Use proper assert (assert(true) is a no-op). Also use `empty()` instead of `length()`. Reviewed with Clement in real life.
2022-04-13pyGPU: Port 'StageInterfaceInfo' and 'ShaderCreateInfo' typesGermano Cavalcante
In order to allow GLSL Cross Compilation across platforms, expose in Python the `GPUShaderCreateInfo` strategy as detailed in https://wiki.blender.org/wiki/EEVEE_%26_Viewport/GPU_Module/GLSL_Cross_Compilation The new features can be listed as follows: ``` >>> gpu.types.GPUShaderCreateInfo. define( fragment_out( fragment_source( push_constant( sampler( typedef_source( uniform_buf( vertex_in( vertex_out( vertex_source( >>> gpu.types.GPUStageInterfaceInfo. flat( name no_perspective( smooth( >>> gpu.shader.create_from_info( ``` Reviewed By: fclem, campbellbarton Differential Revision: https://developer.blender.org/D14497
2022-04-05Refactor: Unify vertex and sculpt colors into newJoseph Eagar
color attribute system. This commit removes sculpt colors from experimental status and unifies it with vertex colors. It introduces the concept of "color attributes", which are any attributes that represents colors. Color attributes can be represented with byte or floating-point numbers and can be stored in either vertices or face corners. Color attributes share a common namespace (so you can no longer have a floating-point sculpt color attribute and a byte vertex color attribute with the same name). Note: this commit does not include vertex paint mode, which is a separate patch, see: https://developer.blender.org/D14179 Differential Revision: https://developer.blender.org/D12587 Ref D12587
2022-04-04Cleanup: ensure space after file named in headersCampbell Barton
Add blank lines after file references to avoid them being interpreted as doc-strings the following declarations.
2022-03-31Cleanup: spelling, trailing space for comment-blocksCampbell Barton
2022-03-30Metal: Adding alternative support for GPU_PRIM_TRI_FAN/LINE_LOOP For Metal ↵Jason Fielder
backend. - Metal uniform array compatibility in DRW module. - Guard OpenGL-specific workarounds and flushes behind GPU_type_matches_ex API guard. Add further render boundaries for render paths called outside of the main loop. Authored by Apple: Michael Parkin-White Ref: T96261 Reviewed By: fclem Differential Revision: https://developer.blender.org/D14438
2022-03-30GPUShaderCreateInfo: Add DepthWrite optionClément Foucault
This option lets specify explicitely how the fragment shader will change the fragment's depth.
2022-03-30GPU: ShaderBuilder: Remove do_static_compilation_ inheritanceClément Foucault
This is because the inheritance is not done before checking if the shader should be statically compiled. Also some inheritance scheme might have intermediate permutation that are not compilable.
2022-03-26GPU: ShaderBuilder: Skip shader compilation for unsupported shaders.Clément Foucault
2022-03-23Fix invalid NULL check in GPU_viewport_unbind_from_offscreenCampbell Barton
Mistake from 1d49293b80446b89b5b12fa0eeefaf14e5051e48.
2022-03-22Cleanup: make format and fix warningJacques Lucke
2022-03-22Metal: Make GLSL shader source MSL compliant alsoJason Fielder
Metal shading language follows the C++ 14 standard and in some cases requires a greater level of explicitness than GLSL. There are also some small language differences: - Explicit type-casts (C++ requirements) - Explicit constant values (C++ requirements, e.g. floating point values using 0.0 instead of 0). - Metal/OpenGL compatibility paths - GLSL Function prototypes - Explicit accessors for vector types when sampling textures. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14378
2022-03-22Metal: Initial Implementation of Metal Backend for GPU Module.Jason Fielder
Adding WITH_METAL option to CMAKE to guard compilation for macOS only. Implemented stub METALBackend to mirror GPUBackend interface and added capabilities initialisation, along with API initialisation paths. Global rendering coordination commands added to backend with GPU_render_begin and GPU_render_end() commands globally wrapping GPU work. This is required for Metal to ensure temporary resources are generated within an NSAutoReleasePool and freed accordingly. Authored by Apple: Michael Parkin-White, Vil Harvey, Marco Giordano, Michael Jones, Morteza Mostajabodaveh, Jason Fielder Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14293
2022-03-22Cleanup: Clang tidyHans Goudey
2022-03-20GPUSource: Fix failure case in the enum preprocessorClément Foucault
Some C headers might define the typedefs of the enum themselves. Even if they are guarded by preprocessor `#if`, our enum preprocessor has no idea of the validity of the statement. So we just bypass if there is a typedef just before any `enum` keywords. Note that the typedef matching is quite fragile.
2022-03-18GPUTexture: Add Cube view as 2D arrayClément Foucault
This is useful to read/write to the textures directly using compute shaders and imageLoad/Store.
2022-03-18GPU: Add indirect dispatch support.Clément Foucault
This uses a StorageBuf as the source of indirect dispatch argument. The user needs to make sure the parameters are in the right order. There is no support for argument offset for the moment as there is no need for it. But this might be added in the future. Note that the indirect buffer is synchronized at the backend level. This is done for practical reasons and because this feature is almost always used for GPU driven pipeline.
2022-03-18GPU: StorageBuf: Add method to clear the buffer in place.Clément Foucault
This is a faster way to clear a buffer instead of reuploading new data. It is equivalent to `memset` and runs directly on the GPU. This is better to clear huge buffers and to avoid the sync cost of data upload.
2022-03-18Cleanup: GPUStorageBuf: Fix header licenseClément Foucault
2022-03-18Cleanup: SSBO: Rename ubo to ssbo in arguments.Clément Foucault
2022-03-18GPU: Add support for stencil buffer texturing mode.Clément Foucault
This adds the possibility to read the stencil buffer inside shaders. This is only available on GL 4.3 so use it accordingly.
2022-03-18GPUTexture: Fix bug in texture view creationClément Foucault
The switch case was based on an uninitialized value.
2022-03-18GPUShaderCreateInfo: Add explicit early_fragment_testClément Foucault
2022-03-18GPUTexture: Expose layer & mip countClément Foucault
2022-03-18DRW: Add support for GPUStorageBufClément Foucault
2022-03-18GPU/GL: Add StorageBuf implementationClément Foucault
Almost 1:1 identical to UniformBuf implementation.
2022-03-18GPUShader: Fix crash when compilation error is a linking errorClément Foucault
2022-03-18Cleanup: Compilation warningsSergey Sharybin
Mainly -Wset-but-unused-variable. Makes default compilation on macOS way less noisy. Differential Revision: https://developer.blender.org/D14357
2022-03-15GPU capabilities: detect max SSBO bindingsKévin Dietrich
This adds detection of the maximum number of shader storage buffer bindings that is supported on the current platform. This can be useful to turn off features that require compute shaders but use more buffer bindings than available. Differential Revision: https://developer.blender.org/D14337
2022-03-11Cleanup: use M_PI_2 and M_PI_4 where possibleHallam Roberts
The constant M_PI_4 is added to GLSL to ensure it works there too. Differential Revision: https://developer.blender.org/D14288
2022-03-11Cleanup: fix source comment typosBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D14307
2022-03-09Cleanup: use ELEM macroCampbell Barton
2022-03-02Cleanup: use back-slash for doxygen commands, color after parametersCampbell Barton
2022-02-26Cleanup: typos in comments.Kévin Dietrich
2022-02-25GPUTexture: Add support for texture viewClément Foucault
This is an OpenGL 4.3 feature that enables creating a texture using a range of the same data as another texture.
2022-02-25GPUTexture: Use immutable storageClément Foucault
This means textures need to have the number of mipmap levels specified upfront. It does not mean the data is immutable. There is fallback code for OpenGL < 4.2. Immutable storage will enables texture views in the future.
2022-02-24GPU: Fix compilation in debug modeClément Foucault
Fixes issue introduced in rB1685b1dba44e02ce1faace4a5de6d6cd0d98ef90
2022-02-24OCIO: Fix mip length in texture creationClément Foucault
Also add an assert to avoid reproducing the error in the future.
2022-02-23Cleanup: Remove repeated word in commentsCampbell Barton
2022-02-22Merge branch 'blender-v3.1-release'Jacques Lucke