Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
AgeCommit message (Collapse)Author
2022-11-09Fix T102257: Crash when making an Object as Effector set to Guide and trying ↵Germano Cavalcante
to scrub the timeline rB67e23b4b2967 revealed the bug. But the bug already existed before, it just wasn't triggered. Apparently the problem happens because the python code generated in `initGuiding()` cannot be executed twice. The second time the `initGuiding()` code is executed, the local python variables are removed to make way for the others, but the reference to one of the grids in a `Solver` object (name='solver_guiding2') is still being used somewhere. So an error is raised and a crash is forced. The solution is to prevent the python code in `initGuiding()` from being executed twice. When `FLUID_DOMAIN_ACTIVE_GUIDE` is in `fds->active_fields` this indicates that the pointer in `mPhiGuideIn` has been set and the guiding is already computed (does not need to be computed again). Maniphest Tasks: T102257 Differential Revision: https://developer.blender.org/D16416
2022-11-09Fix T102287: Unhandled Numpad Separator on QWERTZ under WaylandCampbell Barton
2022-11-08Fix Cycles error with runtime compilation when there is no path to OptiX SDKGon Solo
If no OPTIX_ROOT is set, nvcc fails to compile because there is a stray "-I" in the arguments. Detect if the include path is empty and act accordingly. Differential Revision: https://developer.blender.org/D16308
2022-11-05Cleanup: quiet unused argument warningCampbell Barton
2022-11-03Fix Wayland warning on startup when running X11Brecht Van Lommel
On Ubuntu 20.04 running X11, there was this message on every Blender startup: Unable to find 'wl_proxy_marshal_flags' in 'libwayland-client.so.0'. The reason is that we build against Wayland protocols 1.21, which in turns requires Wayland on the distribution to be 1.21+, which is not the case on Ubuntu 20.04. This simply silences the warning. An improvement would be to explain the user that their Wayland version is too old when neither X11 or Wayland can be found. Though that's not trivial and a situation with old Wayland and no XWayland seems unlikely to happen in practice. Differential Revision: https://developer.blender.org/D16266
2022-11-03Fix T102225: Crash opening menusSergey Sharybin
Seems to be introduced by 99e5024e97f. The crash is caused by the difference in the expected alignment of the `uiPopupMenu` which is 16 bytes and the actual alignment returned by the `MEM_mallocN()` which is 8 bytes due to the memory head. Now made it so that `MEM_new()` can be used for types with any alignment. Differential Revision: https://developer.blender.org/D16375
2022-11-03Cleanup: cmake comment line lengthCampbell Barton
2022-11-02Cycles: Add regression test for util_md5_stringSergey Sharybin
2022-11-02Cleanup: spelling in commentsCampbell Barton
2022-11-01Fix T102194: unhandled number keys on AZERTY layout under WaylandCampbell Barton
Support layouts such as AZERTY where the shift key is held for number keys. Text entry remains unchanged but these keys now activate shortcuts as expected. This matches a fix in X11 for the same problem: T47228.
2022-11-01Cleanup: spelling in commentsCampbell Barton
2022-11-01Cleanup: disambiguate naming for Wayland surfacesCampbell Barton
Name surfaces for their use.
2022-11-01GHOST/Wayland: support for multiple seats (one active seat at a time)Campbell Barton
This isn't full multi-seat support, instead set the active seat using pointer/tablet & keyboard enter handlers. This means that seats beside the first aren't prevented from having their events handled.
2022-10-28Cycles: add Equiangular Cubemap Face camera projectionDamian Trebilco
This can be used for example for VR video formats that use this projection instead of perspective projection for cubemap faces. Differential Revision: https://developer.blender.org/D13525
2022-10-28Cleanup: formatCampbell Barton
2022-10-28Cleanup: quiet unused argument warnings and minor changes in GHOSTCampbell Barton
2022-10-28Fix error in leaving the tablet pointer set under WaylandCampbell Barton
Missed clearing the tablet pointer after updating removing the tablet manager.
2022-10-28GHOST/Wayland: code-commentsCampbell Barton
Note issues with track-pad event handling, add some other notes too.
2022-10-28Fix failure to clear DND in_use in rare cases under WaylandCampbell Barton
If opening a pipe failed, 'data_offer->dnd.in_use' wasn't cleared. Avoid early return where it duplicates logic in an error prone way.
2022-10-28Cleanup: use common prefix for static ghost/wayland variablesCampbell Barton
File level static variable names weren't well distinguished from others. Use `ghost_wl_` prefix for static variables.
2022-10-28GHOST/Wayland: improve code-commentsCampbell Barton
2022-10-28Cleanup: use plain 'char *' for mime types in GHOST/WaylandCampbell Barton
There wasn't much advantage in using C++ native types as all Wayland API's deal with C strings.
2022-10-28Cleanup: move GWL_DataOffer in_use to the 'dnd' structCampbell Barton
It wasn't clear that this is only used for drag & drop, also don't use an atomic type as all access is guarded by the drag & drop mutex.
2022-10-28GHOST/Wayland: postpone reading from the clipboard until neededCampbell Barton
A copy of the clipboard was always being, changes would re-read it. Now read the clipboard on request. This avoids having to keep a copy of the clipboard in memory as well as the need to keep a thread to running to read the clipboard for each data-offer. To prevent a deadlock when pasting from Blender's own clipboard. - Sending the clipboard (using write(..)) runs in a background thread. - Reading the clipboard uses a thread that performs round-trips to the Wayland server to prevent until the read is complete. This is an update to [0] that resolves the deadlock. [0]: c03838dbc8cc4a85cfc93914493a0f1562a53366
2022-10-28GHOST/Wayland: unlock clipboard mutex on failureCampbell Barton
When the Wayland pipe can't be opened, don't leave the mutex locked. Also skip checking wl_data_device_manager when reading from the primary clipboard.
2022-10-28Cycles: fix up logic in oneAPI devices filteringXavier Hallade
CYCLES_ONEAPI_ALL_DEVICES environment variable wasn't working as intended after 305b92e05f748a0fd9cb62b9829791d717ba2d57.
2022-10-27Fix T102085: X11 Startup crashAnton Raves
wl_registry_destroy does not enjoy being fed a null pointer. Added a null check to keep it out of trouble.
2022-10-27GHOST/Wayland: replace deferred registration with an update callbackCampbell Barton
There were two issues caused by deferred registration (added by [0]), one crash on startup (T102075), another unreported issue with the GLX/EGL context failing to initialize. Unfortunately I'm unable to reproduce the errors but it seems likely deferring interface registration is not well supported so this commit uses an alternative solution to some interfaces depending on others for initialization. Instead of relying on the order of registration, a separate "update" callback has been added which is called after binding interfaces. This has the advantage that it can be called when adding/removing interfaces at run-time to avoid the dangling pointers being left in locally allocated structures. In practice adding/removing interfaces happens so rarely (only with "outputs" as far as I'm aware) that this benefit is theoretical at the moment. This should resolve T102075. [0]: 9fe9705bc0af9d881905d75957c8dd467f8c8cb3
2022-10-26Cycles: List Level-Zero in oneAPI device requirements in the UI on LinuxXavier Hallade
Intel documentation for Ubuntu 22.04 does list all runtime components needed by the driver and oneAPI Cycles device but end-users getting drivers from (other) sources can easily end-up missing required Level-Zero Loader and struggle root causing what's wrong in their system. Calling this requirement out in the UI will hopefull help them. oneAPI Level-Zero incl. Loader: https://github.com/oneapi-src/level-zero Common package names: level-zero, level-zero-loader
2022-10-26Cycles: use packed float3 back for oneAPIXavier Hallade
This fixes a 15% performance regression silently introduced by 79ab76e156d4bde937335be784cdf220294600d5 that aligned the compact float3 on 16 bytes for oneAPI. Current change is minimalist, there are further cleanup opportunities such as removing packed_float3 definition for oneAPI but for some reason, it cuts the recovered speedup in half, so we're starting with this small fix for now. Reviewed by: brecht Differential Revision: https://developer.blender.org/D16340
2022-10-26Fix T101790: MNEE caustic settings are not visible in the UI when using MetalMichael Jones
This patch fixes T101790 by adding a macOS version check for deciding whether to show the caustics settings in the UI (MNEE kernels don't compile on macOS < 13.0) Reviewed By: brecht Maniphest Tasks: T101790 Differential Revision: https://developer.blender.org/D16339
2022-10-26Revert "GHOST/Wayland: postpone reading from the clipboard until needed"Campbell Barton
This reverts commit c03838dbc8cc4a85cfc93914493a0f1562a53366. Pasting from Blender's own clipboard locked the process. This needs furhter investigation.
2022-10-26GHOST/Wayland: postpone reading from the clipboard until neededCampbell Barton
A copy of the clipboard was always being, changes would re-read it. Now read the clipboard on request. This avoids having to keep a copy of the clipboard in memory as well as the need to keep a thread to running to read the clipboard for each data-offer.
2022-10-26Cleanup: remove GWL_RegisteryAdd_Params.wl_registryCampbell Barton
No longer needed now GWL_Display holds a reference to the registry.
2022-10-26GHOST/Wayland: support device add/removal at runtimeCampbell Barton
Keep the registry listener active at runtime, now plugging/unplugging monitors at run-time is detected and the associated data stored by Blender is added/removed as well. Previously all interfaces were detected at startup, afterwards no changes were supported.
2022-10-26GHOST/Wayland: use a predictable order for interface registrationCampbell Barton
Defer interface registration so all known interfaces can be called in the order defined by the array of supported types. Without this, the compositor defined the order of registration so it wasn't possible to rely on registration functions to depend on other interfaces. This caused initialization for 'seats' to be moved out of the register callback to ensure multiple interfaces were initialized. This isn't good for readability or maintenance since it meant the add/remove callbacks didn't act on matching data.
2022-10-25Fix window flickering when moving windows between monitors in WaylandCampbell Barton
Moving widows between monitors with different scale set could flicker in a feedback loop because the bounds of the window resizing could cause the bounds of the windows to overlap different monitors. Now the window is resized immediately, instead of letting the change to the windows surface scale resize the window.
2022-10-25Fix Cycles build error on 32bit x86Brecht Van Lommel
2022-10-25Fix T102048: Tablet cursor remains hidden under KDE/WaylandCampbell Barton
2022-10-25GHOST/Wayland: swap tablet middle/right mouse buttonsCampbell Barton
There looks to be an inconsistency between Gnome/KDE here, match KDE and Gnome applications under X11 (even XWayland) by making the button closest to the nib MMB, and the other button RMB.
2022-10-25GHOST/Wayland: store fractional scaling in each window instead of DPICampbell Barton
This makes it possible to access the fractional scaling for a window, there is no need to store the DPI which can be returned by getDPIHint().
2022-10-25Cleanup: move singleton pointers into the systemCampbell Barton
Avoid top level global pointers, remove the window_manager pointer and move the clipboard mutex along side the clipboard data. Also skip updating window DPI if the window doesn't use the output that changed it's scale.
2022-10-25Cleanup: move ghost/wayland local methods after type declarationsCampbell Barton
Also correct prefix naming.
2022-10-25Fix T82412: Space-mouse not registering (WIN32)Campbell Barton
Using the 3DConnexion Universal Wireless Receiver on MS-Windows caused a different ID to be reported. While I'm not sure of the cause of this, adding the ID doesn't conflict with other devices and fixes the problem.
2022-10-25Correct naming in 97414fb484fe37b8da69a2b570a659535bbf2a0fCampbell Barton
2022-10-25GHOST/Wayland: support adding/removing global objects at runtimeCampbell Barton
Share logic for adding/removing global objects and freeing them on exit. Refactor object registration add/remove into an array of callbacks to localize logic into generic functions for each kind of interface. Also corrects own error where the primary clipboard manager wasn't being destroyed on exit.
2022-10-24Cycles: Metal integrator state size tuningMichael Jones
This patch tunes the integrator state sizing for Metal (`num_concurrent_states` and `num_concurrent_busy_states`). On all GPUs architecture, we adjust the busy:total states ratio to be 1:4 which gives better rendering performance than the previous 1:16 ratio (independent of total state count). This gives a small performance uplift (e.g. 2-3% on M1 Ultra). Additionally for M2 architectures, we double the overall state size if there is available headroom. Inclusive of the first change, we can expect uplift of close to 10% in future, as this results in larger dispatch sizes and minimises work submission overheads. In order to make an accurate determination of available headroom, we defer the calculation of `num_concurrent_states` and `num_concurrent_busy_states` until the time of integrator state allocation (i.e. after all of the scene data has been allocated). We also refactor `alloc_integrator_soa` to calculate an *exact* single-state-size in a first pass, right before allocating the integrator SoA buffers in a second pass. Reviewed By: brecht Differential Revision: https://developer.blender.org/D16313
2022-10-23GHOST: expand GHOST_PRINT/PRINTF without WITH_GHOST_DEBUGCampbell Barton
It was too easy accidentally break builds without WITH_GHOST_DEBUG enabled because the arguments were ignored. Now they are expanded in an `if (0) {...}` block, so invalid expressions result in errors.
2022-10-23Fix build error when WITH_GHOST_DEBUG is enabledCampbell Barton
2022-10-23GHOST/Wayland: support building with older versions of pointer-gesturesCampbell Barton
Missing support for the hold gesture broke building on the build-bot. Since this gesture was only logged, it's harmless to leave it off.