Blender Git Loki

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)

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)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021