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-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-02-04GPUShader: Improve error/warning logging experienceClément Foucault
Thanks to the new `ShaderCreateInfo` we now include source files without any modification. This let us query which are the source files passed to the `print_log` function. The log will now include a file with row and column number which is interpreted as a link in most IDE. DEBUG_CONTEXT_LINES will add more lines around the error lines for more context. This is also useful if the error line is imprecise (because of driver bugs) and the reported line is not sufficient to know the location of the error. The DEBUG_DEPENDENCIES option will display the list of included files in the shader sources. Note that it will not print generated source. This commit also fixes some issues with unhelpful logs, bogus row & column numbers, other error format, and bug if row was 0.
2022-01-25Draw: Migrate hair refine compute shader to use create info.Jeroen Bakker
This patch migrates the draw manager hair refine compute shader to use GPUShaderCreateInfo. Reviewed By: fclem Differential Revision: https://developer.blender.org/D13915
2022-01-17Revert "Revert "GPUShaderCreateInfo for interface abstraction""Jeroen Bakker
This reverts commit edee5a947b7ea3e1324aa334a22c7c9bbf47f5f7. Fixes compilation error (Missing file BLI_float2.hh)
2022-01-17Revert "GPUShaderCreateInfo for interface abstraction"Jeroen Bakker
This reverts commit 8fb2ff458ba579dba08bfdf57d043ad158b5db07. Missing some files.
2022-01-17GPUShaderCreateInfo for interface abstractionJeroen Bakker
This is a first part of the Shader Create Info system could be. A shader create info provides a way to define shader structure, resources and interfaces. This makes for a quick way to provide backend agnostic binding informations while also making shader variations easy to declare. - Clear source input (only one file). Cleans up the GPU api since we can create a shader from one descriptor - Resources and interfaces are generated by the backend (much simpler than parsing). - Bindings are explicit from position in the array. - GPUShaderInterface becomes a trivial translation of enums and string copy. - No external dependency to third party lib. - Cleaner code, less fragmentation of resources in several libs. - Easy to modify / extend at runtime. - no parser involve, very easy to code. - Does not hold any data, can be static and kept on disc. - Could hold precompiled bytecode for static shaders. This also includes a new global dependency system. GLSL shaders can include other sources by using #pragma BLENDER_REQUIRE(...). This patch already migrated several builtin shaders. Other shaders should be migrated one at a time, and could be done inside master. There is a new compile directive `WITH_GPU_SHADER_BUILDER` this is an optional directive for linting shaders to increase turn around time. What is remaining: - pyGPU API {T94975} - Migration of other shaders. This could be a community effort. Reviewed By: jbakker Maniphest Tasks: T94975 Differential Revision: https://developer.blender.org/D13360
2022-01-07Cleanup: remove redundant const qualifiers for POD typesCampbell Barton
MSVC used to warn about const mismatch for arguments passed by value. Remove these as newer versions of MSVC no longer show this warning.
2022-01-06Cleanup: Clang-tidy: modernize-redundant-void-argAaron Carlisle
2021-06-29Cleanup: GPU Shader Log Parsing.Jeroen Bakker
- Added functions to check if the cursor is at a number. - Added function to parse a number. - Joined skip_separator functions. - Added function to check if cursor is at any given set of characters.
2021-06-28GPU: Refactored +cleanup compilation log parsing.Jeroen Bakker
Old implementation has a single parser of many different formats. With the introduction of Vulkan this would lead to another parser in the same function. This patch separates the log parsing using a visitor pattern so the log parsing can be configured per GPU backend or even per driver. With Vulkan we manage the compiler our self so the parsing will become more straight forward. The OpenGL part depends on many factors (OS, Driver) and perhaps even GPU.
2021-05-26GPU: Compute Pipeline.Jeroen Bakker
With the compute pipeline calculation can be offloaded to the GPU. This patch only adds the framework for compute. So no changes for users at this moment. NOTE: As this is an OpenGL4.3 feature it must always have a fallback. Use `GPU_compute_shader_support` to check if compute pipeline can be used. Check `gpu_shader_compute*` test cases for usage. This patch also adds support for shader storage buffer objects and device only vertex/index buffers. An alternative that had been discussed was adding this to the `GPUBatch`, this was eventually not chosen as it would lead to more code when used as part of a shading group. The idea is that we add an `eDRWCommandType` in the near future. Reviewed By: fclem Differential Revision: https://developer.blender.org/D10913
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-01-04Cleanup: docy comments beginning with '/**' don't end with '**/'Campbell Barton
2020-11-30Fix T83203 BGL: shader.program wrongly always returns 0Clément Foucault
This was a leftover from the 2.91 GPU module refactor. This is an exception that should be removed when we remove BGL.
2020-10-24GPU: Use CLOG to for debug outputClément Foucault
This removes the escape color control caracters when the output does not supports it (i.e: file output, windows cmd).
2020-09-08GPU: Cleanup implementation castsClément Foucault
- Use the syntactic wrap/unwrap method to make code more readable. - Update comment about hidden struct behind opaque types. - Cleanup GPUDrawList type.
2020-09-06GPUVertBuf: Make GPUVertBuf private to the GPU moduleClément Foucault
This is just a cleanup to isolate the internals of the vertbuf. This adds some getters to avoid refactor of existing code.
2020-09-01GPU: Move UBO binding validation to GL backendClément Foucault
This also make the validation quicker by tracking the currently bound slots.
2020-08-30GPUShader: Improve shader compilation logClément Foucault
- Print shader type (fragment, vertex, geom) - Support for Apple + intel error format. - Handle formatting a bit more gracefully.
2020-08-28GPU: Fix Segmentation Fault Freeing Failed ShaderJeroen Bakker
The CPP Shader class does not initialize the interface attribute. What will crash when deleting the shader. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D8740
2020-08-28Revert "GPU: Fix Segmentation Fault Freeing Failed Shader"Jeroen Bakker
This reverts commit c28432680971f54ebe95cc953606a3a4d3bc5c7c.
2020-08-28GPU: Fix Segmentation Fault Freeing Failed ShaderJeroen Bakker
The CPP Shader class does not initialize the interface attribute. What will crash when deleting the shader. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D8740
2020-08-21Cleanup: GPU: Update classes commentsClément Foucault
This should avoid confusion about what is a class and what is an opaque pointer.
2020-08-21GPUShader: Make GPUShader* an opaque pointer to blender::gpu::ShaderClément Foucault
This avoids the misleading inheritance. Also cleanup by setting the blender::gpu::Shader as active shader to avoid some casting.
2020-08-20GPUShaderInterface: GL backend isolationClément Foucault
2020-08-18GPUShader: Add back vertformat_from_shader()Clément Foucault
2020-08-18GPUShader: Rewrite error printingClément Foucault
Now error printing only display the line related to the error. We also put char marker if present. Example: ``` -- Shader Compilation Errors : MAMaterial -- 10414 | node_fresnel(, facingnormal, viewposition, tmp34); | ^ | error: syntax error, unexpected ',', expecting ')' ---------------------------------- ```
2020-08-18GPUShader: GL backend isolationClément Foucault