Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
X11 is used as a fallback when libdecor isn't found on the users system.
Now print a warning when Blender falls back to X11 and a missing
libdecor is the only reason wayland could not be used.
Only print this warning when using Wayland so this warning doesn't show
on X11 systems which have Wayland libraries installed.
Addresses T101715.
|
|
|
|
Requested in D16095 proposal - also USD & Alembic have import scale
option; OBJ has an export scale object but the import scale
was not there for some reason.
|
|
Show the windowing environment on non MS-Windows/Apple systems,
since X11/WAYLAND are selected startup there was no convenient way
for users to know which back-end was being used.
Include the windowing environment in the About splash & system-info.txt
since it will be useful for handling bug reports.
This commit adds a private API call not intended for general use
as I would like to be able to remove this later and it's only needed
in the specific case of testing if Blender is using WAYLAND or X11
(which maybe be used via XWayland).
Python scripts can already inspect the system to check which windowing
environment used, the API call is mainly useful for troubleshooting.
|
|
|
|
|
|
OSL (like Cycles) has no internal boolean type, instead an integer
input can be flagged to be shown as a boolean in the UI.
Cycles reacts to this by creating a boolean socket on the Blender
side, but as a result incorrectly called the boolean overload of the
set function even though the internal type is an integer.
There's another unrelated crash in the GPU viewport shader code that
appears to apply to every OSL node that outputs a shader, and the file
in T101702 triggers both, so this is only a partial fix for the report.
|
|
before "o"
The importer logic was wrongly resetting "current material name"
upon encountering a new object ("o" command). However as per OBJ
specification, this is incorrect:
> Specifies the material name for the element following it. Once a
> material is assigned, it cannot be turned off; it can only be
> changed.
Fixes T101685. Test coverage for this was added in svn tests repo.
|
|
Previously "which material got assigned to an object in the end"
was not covered by tests. This is preparation for fixing T101685.
|
|
Use `inline constexpr` instead of `static const` to prevent these
variables from being duplicated in each translation unit that includes
the eevee_camera.hh header (was included into 17 different object files
with MSVC).
Differential Revision: https://developer.blender.org/D16200
|
|
Differential Revision: https://developer.blender.org/D16190
|
|
The attribute node already allows accessing attributes associated
with objects and meshes, which allows changing the behavior of the
same material between different objects or instances. The same idea
can be extended to an even more global level of layers and scenes.
Currently view layers provide an option to replace all materials
with a different one. However, since the same material will be applied
to all objects in the layer, varying the behavior between layers while
preserving distinct materials requires duplicating objects.
Providing access to properties of layers and scenes via the attribute
node enables making materials with built-in switches or settings that
can be controlled globally at the view layer level. This is probably
most useful for complex NPR shading and compositing. Like with objects,
the node can also access built-in scene properties, like render resolution
or FOV of the active camera. Lookup is also attempted in World, similar
to how the Object mode checks the Mesh datablock.
In Cycles this mode is implemented by replacing the attribute node with
the attribute value during sync, allowing constant folding to take the
values into account. This means however that materials that use this
feature have to be re-synced upon any changes to scene, world or camera.
The Eevee version uses a new uniform buffer containing a sorted array
mapping name hashes to values, with binary search lookup. The array
is limited to 512 entries, which is effectively limitless even
considering it is shared by all materials in the scene; it is also
just 16KB of memory so no point trying to optimize further.
The buffer has to be rebuilt when new attributes are detected in a
material, so the draw engine keeps a table of recently seen attribute
names to minimize the chance of extra rebuilds mid-draw.
Differential Revision: https://developer.blender.org/D15941
|
|
|
|
|
|
Enable the following CMake options:
- WITH_GHOST_WAYLAND
Enable Wayland which is now included as part the bundled dependencies.
When the pre-compiled libraries aren't used, only X11 will be enabled.
- WITH_GHOST_WAYLAND_DYNLOAD
So systems without libwayland can fall back to X11.
- WITH_GHOST_WAYLAND_LIBDECOR
To draw window frames on WAYLAND compositors such as gnome-shell which
expect client-side decorations (without this the Blender window is
borderless).
Unfortunately there doesn't seem to be a reliable way to know if the
compositors handles server-side decorations, so libdecor is required
for Wayland to be used even with KDE and tiling compositors where it's
not needed. Although this is an area that could use some further
investigation - possibly bundling libdecor or handling client-side
decorations in Blender.
The final part of D16091.
|
|
|
|
This can improve performance by 3-10x in some simple test cases,
when reading a boolean attribute on a different domain from the
one it's stored on.
Differential Revision: https://developer.blender.org/D16054
|
|
|
|
Before, the active spline index and the active point index were always
cleared. Now the active index is only cleared when the curve/surface is
deleted. This was accomplished by making the surface patch delete
function handle that correctly. The spline deletion already handled it.
This fixes only vertex deletion mode.
Fixes problem mentioned in T101160.
Differential Revision: https://developer.blender.org/D16133
|
|
When using pre-compiled libs, reference the bundled wayland headers,
needed so the headers from the bundled wayland-scanner are compatible.
Part of D16091.
|
|
Include libdecor, note that this only bundles a header file
as Blender dynamically loads on the system at run-time.
Part of D16091.
|
|
The headers on centOS7 (Wayland 1.15) aren't compatible with the headers
generated by wayland-scanner 1.20.
Include the headers to support building Wayland on systems with
older Wayland installed.
Using these headers will be part of a separate commit.
Part of D16091.
|
|
The group node type polls true, but adding an empty group node isn't
useful, so just skip it.
|
|
(I.e influence, etc)
Reviewed By: sybren
Differential Revision: http://developer.blender.org/D16154
|
|
Contributed by Alaska.
Differential Revision: https://developer.blender.org/D16166
|
|
To allow moving mesh runtime data to C++ (D16180).
|
|
Flags were not properly passed to the
compiler.
|
|
The actual length of extension lines can be adjusted using wheel mouse
but this is very inconvenient for tablet users.
Now, the extension can be adjusted using MMB of the pen.
There was a similar request in Right-Click Select
Reviewed By: Matias Mendiola, Daniel Martinez Lara
Differential Revision: https://developer.blender.org/D16128
|
|
It fixes SYCL runtime issues in Debug builds that were due to mixing
Release and Debug MSVC runtimes.
This commit also removes specific handling of dpcpp compiler executable
to simplify the CMake implementation. Using it like clang++ works and
clang++ executable is also available from Intel oneAPI DPC++ compiler in
case it doesn't.
|
|
|
|
|
|
This makes sense now that the struct only contains matrices.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
`mouse_pixel` is only use for debug purpose and will be reintroduced later.
`is_inverted` is moved to `draw::View`.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
|
|
These were only a normalized copy of the XY axes of the inverse viewmat.
But since the viewmatrix is always normalized we can use it directly.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
|
|
This avoid dependency with the draw view.
|
|
No functional change. `view_clipping_distances` is prefered as it is
auto masked.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
The viewvecs can easilly be replace by projection matrix operation.
Even if slightly more complex, there is no performance impact.
|
|
This is part of the effor to simplify the View struct in order to implement
multiview rendering.
The CameraTexCoFactors being only valid for a single view, and being only
used in very few places, it make sense to move it to the engine side.
|
|
This is in order to reduce the size of ViewInfos and support multi view
rendering.
|