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
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-06GPUIndexBuf: GL backend IsolationClément Foucault
This is part of the Vulkan backend task T68990. There is no real change, only making some code re-organisation. This also make the IndexBuf completely abstract from outside the GPU module.
2020-09-06Cleanup: GPU: Rename GPU_element to GPU_index_bufferClément Foucault
Makes it follow the functions names.
2020-09-05GPUTexture: Add skeleton of the new GLTexture classClément Foucault
2020-09-01GPUDebug: Reformat GL debug callbacks and move them to GL backendClément Foucault
Now the callbacks are setup for each debug context. The formating has been reworked to be less verbose and make errors and warnings stand out from the notifications. Errors are most of the time sufficiently explicit in their message. This also remove the support for AMD_debug_output which is 10 years old. This is related to the Vulkan port T68990.
2020-08-31Cleanup: GPU: Remove unused attr_binding and primitive codeClément Foucault
2020-08-31GPUImmediate: GL backend isolationClément Foucault
This is part of the Vulkan backend task T68990. This is mostly a cleanup, however, there is a small change: We don't use a special Vertex Array binding function for Immediate anymore and just reuse the one for batches. This might create a bit more state changes but this could be fixed easily if it causes perf regression. # Conflicts: # source/blender/gpu/intern/gpu_context.cc
2020-08-30GPUFrameBuffer: GL backend isolationClément Foucault
This is related to the Vulkan port T68990. This is a full cleanup of the Framebuffer module and a separation of OpenGL related functions. There is some changes with how the default framebuffers are handled. Now the default framebuffers are individually wrapped inside special GLFrameBuffers. This make it easier to keep track of the currently bound framebuffer state and have some specificity for operations on these framebuffers. Another change is dropping the optimisation of only configuring the changed attachements during framebuffers update. This does not give any benefits and add some complexity to the code. This might be brought back if it has a performance impact on some systems. This also adds support for naming framebuffers but it is currently not used.
2020-08-30GPUFramebuffer: Make GPUFrameBuffer an opaque typeClément Foucault
This is in preparation of the Framebuffer GL backend. This is a just changing types and moving some code. No logic is changed... almost... it just removes the context attach. i.e: `gpu_context_add/remove_framebuffer()` This is not needed for now and was even disabled in release. This is part of T68990.
2020-08-21GPUUniformBuf: GL backend isolationClément Foucault
This is in preparation of vulkan backend. We move all opengl functionnalities behind an abstract class. This also cleansup the "dynamic" ubo create and rename it to `GPU_uniformbuf_from_list()` Contains, no functional change. Part of T68990 Vulkan support.
2020-08-21GPUUniformBuf: Rename struct and change API a bitClément Foucault
This follows the GPU module naming of other buffers. We pass name to distinguish each GPUUniformBuf in debug mode. Also remove DRW_uniform_buffer interface.
2020-08-20GPUShaderInterface: GL backend isolationClément Foucault
2020-08-18GPUState: Add GL backend and state tracking but do not use itClément Foucault
This is just the backend work. It is not plugged in yet because it needs more external cleanup/refactor.
2020-08-18GPUShader: GL backend isolationClément Foucault
2020-08-13GPUBatch: GL backend isolationClément Foucault
This changes the drawing paradigm a bit. The VAO configuration is done JIT-style and depends on context active shader. This is to allow more flexibility for implementations to do optimization at lower level. The vao cache is now its own class to isolate the concept. It is this class that is reference by the GLContext for ownership of the containing VAO ids.
2020-08-13GPUBatch: Move allocator to backendClément Foucault
2020-08-13Cleanup: GPUBatch: Move gpu_batch_private.h to CPP headerClément Foucault
2020-08-13GPUDrawList: GL backend isolationClément Foucault
2020-08-08Cleanup: GPU: Change gpu_context_private.h to C++ only headerClément Foucault
2020-08-08GPUBackend: Add new GPUBackend object to manage GL object allocationsClément Foucault
This just set a global object responsible for allocating new objects in a thread safe way without needing any GPUContext bound to this thread. This also introduce the GLContext which will contain all the GL related functions for the current context.
2020-08-08GPU: Move ghost default framebuffer getter to context creationClément Foucault
2020-08-02GPU: Convert gpu_matrix.c to C++Clément Foucault
2020-08-02GPU: Convert gpu_shader_interface.c to C++Clément Foucault
2020-07-30EEVEE: GLSL refactor/cleanupClément Foucault
- add the use of DRWShaderLibrary to EEVEE's glsl codebase to reduce code complexity and duplication. - split bsdf_common_lib.glsl into multiple sub library which are now shared with other engines. - the surface shader code is now more organised and have its own files. - change default world to use a material nodetree and make lookdev shader more clear. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D8306
2020-07-30Cleanup: GPU: Remove GPU_draw.h and move fluid gpu function to DRWClément Foucault
2020-07-30Cleanup: Split gpu_texture_image.c into BKE and IMB modulesClément Foucault
This is in order to disolve GPU_draw.h into more meaningful code blocks. All the Image related function are in `image_gpu.c`. All the MovieClip related function are in `movieclip.c`. The IMB module now has a connection with GPU. This is not strickly necessary and the code could be move to `image_gpu.c` if needed. The Image garbage collection is also ported to `image_gpu.c`.
2020-07-29Cleanup: GPU: Rename gpu_texture_smoke to fluid, and move back to CClément Foucault
The file do not have a reason to be C++ anymore.
2020-07-29GPU: Move gpu_shader.c to C++Clément Foucault
We split builtin shader support to its own file to avoid converting code (lack of designated initializer in C++) and to reduce file size.
2020-07-29GPU: Move gpu_state.c to C++Clément Foucault
2020-07-29GPU: Move gpu_texture.c to C++Clément Foucault
# Conflicts: # source/blender/gpu/GPU_texture.h
2020-07-29GPU: Move gpu_uniformbuffer.c to C++Clément Foucault
This also rewrite and simplify the module a bit.
2020-07-29GPU: Move gpu_vertex_buffer.c to C++Clément Foucault
2020-07-29GPU: Move gpu_vertex_format.c to C++Clément Foucault
2020-07-26GPU: Move gpu_platform.c to C++Clément Foucault
2020-07-26GPU: Move gpu_immediate.c to C++Clément Foucault
2020-07-26GPU: Move gpu_framebuffer.c to C++Clément Foucault
2020-07-26GPU: Move gpu_extensions.c to C++Clément Foucault
2020-07-26GPU: Move gpu_element.c to C++Clément Foucault
2020-07-26GPU: Move and rename gpu_draw*.c to C++Clément Foucault
`gpu_draw.c` was a misleading name, `gpu_texture_image.cc` is better suited.
2020-07-26GPU: Move gpu_debug.c to C++Clément Foucault
2020-07-26GPU: Rename gpu_context.cpp to .cc suffixClément Foucault
2020-07-26GPU: Move gpu_batch.c to C++Clément Foucault
2020-07-26GPU: Move gpu_attr_binding.c to C++Clément Foucault
2020-07-18Cleanup: GPUShader: Remove unused builtin shaderClément Foucault
2020-06-22Fix T62917 UV editor: Edge overlay not shown when edge overlay type is DashClément Foucault
Fix by changing the shader to always compute dash for uv and just change dash size to something really big for other overlay types.
2020-04-24GPU: Add Polyline shader (wide line emulation)Clément Foucault
This new shader is able to emulate smooth wide lines drawing using a geometry shader. This shader needs viewportSize and lineWidth uniforms to be set. There is multiple variants to replace the usage of wide lines for most shaders. This patch only fix the gizmo_types files and the navigation gizmo. Other areas could be fixed afterward, I just limited the patch size. Fix T57570. Reviewed By: billreynish Differential Revision: https://developer.blender.org/D7487
2020-04-14GPUShader: Implement workaround for gizmo drawing on sRGB framebufferClément Foucault
This solution involves adding a uniform to each fragment shader that is used by gizmo drawing and use the framebuffer state to set this uniform accordingly. This solution can also be carried to external shaders (addons). A single line of code would then be enough to fix the issue. The only trickery here is the dummy define: `#define srgb_to_framebuffer_space(a)` This is in order to avoid breaking other DRW shaders that use the same fragment shader code but do not need the tranformation. Related to T74139 Reviewed By: brecht, campbellbarton Differential Revision: https://developer.blender.org/D7261
2020-03-27Cleanup: GPUShader: Remove unused shadersClément Foucault
2020-03-19Fix T73931: Stereo Viewport Color ManagementJeroen Bakker
Stereoscopic viewport didn't support Color Manangement due recent changes in the color management pipeline. In order to solve the issue we will migrate the strereo rendering into the GPUViewport. This will share some textures and reduce required GPU memory. Reviewed By: fclem, dfelinto Differential Revision: https://developer.blender.org/D6922
2020-02-17Cycles: Vector Rotate Node using Axis and Angle methodCharlie Jolly
This node provides the ability to rotate a vector around a `center` point using either `Axis Angle` , `Single Axis` or `Euler` methods. Reviewed By: #cycles, brecht Differential Revision: https://developer.blender.org/D3789