tornavis/source/blender
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
..
blendthumb Cleanup: improve titles for CMake sections, line length 2022-09-13 13:50:21 +10:00
blenfont Fix crash loading fonts that fail to be read 2022-09-22 22:11:09 +10:00
blenkernel Geometry Nodes: Add Self Object Node 2022-09-22 08:15:03 -05:00
blenlib Refactor: Move file browser filelist.c to C++ 2022-09-21 12:39:26 +02:00
blenloader UV: extend custom grid sizes to set each axis separately 2022-09-20 10:00:41 +12:00
blentranslation Build: fix gtest build flags affecting actual library 2022-09-18 11:26:34 +02:00
bmesh Refactor: const-correctness in bmesh conversion assert 2022-09-22 10:33:12 +02:00
compositor Cleanup: spelling in comments 2022-09-21 12:00:01 +10:00
datatoc Cleanup: remove redundant braces from assert & raise 2022-09-14 16:18:59 +10:00
depsgraph Refactor: Simplify transfer of tags in the depsgraph builder 2022-09-21 16:48:48 +02:00
draw Metal: First set of Geometry Shader alternative implementations using SSBO vertex shader fetch. 2022-09-22 17:43:04 +02:00
editors Fix T101262: Crash in spreadsheet selection filter with empty domain 2022-09-21 17:34:30 -05:00
freestyle Build: limit Py_ENABLE_SHARED to modules using Python headers 2022-09-18 11:26:33 +02:00
functions Cleanup: spelling in comments 2022-09-21 12:00:01 +10:00
geometry Attributes: Allow calling "finish" on empty accessors 2022-09-21 13:17:05 -05:00
gpencil_modifiers Cleanup: prefer 'arg' over 'params' for sphinx documentation 2022-09-19 14:24:31 +10:00
gpu Metal: First set of Geometry Shader alternative implementations using SSBO vertex shader fetch. 2022-09-22 17:43:04 +02:00
ikplugin Cleanup: rename cnt to count 2022-03-16 11:58:22 +11:00
imbuf Cleanup: spelling 2022-09-19 14:52:27 +10:00
io Cleanup: spelling 2022-09-19 14:52:27 +10:00
makesdna UV: add toggle to show the grid over the image 2022-09-22 17:20:11 +12:00
makesrna UV: add toggle to show the grid over the image 2022-09-22 17:20:11 +12:00
modifiers Geometry Nodes: Add Self Object Node 2022-09-22 08:15:03 -05:00
nodes Geometry Nodes: Add Self Object Node 2022-09-22 08:15:03 -05:00
python PyGPU: Allow single bool in 'GPUShader.uniform_bool' method 2022-09-21 22:30:57 -03:00
render Metal: MTLContext implementation and immediate mode rendering support. 2022-09-22 17:32:43 +02:00
sequencer Cleanup: spelling in comments 2022-09-21 12:00:01 +10:00
shader_fx I18n: make Grease Pencil modifiers and shader FX translatable. 2022-08-01 13:58:23 +02:00
simulation Cleanup: spelling in comments, comment blocks 2022-09-15 10:03:46 +10:00
windowmanager Metal: MTLContext implementation and immediate mode rendering support. 2022-09-22 17:32:43 +02:00
CMakeLists.txt Compositor: Rename compositor build option 2022-08-09 15:59:56 +02:00