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-11Fix OpenColorIO error with configs using <USE_DISPLAY_NAME>Brecht Van Lommel
* Don't assume the display colorspace name fully defines the transform to display space, this is not true in OpenColorIO 2 where view transforms may be defined in more complexs ways than just specifying a colorspace. * In places where we need to store the display colorspace name, resolve <USE_DISPLAY_NAME> token manually. Ref T96590
2022-04-08Fix prefix used for display OCIO shaderSergey Sharybin
Didn't notice this to have real harmful behavior, but is still best to do things properly.
2022-03-24Fix T94001: OpenColorIO configuration with 1D textures not workingBrecht Van Lommel
2022-03-23Fix T96502: Compilation error OCIO when using GradingPrimaryTransform.Jeroen Bakker
When using GradingPrimaryTransform the generated GLSL code fails to compile. The actual issue is inside OCIO (https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1603). The reason is that unset clamping values are rendered out as `inf`, which isn't recognizable by GLSL. The issue is worked around by defining a default for `inf`. Reviewed By: brecht Maniphest Tasks: T96502 Differential Revision: https://developer.blender.org/D14425
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-22OCIO: Fix bool1 vs. bool comparison warning.Clément Foucault
Fixes the following warning: `'!=': unsafe mix of type 'bool1' and type 'bool' in operation`
2022-02-19OCIO: Port shader creation logic to use GPUShaderCreateInfoClément Foucault
This commit should suffice to make the shader API agnostic now (given that all users of it use the GPU API). This makes the shaders not trigger a false positive error anymore since the binding slots are now garanteed by the backend and not changed at after compilation. This also bundles all uniforms into UBOs. Making them extendable without limitations of push constants. The generated uniforms from OCIO are not densely packed in the UBO to avoid complexity. Another approach would be to use GPU_uniformbuf_create_from_list but this requires converting uniforms to GPUInputs which is too complex for what it is. Reviewed by: brecht, jbakker Differential Revision: https://developer.blender.org/D14123
2022-02-19Merge branch 'blender-v3.1-release'Clément Foucault
# Conflicts: # intern/opencolorio/ocio_shader_shared.hh
2022-02-19Revert "OCIO: Port shader creation logic to use GPUShaderCreateInfo"Clément Foucault
This reverts commit 7f7c614ecddbcb66de0bff1657366970dede99be.
2022-02-18OCIO: Port shader creation logic to use GPUShaderCreateInfoClément Foucault
This commit should suffice to make the shader API agnostic now (given that all users of it use the GPU API). This makes the shaders not trigger a false positive error anymore since the binding slots are now garanteed by the backend and not changed at after compilation. This also bundles all uniforms into UBOs. Making them extendable without limitations of push constants. The generated uniforms from OCIO are not densely packed in the UBO to avoid complexity. Another approach would be to use GPU_uniformbuf_create_from_list but this requires converting uniforms to GPUInputs which is too complex for what it is. Reviewed by: brecht, jbakker Differential Revision: https://developer.blender.org/D14123
2022-02-17OCIO: Port shader creation logic to use GPUShaderCreateInfoClément Foucault
This commit should suffice to make the shader API agnostic now (given that all users of it use the GPU API). This makes the shaders not trigger a false positive error anymore since the binding slots are now garanteed by the backend and not changed at after compilation. This also bundles all uniforms into UBOs. Making them extendable without limitations of push constants. The generated uniforms from OCIO are not densely packed in the UBO to avoid complexity. Another approach would be to use GPU_uniformbuf_create_from_list but this requires converting uniforms to GPUInputs which is too complex for what it is. Reviewed by: brecht, jbakker Differential Revision: https://developer.blender.org/D14123
2022-02-11File headers: manually convert files to use SPDX headersCampbell Barton
Also add BSD-2-Clause to SPDX license list.
2022-01-14Cleanup: spelling in comments, C++ style comments for disabled codeCampbell Barton
Also ensure space at end of comment.
2021-04-16Remove unneeded code from previous commit.Jeroen Bakker
2021-04-16Fix OCIO Shader Compilation Error.Jeroen Bakker
Compilation fails when our OCIO wrapper creates a shader that transfer first to scene ref and directly after that to display. This cause is that the GPU resources of both transfers had the same name. This is fixed by prefixing the resources. This can be reproduced by loading a movie file (mkv) in the VSE editor. Reported by Sergey Sharybin.
2021-02-17Fix OpenColorIO 2.0 GPU shader error in uniform assignmentBrecht Van Lommel
And fix a (harmless) compiler warning.
2021-02-12OpenColorIO: upgrade to version 2.0.0Brecht Van Lommel
Ref T84819 Build System ============ This is an API breaking new version, and the updated code only builds with OpenColorIO 2.0 and later. Adding backwards compatibility was too complicated. * Tinyxml was replaced with Expat, adding a new dependency. * Yaml-cpp is now built as a dependency on Unix, as was already done on Windows. * Removed currently unused LCMS code. * Pystring remains built as part of OCIO itself, since it has no good build system. * Linux and macOS check for the OpenColorIO verison, and disable it if too old. Ref D10270 Processors and Transforms ========================= CPU processors now need to be created to do CPU processing. These are cached internally, but the cache lookup is not fast enough to execute per pixel or texture sample, so for performance these are now also exposed in the C API. The C API for transforms will no longer be needed afer all changes, so remove it to simplify the API and fallback implementation. Ref D10271 Display Transforms ================== Needs a bit more manual work constructing the transform. LegacyViewingPipeline could also have been used, but isn't really any simpler and since it's legacy we better not rely on it. We moved more logic into the opencolorio module, to simplify the API. There is no need to wrap a dozen functions just to be able to do this in C rather than C++. It's also tightly coupled to the GPU shader logic, and so should be in the same module. Ref D10271 GPU Display Shader ================== To avoid baking exposure and gamma into the GLSL shader and requiring slow recompiles when tweaking, we manually apply them in the shader. This leads to some logic duplicaton between the CPU and GPU display processor, but it seems unavoidable. Caching was also changed. Previously this was done both on the imbuf and opencolorio module levels. Now it's all done in the opencolorio module by simply matching color space names. We no longer use cacheIDs from OpenColorIO since computing them is expensive, and they are unlikely to match now that more is baked into the shader code. Shaders can now use multiple 2D textures, 3D textures and uniforms, rather than a single 3D texture. So allocating and binding those adds some code. Color space conversions for blending with overlays is now hardcoded in the shader. This was using harcoded numbers anyway, if this every becomes a general OpenColorIO transform it can be changed, but for now there is no point to add code complexity. Ref D10273 CIE XYZ ======= We need standard CIE XYZ values for rendering effects like blackbody emission. The relation to the scene linear role is based on OpenColorIO configuration. In OpenColorIO 2.0 configs roles can no longer have the same name as color spaces, which means our XYZ role and colorspace in the configuration give an error. Instead use the new standard aces_interchange role, which relates scene linear to a known scene referred color space. Compatibility with the old XYZ role is preserved, if the configuration file has no conflicting names. Also includes a non-functional change to the configuraton file to use an XYZ-to-ACES matrix instead of REC709-to-ACES, makes debugging a little easier since the matrix is the same one we have in the code now and that is also found easily in the ACES specs. Ref D10274
2020-10-19Spelling: It's Versus ItsHarley Acheson
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required. Differential Revision: https://developer.blender.org/D9250 Reviewed by Campbell Barton
2020-09-19Cleanup: consistent TODO/FIXME formatting for namesCampbell Barton
Following the most widely used convention for including todo's in the code, that is: `TODO(name):`, `FIXME(name)` ... etc.
2020-09-15Liquid Simulation Display Options (GSoC 2020)Sriharsha Kotcharlakot
All the changes made in the branch `soc-2020-fluid-tools` are included in this patch. **Major changes:** === Viewport Display === - //Raw voxel display// or //closest (nearest-neighbor)// interpolation for displaying the underlying voxel data of the simulation grids more clearly. - An option to display //gridlines// when the slicing method is //single//. ==== Grid Display ==== - Visualization for flags, pressure and level-set representation grids with a fixed color coding based on Manta GUI. ==== Vector Display ==== - //**M**arker **A**nd **C**ell// grid visualization options for vector grids like velocity or external forces. - Made vector display options available for external forces. ==== Coloring options for //gridlines// ==== - Range highlighting and cell filtering options for displaying the simulation grid data more precisely. - Color gridlines with flags. - Also, made slicing and interpolation options available for Volume Object. Reviewed By: JacquesLucke, sebbas Differential Revision: https://developer.blender.org/D8705
2020-09-12Fix remaining GL calls/type preventing from building due to recent cleanupClément Foucault
2020-09-05GPUTexture: OCIO: Workaround new missing bind error checkingClément Foucault
We cannot change the texture bind point since the interface count 4/5 textures to bind. Changing the uniform to avoid one bind make the system thinks one texture is missing. Avoid this by creating a dummy texture and binding it to the empty slot.
2020-09-05Cleanup: GPUTexture: Move debug messages outside of creation functionClément Foucault
# Conflicts: # source/blender/gpu/intern/gpu_framebuffer.cc
2020-09-05GPUTexture: Change texture creation APIClément Foucault
This is to modernize the API: - Add meaningful name to all textures (except DRW textures). - Remove unused err_out argument: only used for offscreen python. - Add mipmap count to creation functions for future changes. - Clarify the data usage in creation functions. This is a cleanup commit, there is no functional change. # Conflicts: # source/blender/gpu/GPU_texture.h
2020-09-05OCIO: Use GPUTexture instead of OpenGL calls and remove gl dependencyClément Foucault
Simple cleanup. Part of the Vulkan Port T68990.
2020-09-01OCIO: Make GLSL implementation use GPUUniformBuf to avoid debug errorsClément Foucault
Now that we use internal state info, we require drawing that uses the GPU api to use it throughout the whole pipeline. This is in order to track the GL state and do our own error checking.
2020-08-02Cleanup: OCIO: Remove extern "C" around blender headersClément Foucault
2020-07-30GPUBatch & GPUImmediate: Use GPUShader instead of using raw OGL handleClément Foucault
2020-06-02OCIO: GLSL: Avoid undefined behaviorClément Foucault
Set ubo binding after shaderinterface creation as GPU_shaderinterface_create will call glUniformBlockBinding.
2020-06-02GPU: ShaderInterface: Refactor to setup all uniform at creation timeClément Foucault
This remove the complexity of queriying the locations at runtime and allows for more performance and upfront binding specifications. The benefit of doing everything at creation time is that we can assign binding points in a predictable order which is going to be somewhat the same for every similar shader. This also rewrite GPU_vertformat_from_shader to not use shaderface. This is to keep the shaderface simple. If it becomes necessary to not query the shader after creation (i.e: vulkan?) we could just create the vert format in advance at compilation for PyGPU shaders. Reviewed By: brecht Differential Revision: https://developer.blender.org/D7879
2020-02-11DRW: Color Management improvementClément Foucault
Reviewed By: brecht sergey jbakker Differential Revision: http://developer.blender.org/D6729
2019-11-27Curve: CurveMapping Extend OptionJeroen Bakker
Extend options are currently stored per curve. This was not clearly communicated to the user and they expected this to be a setting per CurveMapping. This change will move the option from `Curve` to `CurveMapping`. In order to support this the API had to be changed. BPY: CurveMap.evaluate is also moved to CurveMapping.evaluate what breaks Python API. Cycles has been updated but other add-ons have not. After release of 2.81 we can merge this to master and adapt the add-ons. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D6169
2019-05-01Cleanup: comments (long lines) in various intern/ libsCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2018-07-18GWN: Port to GPU module: Replace GWN prefix by GPUClément Foucault
2018-07-18GWN: Port to GPU module: Move files to GPUClément Foucault
This does not include all the struct and type renaming. Only files were renamed. gwn_batch.c/h was fusioned with GPU_batch.c/h gwn_immediate.c/h was fusioned with GPU_immediate.c/h gwn_imm_util.c/h was fusioned with GPU_immediate_util.c/h
2018-05-31OpenColorIO: cache multiple shaders instead of just one.Brecht Van Lommel
Fixes constant shader and texture rebuilding when doing animation playback with multiple editors that use different view transforms.
2018-04-24OpenGL: Remove remaining instances of GL_RGBA16F_ARB.Clément Foucault
There is no need for it now that we use opengl 3.3. Use GL_RGBA16F instead.
2017-09-07Fix leak w/ ocio glsl drawCampbell Barton
2017-08-30Fix T52591: OpenColorIO not working correct with OpenGL core profile on macOS.Brecht Van Lommel
Also remove textureSize() replacement code, is always supported now.
2017-08-30Attempt to fix OpenColorIO issues on MacDalai Felinto
We cannot have version130 there (should use version 330 instead). Patch suggested by Brecht Van Lommel
2017-08-15Fix building with OCIO after recent gawain files renamings.Bastien Montagne
2017-06-19Fixup for gawan renameDalai Felinto
inten/opencolorio and *.cc were ignored. Build error introduced on b4d053efc75424fca4b413ac1bc7a7e826fac629.
2017-05-08Add comment about vertex format created in OCIOSergey Sharybin
2017-05-02OCIO: Fix crash cause by bad IMM usable.Clément Foucault
2017-04-13Gawain: use ShaderInterface to manage uniformsMike Erwin
This eliminates tons of glGetUniformLocation calls from the drawing loop. Vast majority of code can keep making the same function calls. They're just faster now! - Batch_Uniform* - immUniform* - gpuBindMatrices - and others
2017-04-11Use immediate mode API for OpenColorIOSergey Sharybin
2017-02-24OpenColorIO: Update glsl implementation to be ready for ogl 3.3 coreClément Foucault
2016-02-20OCIO: Disable the warnings related on C4251Sergey Sharybin
Those warnings are trigerred by stl classes in OCIO's public interface. To quote MSDN: "C4251 can be ignored if you are deriving from a type in the Standard C++ Library" This is the only instance where those warnings hunts us, so for now we can keep it all local in intern/opencolorio but this might be changed in the future.