Skip to content

Commit dc56bdb

Browse files
authored
Merge pull request #315 from GPUOpen-LibrariesAndSDKs/develop
Merge 3.2
2 parents a97dfb4 + aaa5f96 commit dc56bdb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1471
-795
lines changed

Changelog.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
# Version 3.2
2+
## New Features:
3+
- Subsurface Scattering and Volume shaders now work in RPR 2.0. This allows the rendering of organic materials, such as skin, which absorb light into their interior. Volume shaders can now also be used for simple fog boxes. Also the Volume Scatter node is supported.
4+
- Viewport denoising and upscaling improves the interactivity and speed of Viewport rendering. With the use of the Radeon Image Filter Library, this allows Radeon ProRender to render at half resolution faster, and then upscale to the full size of the Viewport.
5+
- Deformation motion blur gives accurate motion blur to objects which are being deformed, for example, a flag flapping in the wind or a ball squashing. Besides, motion blur export has been optimized, and a setting for disabling deformation motion blur has been added.
6+
- A new RPR Toon Shader has been added. This enables cartoon-style shading for a non-photorealistic look. Toon shaders can be used in a “simple” mode for just setting a color or a gradient of different colors for shadow vs lit areas of the object.
7+
- Support for Blender 2.93 has been added.
8+
- The look of “blocky” displacements has been significantly improved by enabling subdivision by default on objects with displacement shaders. However, this does render slower, and can be overridden with the RPR Object Subdivision settings.
9+
- Support has been added for Reflection Catcher and Transparent background in the Viewport in the Full mode.
10+
- Outline rendering (formerly called Contour rendering) is now moved to the view layer AOV section. Outline rendering can be enabled just as the other AOVs. The rendering process with Outline rendering enabled will take two passes per view layer, with the second doing the Outline rendering.
11+
- Support for (Shutter) Position in the Motion Blur settings has been added. This uses the cycles setting to control the shutter opening around the frame number.
12+
- Support for the Voronoi Texture node is added.
13+
14+
## Issues Fixed:
15+
- Improve prop name readability in Object visibility UI.
16+
- Texture compression was causing artifacts in some scenes. A “texture compression” setting has been added and defaulted to False. You can enable this setting for faster renders, but make sure that there are no texture artifacts.
17+
- The issue with the add-on not loading in versions of Blender downloaded from the Windows app store has been fixed.
18+
- Objects set as Reflection Catchers now work in the Full mode.
19+
- Overbright edges of objects with Uber shaders in metalness mode ― fixed.
20+
- Shaders with high roughness could have artifacts with reflection or refraction ― fixed.
21+
- Tiled rendering with a transparent background in the Full render quality has been fixed.
22+
- Occasional issues in starting the add-on in certain OSs have been fixed.
23+
- The option "Viewport Denoising and Upscaling" is saved to the scene settings.
24+
- Memory leak in Viewport rendering with the Upscale filter enabled has been fixed.
25+
- Image filters on Ubuntu20 have been fixed.
26+
- Iterating all of view layers when baking all objects have been fixed.
27+
- Fixed a crash in the viewport render if an object with hair and modifiers was not enabled for viewport display.
28+
- Fixed an error with math nodes set to “Smooth min” or “Compare” modes.
29+
30+
## Known Issues:
31+
- In RPR 2.0, heterogenous volumes, smoke and fire simulations or VDB files are not yet supported.
32+
- Subsurface scattering and volume shader are currently disabled on macOS due to long compile times.
33+
- Some AOVs may have artifacts on AMD cards with drivers earlier than 21.6.1
34+
35+
136
# Version 3.1
237
## New Features:
338
- Support for AMD Radeon™ RX 6700 XT graphics cards has been added.

RPRBlenderHelper/CMakeLists.txt

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ set (CMAKE_CXX_STANDARD 11)
88
set(RPR_SDK_DIR ${CMAKE_SOURCE_DIR}/../.sdk/rpr)
99
set(RPRTOOLS_DIR ${RPR_SDK_DIR}/rprTools)
1010
set(SHARED_DIR ${CMAKE_SOURCE_DIR}/../RadeonProRenderSharedComponents)
11-
set(OPENVDB_SDK_PATH ${SHARED_DIR}/OpenVdb)
1211

1312
set(SOURCES
1413
RPRBlenderHelper/RPRBlenderHelper.cpp
@@ -26,32 +25,52 @@ include_directories(
2625

2726
if(WIN32)
2827
list(APPEND SOURCES
29-
RPRBlenderHelper/OpenVdb.cpp
3028
RPRBlenderHelper/dllmain.cpp
3129
)
3230
include_directories(
33-
${OPENVDB_SDK_PATH}/include
3431
${SHARED_DIR}/RadeonProRenderLibs/rprLibs
3532
)
36-
3733
set(LIBS
3834
${RPR_SDK_DIR}/lib/RadeonProRender64.lib
39-
${OPENVDB_SDK_PATH}/Windows/lib/openvdb.lib
40-
${OPENVDB_SDK_PATH}/Windows/lib/Half-2_3.lib
41-
${OPENVDB_SDK_PATH}/Windows/lib/tbb.lib
4235
)
4336

4437
elseif(${APPLE})
45-
list(APPEND SOURCES
46-
RPRBlenderHelper/OpenVdb.cpp
47-
)
4838
include_directories(
49-
${OPENVDB_SDK_PATH}/include
5039
${SHARED_DIR}/RadeonProRenderLibs/rprLibs
5140
)
52-
5341
set(LIBS
5442
${RPR_SDK_DIR}/bin/libRadeonProRender64.dylib
43+
)
44+
45+
else() # Linux
46+
set(LIBS ${RPR_SDK_DIR}/bin/libRadeonProRender64.so)
47+
48+
endif()
49+
50+
add_library(RPRBlenderHelper SHARED ${SOURCES})
51+
add_definitions(-DBLENDER_PLUGIN)
52+
target_link_libraries(RPRBlenderHelper ${LIBS})
53+
54+
55+
# Building RPRBlenderHelper with OPENVDB support
56+
set(OPENVDB_SDK_PATH ${SHARED_DIR}/OpenVdb)
57+
58+
list(APPEND SOURCES
59+
RPRBlenderHelper/OpenVdb.cpp
60+
)
61+
include_directories(
62+
${OPENVDB_SDK_PATH}/include
63+
)
64+
65+
if(WIN32)
66+
list(APPEND LIBS
67+
${OPENVDB_SDK_PATH}/Windows/lib/openvdb.lib
68+
${OPENVDB_SDK_PATH}/Windows/lib/Half-2_3.lib
69+
${OPENVDB_SDK_PATH}/Windows/lib/tbb.lib
70+
)
71+
72+
elseif(${APPLE})
73+
list(APPEND LIBS
5574
${OPENVDB_SDK_PATH}/OSX/lib/libopenvdb.a
5675
${OPENVDB_SDK_PATH}/OSX/lib/libz.a
5776
${OPENVDB_SDK_PATH}/OSX/lib/libblosc.a
@@ -60,13 +79,11 @@ elseif(${APPLE})
6079
${OPENVDB_SDK_PATH}/OSX/lib/libtbb.a
6180
)
6281

63-
else() # Linux
64-
set(LIBS ${RPR_SDK_DIR}/bin/libRadeonProRender64.so)
82+
else()
83+
return()
6584

6685
endif()
6786

68-
add_library(RPRBlenderHelper SHARED ${SOURCES})
69-
87+
add_library(RPRBlenderHelper_vdb SHARED ${SOURCES})
7088
add_definitions(-DBLENDER_PLUGIN)
71-
72-
target_link_libraries(RPRBlenderHelper ${LIBS})
89+
target_link_libraries(RPRBlenderHelper_vdb ${LIBS})

RadeonProImageProcessingSDK

RadeonProRenderSDK

Submodule RadeonProRenderSDK updated 92 files

build.cmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ py -3.7 src\bindings\pyrpr\src\pyrprapi.py %castxml%
7676
set bindingsOk=.\bindings-ok
7777
if exist %bindingsOk% (
7878
py -3.7 build.py
79+
py -3.9 build.py
7980
) else (
8081
echo Compiling bindings failed
8182
)

build.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import platform
2121
import subprocess
2222
from pathlib import Path
23-
import shutil
2423

2524

2625
arch = platform.architecture()
@@ -37,18 +36,17 @@
3736
os.chdir(str(pyrpr_path))
3837
pyrpr_build_dir = Path('.build')
3938

40-
if Path('.build').exists():
41-
shutil.rmtree(str(pyrpr_build_dir))
42-
4339
subprocess.check_call([sys.executable, 'rpr.py'])
4440
subprocess.check_call([sys.executable, 'rpr_load_store.py'])
4541
os.chdir(cwd)
4642

47-
os.chdir('RPRBlenderHelper')
48-
os.makedirs('.build', exist_ok=True)
49-
os.chdir('.build')
50-
if 'Windows' == platform.system():
51-
subprocess.check_call(['cmake', '-G', 'Visual Studio 14 2015 Win64', '..'])
52-
else:
53-
subprocess.check_call(['cmake', '..'])
54-
subprocess.check_call(['cmake', '--build', '.', '--config', 'Release', '--clean-first'])
43+
if sys.version_info.major == 3 and sys.version_info.minor == 7:
44+
# we are going to build RPRBlenderHelper only for python 3.7
45+
os.chdir('RPRBlenderHelper')
46+
os.makedirs('.build', exist_ok=True)
47+
os.chdir('.build')
48+
if 'Windows' == platform.system():
49+
subprocess.check_call(['cmake', '-G', 'Visual Studio 14 2015 Win64', '..'])
50+
else:
51+
subprocess.check_call(['cmake', '..'])
52+
subprocess.check_call(['cmake', '--build', '.', '--config', 'Release', '--clean-first'])

build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ if [ -f "$cxml" ]; then
44
python3.7 src/bindings/pyrpr/src/pyrprapi.py $cxml
55
if [ -f "./bindings-ok" ]; then
66
python3.7 build.py
7+
python3.9 build.py
78
else
89
echo Compiling bindings failed
910
fi

build_osx.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ if [ -f "$cxml" ]; then
1717
python3.7 src/bindings/pyrpr/src/pyrprapi.py $cxml
1818
if [ -f "./bindings-ok" ]; then
1919
python3.7 build.py
20+
python3.9 build.py
2021
#sh osx/postbuild.sh
2122
else
2223
echo Compiling bindings failed

cmd_tools/create_sdk.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ def recreate_sdk():
3737
copy_rif_sdk()
3838

3939

40+
def find_file(path, glob):
41+
return next(f for f in path.glob(glob) if not f.is_symlink())
42+
43+
4044
def copy_rpr_sdk():
4145
rpr_dir = Path("RadeonProRenderSDK/RadeonProRender")
4246

@@ -85,7 +89,7 @@ def copy_rif_sdk():
8589
# getting rif bin_dir
8690
os_str = {
8791
'Windows': "Windows",
88-
'Linux': "Ubuntu18",
92+
'Linux': "Ubuntu20",
8993
'Darwin': "OSX"
9094
}[OS]
9195
bin_dir = rif_dir / os_str / "Dynamic"
@@ -109,27 +113,32 @@ def copy_rif_sdk():
109113
shutil.copy(str(lib), str(sdk_lib_dir))
110114

111115
elif OS == 'Linux':
112-
shutil.copy(str(bin_dir / "libRadeonImageFilters.so.1.6.1"),
116+
shutil.copy(str(find_file(bin_dir, "libRadeonImageFilters.so*")),
113117
str(sdk_bin_dir / "libRadeonImageFilters.so"))
114-
shutil.copy(str(bin_dir / "libRadeonML_MIOpen.so.0.9.8"),
118+
shutil.copy(str(find_file(bin_dir, "libRadeonML_MIOpen.so*")),
115119
str(sdk_bin_dir / "libRadeonML_MIOpen.so"))
116-
shutil.copy(str(bin_dir / "libOpenImageDenoise.so.0.9.0"),
120+
shutil.copy(str(find_file(bin_dir, "libOpenImageDenoise.so*")),
117121
str(sdk_bin_dir / "libOpenImageDenoise.so"))
118-
shutil.copy(str(bin_dir / "libMIOpen.so.2.0.4"),
122+
shutil.copy(str(find_file(bin_dir, "libMIOpen.so.2*")),
119123
str(sdk_bin_dir / "libMIOpen.so.2"))
124+
shutil.copy(str(find_file(bin_dir, "libRadeonML.so.0*")),
125+
str(sdk_bin_dir / "libRadeonML.so.0"))
120126

121127
elif OS == 'Darwin':
122-
shutil.copy(str(bin_dir / "libRadeonImageFilters.1.6.1.dylib"),
128+
shutil.copy(str(find_file(bin_dir, "libRadeonImageFilters*.dylib")),
123129
str(sdk_bin_dir / "libRadeonImageFilters.dylib"))
124-
shutil.copy(str(bin_dir / "libOpenImageDenoise.0.9.0.dylib"),
130+
shutil.copy(str(find_file(bin_dir, "libOpenImageDenoise*.dylib")),
125131
str(sdk_bin_dir / "libOpenImageDenoise.dylib"))
126-
shutil.copy(str(bin_dir / "libRadeonML_MPS.0.9.8.dylib"),
132+
shutil.copy(str(find_file(bin_dir, "libRadeonML_MPS*.dylib")),
127133
str(sdk_bin_dir / "libRadeonML_MPS.dylib"))
134+
shutil.copy(str(find_file(bin_dir, "libRadeonML.0*.dylib")),
135+
str(sdk_bin_dir / "libRadeonML.0.dylib"))
128136

129137
# adjusting id of RIF libs
130138
install_name_tool('-id', "@rpath/libRadeonImageFilters.dylib", sdk_bin_dir / "libRadeonImageFilters.dylib")
131139
install_name_tool('-id', "@rpath/libOpenImageDenoise.dylib", sdk_bin_dir / "libOpenImageDenoise.dylib")
132140
install_name_tool('-id', "@rpath/libRadeonML_MPS.dylib", sdk_bin_dir / "libRadeonML_MPS.dylib")
141+
install_name_tool('-id', "@rpath/libRadeonML.0.dylib", sdk_bin_dir / "libRadeonML.0.dylib")
133142

134143
else:
135144
raise KeyError("Unsupported OS", OS)

run_blender_with_rpr.cmd

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ REM *******************************************************************
1919

2020
if ""=="%BLENDER_EXE%" goto error
2121

22+
REM set Debug Mode flag
23+
set RPR_BLENDER_DEBUG=1
24+
2225
py cmd_tools/run_blender.py "%BLENDER_EXE%" cmd_tools/test_rpr.py
2326
pause
2427
REM it's much easier to get issue traceback on crash if pause is present; remove if not needed

0 commit comments

Comments
 (0)