Blender Git Commits

Blender Git commits from all branches.

Page: 29 / 2888

November 25, 2021, 19:34 (GMT)
Sculpt-dev: sculpt_init_tool_override_channels
related fixes

Various fixes so sculpt_init_tool_override_channels
for shift-smooth can replicate the prior behavior:

* Brush spacing will now look up brush channel
spacing directly for sculpt, instead of relying
on copying the channel data into Brush.
* Brush spacing code will now use brush channel
pressure for sculpt. Fixes broken shift-smooth
pen pressure.
* The falloff_curve channel is now automatically
added (before it was only used internally by
command lists, the code was defaulting to
the Brush field otherwise).
* BrushCurve now has an option for custom curve
presets to have negative slopes.
* The Falloff panel now puts the type dropbox
inside the panel header.
* Falloff panel also now uses brush channel data in
sculpt mode.
* falloff_shape is now a brush channel

In a somewhat unrelated change, I also unnested the
Brush Settings subpanels. It's been driving me
insane for a very, very long time. Much more
usable this way.
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
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
November 24, 2021, 16:58 (GMT)
GPUShaderDependency: Initial Commit

This is a prototype to support `#include` directive inside glsl sources.
The sources are aggregated into a list before being translated to byte_array.
This list is used to generate a mapping between the filename and the
associated byte_array. For each byte_array, we search for any `#include`
and store the file to merge.

At runtime, for one input filename we concatenate all byte_arrays that
are needed following the include order and avoiding double include.

This is meant to evolve into a fully supported `#include` system.
November 24, 2021, 16:52 (GMT)
GPUShaderDescriptor: Initial Commit

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.
November 24, 2021, 14:51 (GMT)
ImageEngine: Added skeleton for screen space drawing mode.
November 24, 2021, 10:24 (GMT)
Merge branch 'master' into temp-gpu-image-engine
November 24, 2021, 10:03 (GMT)
Merge branch 'master' into temp-gpu-image-engine
November 24, 2021, 08:06 (GMT)
Merge branch 'master' into temp-gpu-texture-partial-updates
November 24, 2021, 03:46 (GMT)
Sculpt-dev: fix smooth_strength_factor bug

* Fixed bug where BRUSH_MAPPING_INHERIT was
being or'd to BrushMapping->flag instead
of assigned to ->inherit_mode.
* Fixed smooth_strength_factor
and smooth_strength_projection.
* Also added yet more asan poisoning to mempool
* Added a function to build final inherited brush
channel, BKE_brush_channel_copy_final_data. Takes
BrushMapping->inherit_mode into account.
November 24, 2021, 00:29 (GMT)
FIx: Change to instance domain
November 23, 2021, 16:59 (GMT)
Merge branch 'master' into temp-geometry-nodes-text
November 23, 2021, 14:36 (GMT)
Merge remote-tracking branch 'origin/master' into transform-navigation-snapsource

November 23, 2021, 14:29 (GMT)
GHOST: Device discovery API.

Still wip.
November 23, 2021, 13:01 (GMT)
Merge branch 'temp-ghost-vulkan-backend' into tmp-vulkan
November 23, 2021, 12:23 (GMT)
Merge branch 'master' into temp-ghost-vulkan-backend
November 23, 2021, 08:14 (GMT)
Fix T93007: Cycles not updating for animated Object properties like color
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021