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
AgeCommit message (Collapse)Author
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-09-27Cycles: Add optional per-kernel performance statisticsNikita Sirgienko
When verbose level 4 is enabled, Blender prints kernel performance data for Cycles on GPU backends (except Metal that doesn't use debug_enqueue_* methods) for groups of kernels. These changes introduce a new CYCLES_DEBUG_PER_KERNEL_PERFORMANCE environment variable to allow getting timings for each kernels separately and not grouped with others. This is done by adding explicit synchronization after each kernel execution. Differential Revision: https://developer.blender.org/D15971
2022-08-15GPU: replace GLEW with libepoxyChristian Rauch
With libepoxy we can choose between EGL and GLX at runtime, as well as dynamically open EGL and GLX libraries without linking to them. This will make it possible to build with Wayland, EGL, GLVND support while still running on systems that only have X11, GLX and libGL. It also paves the way for headless rendering through EGL. libepoxy is a new library dependency, and is included in the precompiled libraries. GLEW is no longer a dependency, and WITH_SYSTEM_GLEW was removed. Includes contributions by Brecht Van Lommel, Ray Molenkamp, Campbell Barton and Sergey Sharybin. Ref T76428 Differential Revision: https://developer.blender.org/D15291
2022-06-28Cycles: enable Vega GPU/APU supportSayak Biswas
Enables Vega and Vega II GPUs as well as Vega APU, using changes in HIP code to support 64-bit waves and a new HIP SDK version. Tested with Radeon WX9100, Radeon VII GPUs and Ryzen 7 PRO 5850U with Radeon Graphics APU. Ref T96740, T91571 Differential Revision: https://developer.blender.org/D15242
2022-06-20Cleanup: renaming and consistency for kernel dataBrecht Van Lommel
* Rename "texture" to "data array". This has not used textures for a long time, there are just global memory arrays now. (On old CUDA GPUs there was a cache for textures but not global memory, so we used to put all data in textures.) * For CUDA and HIP, put globals in KernelParams struct like other devices. * Drop __ prefix for data array names, no possibility for naming conflict now that these are in a struct.
2022-06-17Cleanup: add verbose logging category names instead of numbersBrecht Van Lommel
And use them more consistently than before.
2022-05-31Merge branch 'blender-v3.2-release'Brecht Van Lommel
2022-05-31Fix Cycles MNEE not working for MetalBrecht Van Lommel
Move MNEE to own kernel, separate from shader ray-tracing. This does introduce the limitation that a shader can't use both MNEE and AO/bevel, but that seems like the better trade-off for now. We can experiment with bigger kernel organization changes later. Differential Revision: https://developer.blender.org/D15070
2022-05-23Cycles: Add half precision float support for volumes with NanoVDBPatrick Mours
This patch makes it possible to change the precision with which to store volume data in the NanoVDB data structure (as float, half, or using variable bit quantization) via the previously unused precision field in the volume data block. It makes it possible to further reduce memory usage during rendering, at a slight cost to the visual detail of a volume. Differential Revision: https://developer.blender.org/D10023
2022-04-19Cleanup: Remove unused function in Cycles queueSergey Sharybin
Noticed while looking into oneAPI patch. Seems to be unused, without clear indication why/when it might be needed. Removing the function simplifies adding the new backend. Differential Revision: https://developer.blender.org/D14652
2022-04-12Revert "Cycles: enable HIP for Vega and Vega II (Radeon 7) GPUs on Windows"Brecht Van Lommel
This is not currently working, reverting until the driver/compiler has a fix. This reverts commit c46e58817cd72d1481967d32e3c6f47f42933d39.
2022-03-24Cycles: enable HIP for Vega and Vega II (Radeon 7) GPUs on WindowsBrian Savery
Basic testing on windows only so far. Will need some testing on Linux as well when the Linux enablement patch is ready. Does not enable Vega APUs yet (which would be gfx902 or gfx90c). Differential Revision: https://developer.blender.org/D14432
2022-02-16Merge branch 'blender-v3.1-release'Brecht Van Lommel
2022-02-16Cycles: restore basic standalone GUI, now using SDLBrecht Van Lommel
GLUT does not support offscreen contexts, which is required for the new display driver. So we use SDL instead. Note that this requires using a system SDL package, the Blender precompiled SDL does not include the video subsystem. There is currently no text display support, instead info is printed to the terminal. This would require adding an embedded font and GLSL shaders, or using GUI library. Another improvement to be made is supporting OpenColorIO display transforms, right now we assume Rec.709 scene linear and display. All OpenGL, GLEW and SDL code was move out of core cycles and into app/opengl. This serves as a template for apps that want to integrate Cycles interactive rendering, with a simple OpenGLDisplayDriver example. In general this would be adapted to the graphics API and color management used by the app. Ref T91846
2022-02-11Cycles: use SPDX license headersBrecht Van Lommel
* Replace license text in headers with SPDX identifiers. * Remove specific license info from outdated readme.txt, instead leave details to the source files. * Add list of SPDX license identifiers used, and corresponding license texts. * Update copyright dates while we're at it. Ref D14069, T95597
2022-01-31Cleanup: use our own conventions for tags in commentsCampbell Barton
2021-11-30Cleanup: clang-format, trailing spaceCampbell Barton
2021-11-29Cycles: Metal readiness: Specify DeviceQueue::enqueue arg typesMichael Jones
This patch adds new arg-type parameters to `DeviceQueue::enqueue` and its overrides. This is in preparation for the Metal backend which needs this information for correct argument encoding. Ref T92212 Reviewed By: brecht Maniphest Tasks: T92212 Differential Revision: https://developer.blender.org/D13357
2021-11-23Merge branch 'blender-v3.0-release'Brecht Van Lommel
2021-11-23Fix T93109: Cycles HIP missing check for correct driver versionSayak Biswas
21.Q4 is required, older version should not show devices in the preferences. This adds a check for the file version of amdhip64.dll file during hipew initialization. Differential Revision: https://developer.blender.org/D13324
2021-11-23Merge branch 'blender-v3.0-release'Brecht Van Lommel
2021-11-23Fix T93244: Cycles HIP not working with multi GPU renderingSayak Biswas
Use the correct device function (hipDeviceGet) for multi GPU setups, instead of hipGetDevice which just returns the default device. Differential Revision: https://developer.blender.org/D13323
2021-11-22Merge branch 'blender-v3.0-release'Sergey Sharybin
2021-11-22Fix T90308: Cycles crash copying memory from device to hostSergey Sharybin
Happens when device runs out of memory and Cycles is moving some textures to the host memory. The delayed memory free for OptiX BVH was moving data from one device_memory to another, leaving the original device memory in an invalid state. This was ruining the allocation map in the CUDA device which is using pointer to the device_memory. This change makes it so the memory pointer is stolen from BVH into the delayed memory free list. Additionally, forbid copying and moving instances of device_memory and added sanity checks in the device implementation. Differential Revision: https://developer.blender.org/D13316
2021-11-22Cleanup: Clang-format of the HIP device implementationSergey Sharybin
2021-11-20Merge branch 'blender-v3.0-release'Brecht Van Lommel
2021-11-20Fix T92984: Cycles HIP crash with smoke volumesSayak Biswas
This fixes the the app crash happening when trying to render smoke as a dense 3D texture. The changes are related to matching up hipew with the actual HIP headers. Differential Revision: https://developer.blender.org/D13296
2021-11-17Cleanup: Remove unused show_samples() device code in Cycles.Thomas Dinges
2021-11-13Cleanup: spelling in comments, comment block formattingCampbell Barton
2021-11-13Cleanup: clang-formatCampbell Barton
2021-11-11Cleanup CUDA / HIP commentsThomas Dinges
Remove outdated CUDA comments for bindless textures and cleanup some HIP comments that still mentioned CUDA. Differential Revision: https://developer.blender.org/D13189
2021-11-11Merge branch 'blender-v3.0-release'Thomas Dinges
2021-11-11Fix wrong device check in HIP kernel compile.Thomas Dinges
Also cleanup some related code, that was falsely copied from CUDA. Differential Revision: https://developer.blender.org/D13180
2021-11-10Merge branch 'blender-v3.0-release'Brecht Van Lommel
2021-11-10Cycles: disable graphics interop for HIP devicesThomas Dinges
This is due to a driver bug, so disable it for now until it gets resolved in a future driver release. Ref T92972 Differential Revision: https://developer.blender.org/D13167
2021-11-09Merge branch 'blender-v3.0-release'Aaron Carlisle
2021-11-09Cycles: mark both RDNA and RDNA2 as support for HIPBrecht Van Lommel
2021-11-04Merge branch 'blender-v3.0-release'Germano Cavalcante
2021-11-04Cleanup: fix typoBrecht Van Lommel
2021-11-04Cycles: add code to check for supported HIP device architecturesBrecht Van Lommel
RDNA2 only for now to be conservative, but testing more hardware is underway. Ref T92393 Differential Revision: https://developer.blender.org/D12958
2021-11-04Fix Cycles HIP Kernels loading on Arch names with extra optionsBrian Savery
The kernel file names are search for based on the arch name, for example gfx1010. However HIP's gcnArchName can contain options such as xnack- in the name. For example gfx1010:sramecc-:xnack-. This revision tokenizes the info from gcnArchName and just uses the first token for choosing the Kernel file to use. Kernels are portable across those features in the arch name. Also remove the bit for recompiling ptx as clearly that is not relevant. Differential Revision: https://developer.blender.org/D13117
2021-11-01Merge branch 'blender-v3.0-release'Clément Foucault
2021-11-01Cleanup: Remove Cycles device checks for half float.Thomas Dinges
All supported devices support half float now, so we can remove the check. Differential Revision: https://developer.blender.org/D13021
2021-11-01Fix T92671: confusing Cycles debug logs about CPU architectureBrecht Van Lommel
Instead of printing debug flags listing various CPU and GPU settings that may or may not be used, print when we are using them. This include CPU kernel types, OptiX debugging and CUDA and HIP adaptive compilation. BVH type was already printed.
2021-10-26Cycles: remove prefix from source code file namesBrecht Van Lommel
Remove prefix of filenames that is the same as the folder name. This used to help when #includes were using individual files, but now they are always relative to the cycles root directory and so the prefixes are redundant. For patches and branches, git merge and rebase should be able to detect the renames and move over code to the right file.
2021-10-26Cycles: changes to source code folders structureBrecht Van Lommel
* Split render/ into scene/ and session/. The scene/ folder now contains the scene and its nodes. The session/ folder contains the render session and associated data structures like drivers and render buffers. * Move top level kernel headers into new folders kernel/camera/, kernel/film/, kernel/light/, kernel/sample/, kernel/util/ * Move integrator related kernel headers into kernel/integrator/ * Move OSL shaders from kernel/shaders/ to kernel/osl/shaders/ For patches and branches, git merge and rebase should be able to detect the renames and move over code to the right file.
2021-10-22Cycles: various fixes for HIP and compilation of HIP binariesSayak Biswas
* Additional structs added to the hipew loader for device props * Adds hipRTC functions to the loader for future usage * Enables CPU+GPU usage for HIP * Cleanup to the adaptive kernel compilation process * Fix for kernel compilation failures with HIP with latest master Ref T92393, D12958
2021-10-21Cycles: add shadow path compaction for GPU renderingBrecht Van Lommel
Similar to main path compaction that happens before adding work tiles, this compacts shadow paths before launching kernels that may add shadow paths. Only do it when more than 50% of space is wasted. It's not a clear win in all scenes, some are up to 1.5% slower. Likely caused by different order of scheduling kernels having an unpredictable performance impact. Still feels like compaction is just the right thing to avoid cases where a few shadow paths can hold up a lot of main paths. Differential Revision: https://developer.blender.org/D12944
2021-10-21Cleanup: make HIP and CUDA code more consistentBrecht Van Lommel
Ref D12834
2021-10-20Fix: Add cast to atof for CYCLES_CONCURRENT_STATES_FACTOR env variable parsing.William Leeson
The conversion from double to float was causing a build failure. Differential Revision: https://developer.blender.org/D12946