Blender Git Commit Log
Git Commits -> Revision 87055dc
Revision 87055dc by Jeroen Bakker (master) May 26, 2021, 14:49 (GMT) |
GPU: Compute Pipeline. 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 |
Commit Details:
Full Hash: 87055dc71b0d50cd25660969b55cda7d44af6a12
Parent Commit: e459a25
Lines Changed: +819, -19
5 Added Paths:
/source/blender/gpu/GPU_compute.h (+38, -0) (View)
/source/blender/gpu/intern/gpu_compute.cc (+41, -0) (View)
/source/blender/gpu/opengl/gl_compute.cc (+35, -0) (View)
/source/blender/gpu/opengl/gl_compute.hh (+30, -0) (View)
/source/blender/gpu/tests/gpu_shader_test.cc (+301, -0) (View)
/source/blender/gpu/intern/gpu_compute.cc (+41, -0) (View)
/source/blender/gpu/opengl/gl_compute.cc (+35, -0) (View)
/source/blender/gpu/opengl/gl_compute.hh (+30, -0) (View)
/source/blender/gpu/tests/gpu_shader_test.cc (+301, -0) (View)
29 Modified Paths:
/source/blender/draw/intern/draw_manager_shader.c (+1, -0) (Diff)
/source/blender/gpu/CMakeLists.txt (+5, -0) (Diff)
/source/blender/gpu/GPU_capabilities.h (+2, -0) (Diff)
/source/blender/gpu/GPU_index_buffer.h (+12, -0) (Diff)
/source/blender/gpu/GPU_shader.h (+7, -0) (Diff)
/source/blender/gpu/GPU_state.h (+1, -0) (Diff)
/source/blender/gpu/GPU_vertex_buffer.h (+10, -0) (Diff)
/source/blender/gpu/intern/gpu_backend.hh (+1, -0) (Diff)
/source/blender/gpu/intern/gpu_capabilities.cc (+10, -0) (Diff)
/source/blender/gpu/intern/gpu_capabilities_private.hh (+2, -0) (Diff)
/source/blender/gpu/intern/gpu_index_buffer.cc (+42, -0) (Diff)
/source/blender/gpu/intern/gpu_index_buffer_private.hh (+11, -1) (Diff)
/source/blender/gpu/intern/gpu_shader.cc (+55, -4) (Diff)
/source/blender/gpu/intern/gpu_shader_interface.cc (+9, -0) (Diff)
/source/blender/gpu/intern/gpu_shader_interface.hh (+6, -0) (Diff)
/source/blender/gpu/intern/gpu_shader_private.hh (+1, -0) (Diff)
/source/blender/gpu/intern/gpu_vertex_buffer.cc (+15, -0) (Diff)
/source/blender/gpu/intern/gpu_vertex_buffer_private.hh (+3, -0) (Diff)
/source/blender/gpu/opengl/gl_backend.cc (+2, -0) (Diff)
/source/blender/gpu/opengl/gl_backend.hh (+7, -0) (Diff)
/source/blender/gpu/opengl/gl_index_buffer.cc (+28, -6) (Diff)
/source/blender/gpu/opengl/gl_index_buffer.hh (+7, -0) (Diff)
/source/blender/gpu/opengl/gl_shader.cc (+36, -2) (Diff)
/source/blender/gpu/opengl/gl_shader.hh (+3, -1) (Diff)
/source/blender/gpu/opengl/gl_shader_interface.cc (+43, -2) (Diff)
/source/blender/gpu/opengl/gl_state.hh (+3, -0) (Diff)
/source/blender/gpu/opengl/gl_texture.cc (+1, -1) (Diff)
/source/blender/gpu/opengl/gl_vertex_buffer.cc (+43, -2) (Diff)
/source/blender/gpu/opengl/gl_vertex_buffer.hh (+8, -0) (Diff)
/source/blender/gpu/CMakeLists.txt (+5, -0) (Diff)
/source/blender/gpu/GPU_capabilities.h (+2, -0) (Diff)
/source/blender/gpu/GPU_index_buffer.h (+12, -0) (Diff)
/source/blender/gpu/GPU_shader.h (+7, -0) (Diff)
/source/blender/gpu/GPU_state.h (+1, -0) (Diff)
/source/blender/gpu/GPU_vertex_buffer.h (+10, -0) (Diff)
/source/blender/gpu/intern/gpu_backend.hh (+1, -0) (Diff)
/source/blender/gpu/intern/gpu_capabilities.cc (+10, -0) (Diff)
/source/blender/gpu/intern/gpu_capabilities_private.hh (+2, -0) (Diff)
/source/blender/gpu/intern/gpu_index_buffer.cc (+42, -0) (Diff)
/source/blender/gpu/intern/gpu_index_buffer_private.hh (+11, -1) (Diff)
/source/blender/gpu/intern/gpu_shader.cc (+55, -4) (Diff)
/source/blender/gpu/intern/gpu_shader_interface.cc (+9, -0) (Diff)
/source/blender/gpu/intern/gpu_shader_interface.hh (+6, -0) (Diff)
/source/blender/gpu/intern/gpu_shader_private.hh (+1, -0) (Diff)
/source/blender/gpu/intern/gpu_vertex_buffer.cc (+15, -0) (Diff)
/source/blender/gpu/intern/gpu_vertex_buffer_private.hh (+3, -0) (Diff)
/source/blender/gpu/opengl/gl_backend.cc (+2, -0) (Diff)
/source/blender/gpu/opengl/gl_backend.hh (+7, -0) (Diff)
/source/blender/gpu/opengl/gl_index_buffer.cc (+28, -6) (Diff)
/source/blender/gpu/opengl/gl_index_buffer.hh (+7, -0) (Diff)
/source/blender/gpu/opengl/gl_shader.cc (+36, -2) (Diff)
/source/blender/gpu/opengl/gl_shader.hh (+3, -1) (Diff)
/source/blender/gpu/opengl/gl_shader_interface.cc (+43, -2) (Diff)
/source/blender/gpu/opengl/gl_state.hh (+3, -0) (Diff)
/source/blender/gpu/opengl/gl_texture.cc (+1, -1) (Diff)
/source/blender/gpu/opengl/gl_vertex_buffer.cc (+43, -2) (Diff)
/source/blender/gpu/opengl/gl_vertex_buffer.hh (+8, -0) (Diff)