Blender Git Statistics -> Developers -> fclem

Clément Foucault (fclem)

Total Commits : 4 489
Master Commits : 3 260
Branch Commits : 1 229
First Commit : January 3, 2017
Latest Commit : December 15, 2021

Commits by Month

DateNumber of Commits
December, 20214
November, 202117
October, 202115
September, 202131
August, 20212
July, 20217
June, 202141
May, 202146
April, 202159
March, 202179
February, 202171
January, 202190
December, 20200
November, 202013
October, 202037
September, 2020157
August, 2020168
July, 2020146
June, 202077
May, 202068
April, 202049
March, 202062
February, 2020113
January, 2020142
December, 2019129
November, 201988
October, 201946
September, 201961
August, 201984
July, 201971
June, 201944
May, 2019177
April, 201944
March, 2019105
February, 201945
January, 201947
December, 2018113
November, 2018110
October, 201879
September, 201866
August, 201877
July, 201894
June, 2018135
May, 2018138
April, 201897
March, 2018141
February, 2018104
January, 201877
December, 201710
November, 201738
October, 201745
September, 201766
August, 201737
July, 2017116
June, 2017116
May, 2017102
April, 201742
March, 201768
February, 2017133
January, 201750

Commit Distribution

PathNumber of Commits
master3260
hair_object1786
temp-outliner-visibility1753
collada2.81667
blender2.8_snap_gizmo1590
temp-ui-layout-2.81532
interactive_physics1512
temp-select-axis1432
hair_guides_grooming1391
hair_guides1391
temp-eeveelightcache1381
soc-2018-cycles-volumes1380
benchmark1370
temp-benchmark1370
soc-2018-bevel1364
temp-udim-images1358
tmp_hair_curves1313
temp-greasepencil-vfx1310
temp-tab_drag_drop1307
temp-sybren-cow-ocean1305
temp-greasepencil-object-stacksplit1291
temp-dynamic-overrides1290
TEMP-UI-DECOR1277
temp-flexible-spacing1260
ui_layout_gridflow1252
temp-keymap-changes1242
tmp-b28-motionpath-drawing1217
tmp-CollectionsAnim1214
temp-keymap-save1190
tmp-COW_InsertKeyframe_Fix1169
topbar1168
temp-unified-collections1167
experimental_gp_weight1163
temp-sybren-particles1158
tmp-TimelineHeaderButtonsStretching1146
temp-modifier-rm-cddm1146
temp-sybren-modifier-nonmesh1146
temp-sybren-meshdeform1144
blender2.8-snapping_with_occlusion1136
tmp-static-override-insertion1115
blender2.8-workbench1111
temp-object-multi-mode1020
temp-drawcontext854
temp-render-depsgraph831
temp-workspace-object-mode-removal800
temp-scene-obedit-remove800
temp-workspace-addons766
temp-workspace_mode689
id_override_static679
temp-workspace_active_object679
temp-group-collections655
custom-manipulators617
temp-workspace-changes564
strand_editmode527
temp-ssr478
tmp-debug-filebrowser448
temp-lightprobe-rename337
workspaces297
greasepencil-object207
temp-cycles-draw-manager201
greasepencil-refactor174
imm_port_wm_playanim162
temp-gpencil-eval162
transform-manipulators162
viewport-compositor160
temp-depsgraph-layers152
eevee-rewrite148
temp-eevee-gpencil-rewrite143
temp-workspace-multi-window111
eevee-dof-refactor98
tmp-overlay-engine90
render-layers74
temp-layers-ui-table70
clay-engine70
tmp-drw-callbatching57
tmp-vulkan45
draw-colormanagement42
eevee-motionblur-object32
tmp-batch-cache-cleanup30
tmp-eevee-shadowmap-refactor24
tmp-workbench-rewrite19
tmp-gltexture18
eevee-probe-roughness-fix17
eevee-ggx-lut-fix16
tmp-eevee-material-refactor15
temp-blender2.8-stable15
vr_scene_inspection14
blender-v2.83-release13
temp-lanpr-cleanup213
temp-lanpr-cleanup13
tmp-2.83-cycles-rtx3-kernels13
eevee-closure-lib-cleanup12
tmp-eevee-glsl-cleanup10
tmp-gpu-shader-descriptor-210
tmp-gldebuglayer9
asset-system-filelist8
temp-pose-flipping-fix-attempt8
temp-lanpr-staging8
asset-browser-poselib8
ui-asset-view-template8
asset-browser8
draw-viewport-data8
tmp-texture-sampler7
gpu-shader-descriptor6
tmp-widget-opti5
greasepencil-experimental5
soc-2019-npr5
tmp-pointcloud-render5
blender-v2.93-release4
modifier-panels-ui4
lineart-shadow4
tmp-gpu-context-isolation4
lineart-bvh4
lanpr-under-gp4
temp-lineart-contained4
temp_lineart_contained4
temp-gpencil-drw-engine3
tmp-T806032
blender-v2.80-release2
cycles_unbiased_volumes2
eevee-gpencil1
pygpu_extensions1
tmp-2.931
blender-v2.82-release1
blender-v2.81-release1
temp_test_sc_keymap1
sculpt-dev1
temp_bmesh_multires1

Favourite Files

FilenameTotal Edits
draw_manager.c434
eevee_private.h339
CMakeLists.txt273
DRW_render.h265
eevee_materials.c235
eevee_engine.c208
draw_manager_exec.c197
eevee_lightprobes.c191
object_mode.c181
draw_manager_data.c177

File Changes

ActionTotalPer Commit
Added1 1240.3
Modified15 8633.5
Deleted6570.1

Code Changes

ActionTotalPer Commit
Lines Added224 22152.9
Lines Removed119 99828.3

Latest commits Feed

Revision 8b097d5 by Clément Foucault (tmp-gpu-shader-descriptor-2)
December 15, 2021, 13:05 (GMT)
Merge branch 'master' into gpu-shader-descriptor
Revision f87e51a by Clément Foucault (tmp-gpu-shader-descriptor-2)
December 15, 2021, 13:03 (GMT)
Implement OpenGL backend support 1/2
Revision d7b310b by Clément Foucault (tmp-gpu-shader-descriptor-2)
December 14, 2021, 17:14 (GMT)
ShaderCreateInfo: Rewrite implementation in C++
Revision c9b32f0 by Clément Foucault (tmp-gpu-shader-descriptor-2)
December 13, 2021, 14:14 (GMT)
Merge branch 'master' into gpu-shader-descriptor
Revision 845716e by Clément Foucault (master)
November 25, 2021, 12:40 (GMT)
Fix T92609 Default Compositing tab shows red overlay when stereoscopy is turned on

This was caused by the drawing not being done on the right frammebuffer.
Revision 5967e12 by Clément Foucault (tmp-gpu-shader-descriptor-2)
November 24, 2021, 21:15 (GMT)
GPUShaderDescriptor for interface abstraction

This is a first draft of what the Shader Descriptor system could be.

A shader descriptor provides a way to define shader structure, resources
and interfaces. This makes for a quick way to provide backend agnostic
binding informations while also making shader variations easy to declare.

- Clear source input (only one file). Cleans up the GPU api since we can create a
shader from one descriptor
- Resources and interfaces are generated by the backend (much simpler than parsing).
- Bindings are explicit from position in the array.
- GPUShaderInterface becomes a trivial translation of enums and string copy.
- No external dependency to third party lib.
- Cleaner code, less fragmentation of resources in several libs.
- Easy to modify / extend at runtime.
- no parser involve, very easy to code.
- Does not hold any data, can be static and kept on disc.
- Could hold precompiled bytecode for static shaders.

This also includes a new global dependency system.
This is a prototype to support `#include` directive inside glsl sources.

I went for a C type shader description with static array for the given reasons:
- Simplicity: this is compiled language, can be extended at runtime by
C and C++ without much effort, no parsing involved.
- Readability: Can use designated initializers which allow meaningful
syntax (like `.push_constants` or `[0]` for the 1st bind point).
- Combinations: We can combine descriptors to create shader variations
really quickly. See `workbench_prepass.desc.h` in the branch for some crazy combination.
- Avoid having to write a C++ interface for C usage.

Note that the CMake changes are just to make things work.

What is remaining:
- GL backend to generate uniforms and support push constants (via uniforms).
- pyGPU API

What I would like to discuss:
- Naming: Is "descriptor" too much similar to vulkans descriptors set? This might create
confusion. Maybe MetaData is better? But it may hold more than meta data.
- Choose the right extension for descriptor files.
- Choose the right folder. Do we keep them alongside shader files even if name could differ?
- Indentation is 4 spaces for some reasons in descriptors definitions.
- Memory usage might be a concern. We are talking about ~3 MByte of data in the executable.
- Syntax: Is using [0] to specify binding index clear enough or using `VERTEX_INPUT(0, ...)`
makes more sense? What about future proofing if we one day want to compile this as C++ code.
- This format has nice benefits but it needs manual writting on our ends to modify the shaders.
That said, writting all shaders variations for the workbench prepass was quite easy and fast.
- How would we expose this through pyGPU?

Differential Revision: https://developer.blender.org/D13360
Revision f240ac1 by Clément Foucault (gpu-shader-descriptor)
November 24, 2021, 20:41 (GMT)
Improve formating
November 24, 2021, 19:09 (GMT)
Fix compilation & dependency depth
November 24, 2021, 18:46 (GMT)
Make shaders sources from draw included in the dependency library.
November 24, 2021, 17:56 (GMT)
Fix compilation issues on MSVC and a bug in builder

MiikaHweb - Blender Git Statistics v1.06
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021