tornavis/source/blender/gpu
Jason Fielder 1514e1a5b7 Metal: First set of Geometry Shader alternative implementations using SSBO vertex shader fetch.
These implementations remove dependency on the Geometry pass by instead invoking one vertex shader instance for each expected output vertex, matching what a geometry shader would emit. Each vertex shader instance is then responsible for calculating the same output position based on its vertex_id as the logic would in the geometry shader version.

SSBO Vertex fetch enables full random-access into a vertex buffer by binding it as a read-only SSBO. This enables each instance to read neighbouring vertex data to perform contextual calculations as a geometry shader would, for cases where attribute Multiload is not supported.

Authored by Apple: Michael Parkin-White

Ref T96261

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D15901
2022-09-22 17:43:04 +02:00
..
intern Metal: First set of Geometry Shader alternative implementations using SSBO vertex shader fetch. 2022-09-22 17:43:04 +02:00
metal Metal: First set of Geometry Shader alternative implementations using SSBO vertex shader fetch. 2022-09-22 17:43:04 +02:00
opengl Metal: MTLContext implementation and immediate mode rendering support. 2022-09-22 17:32:43 +02:00
shaders Metal: First set of Geometry Shader alternative implementations using SSBO vertex shader fetch. 2022-09-22 17:43:04 +02:00
tests Metal: MTLContext implementation and immediate mode rendering support. 2022-09-22 17:32:43 +02:00
CMakeLists.txt Metal: First set of Geometry Shader alternative implementations using SSBO vertex shader fetch. 2022-09-22 17:43:04 +02:00
GPU_batch.h DRWManager: New implementation. 2022-09-02 18:45:14 +02:00
GPU_batch_presets.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_batch_utils.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_buffers.h When these features aren't used, there is no sense in storing the 2022-09-12 12:48:42 -05:00
GPU_capabilities.h Cleanup: Remove duplicate declaration in GPU capabilities 2022-09-01 16:57:17 -05:00
GPU_common.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_common_types.h GPU: add missing license header 2022-07-05 13:58:52 +10:00
GPU_compute.h Cleanup: match names between functions & declarations 2022-08-23 11:05:50 +10:00
GPU_context.h Metal: MTLContext implementation and immediate mode rendering support. 2022-09-22 17:32:43 +02:00
GPU_debug.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_drawlist.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_framebuffer.h GL: Framebuffer: Add support for empty framebuffer (no attachments) 2022-09-17 10:17:47 +02:00
GPU_immediate.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_immediate_util.h Metal: GPU_PRIM_LINE_LOOP alternative implementations. 2022-04-14 12:01:31 +02:00
GPU_index_buffer.h Cleanup: spelling in comments, formatting, move comments into headers 2022-09-06 16:25:20 +10:00
GPU_init_exit.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_material.h Metal: MTLContext implementation and immediate mode rendering support. 2022-09-22 17:32:43 +02:00
GPU_matrix.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_platform.h Fix overlapping GPU device bitmasks 2022-04-04 16:38:30 +02:00
GPU_primitive.h Metal: MTLIndexBuf class implementation. 2022-09-01 21:45:12 +02:00
GPU_select.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_shader.h GPU: remove 'GPU_SHADER_2D_LINE_DASHED_UNIFORM_COLOR' 2022-09-05 19:01:02 -03:00
GPU_shader_shared.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
GPU_shader_shared_utils.h Cleanup: spelling in comments, formatting, move comments into headers 2022-09-06 16:25:20 +10:00
GPU_state.h Cleanup: spelling in comments, capitalize tags 2022-05-13 09:29:25 +10:00
GPU_storage_buffer.h GPUStorageBuf: Add `read()` function to readback buffer data to host 2022-08-30 22:26:11 +02:00
GPU_texture.h GPUTexture: Add type correct GPU_SAMPLER_MAX constant for C++ 2022-08-30 22:26:11 +02:00
GPU_uniform_buffer.h GPU: Make nodetree GLSL Codegen render engine agnostic 2022-04-14 18:47:58 +02:00
GPU_vertex_buffer.h Metal: Minimum per-vertex stride, 3D texture size + Transform feedback GPUCapabilities expansion. 2022-09-01 22:18:02 +02:00
GPU_vertex_format.h Cleanup: use 'num' / 'size' suffix instead of 'sz' 2022-05-11 13:40:09 +10:00
GPU_viewport.h Merge branch 'blender-v3.1-release' 2022-02-11 20:51:27 +09:00