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-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-30Metal: GLSL Shader compatibility 5Jason Fielder
MSL does not have an implicit global scope, this is emulated via macro's adding an indirection for uniforms, attributes, shader stage inputs and outputs such as: #define roughness shaderinst->roughness. Variables in GLSL which exist within uniform blocks can be directly referenced via the global scope, unlike standard C++. This means that variable name pollution occurs if subsequent local variables in the code use the same name, resulting in compilation errors. A number of these conflicting names have been renamed to ensure unique naming and no further scope pollution. Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14452
2022-03-30Metal: GLSL Compatibility - explicit mat4_to_mat3 conversionJason Fielder
Explicit constructor for mat3 from a mat4 is not valid and cannot be overloaded. Adding explicit texture resource type flags for depth textures. This is an explicit requirement for Metal Shading language. This is a temporary compatibility, as this path is already supported in GPU_SHADER_CREATE_INFO under ImageType::DEPTH_2D, though required in shader source for MSL shaders which do not have create info. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14418
2022-03-30Overlay: Port Armature shader to ShaderCreateInfoClément Foucault
Should have no regression.
2022-03-30GL: Fix Invalid enum error on Apple SiliconClément Foucault
Guard shader storage related gets and bypass a buggy enum. Fix T95592 OpenGL Invalid Enum
2022-03-30Overlay: Port Edit Mode shaders to ShaderCreateInfoClément Foucault
This should have no regression.
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-30GPU: ShaderBuilder: Fix compilation on non-Mac platformClément Foucault
Regression introduced in rB664eb1936946a077498a17c22576763c664e3186
2022-03-26GPU: ShaderBuilder: Skip shader compilation for unsupported shaders.Clément Foucault
2022-03-26GL: Fix shader error logging on Apple M1 hardwareClément Foucault
2022-03-26GPU: ShaderBuilder: Fix compilation on MacClément Foucault
This is less than ideal as it seems to link against all of blender disregarding the stubs.
2022-03-25Cleanup: sort cmake file listsCampbell Barton
2022-03-23Fix invalid NULL check in GPU_viewport_unbind_from_offscreenCampbell Barton
Mistake from 1d49293b80446b89b5b12fa0eeefaf14e5051e48.
2022-03-23Cleanup: spelling in commentsCampbell Barton
2022-03-23CMake: add missing headers to source listCampbell Barton
2022-03-23License headers: add license header to source/blender/gpu/metalCampbell Barton
2022-03-22GL: Fix compilation error on MSVC (for real)Clément Foucault
2022-03-22GL: Fix compilation error on MSVCClément Foucault
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-21GPU: Allow the user to set an anisotropic filtering setting below the ↵Ethan-Hall
implementation-defined value of `GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT` Allow the user to set an anisotropic filtering setting below the implementation-defined value of `GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT`. This bug-fix is also needed for 2.93 LTS. Reviewed By: fclem Differential Revision: https://developer.blender.org/D14392
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-20GPencil: Use ShaderCreateInfo for antialiasing shadersClément Foucault
Simple port. Shouldn't break anything.
2022-03-20GPencil: Use ShaderCreateInfo for vfx shadersClément Foucault
Simple port. Shouldn't break anything.
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-18GL: Check texture framebuffer feedback only if not using compute pipeline.Clément Foucault
This was getting in the way in multiple instances. Compute shaders dispatch are still made in the presence of the last bound framebuffer even if they do not interact with it.
2022-03-18GPUTexture: Fix bug in texture view creationClément Foucault
The switch case was based on an uninitialized value.
2022-03-18GL: Add missing format in image layout conversionClément Foucault
2022-03-18GPUShaderCreateInfo: Add explicit early_fragment_testClément Foucault
2022-03-18GPUTexture: Expose layer & mip countClément Foucault
2022-03-18GLShader: Fix two small issues with compute shader generated codeClé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-16Cleanup: incorrect comments, use C commentsCampbell Barton
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 typos homogenous->homogeneousBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D14306
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