From 5b7036499dcd7fa8f547ddb4265c15855b77082e Mon Sep 17 00:00:00 2001 From: Marcus von Appen Date: Mon, 4 Feb 2013 21:19:38 +0000 Subject: - Add a RAYOPTIMIZATION option for the ray optimization code to allow i386 systems without SSE2 to build blender properly - Add CYCLESOSL option to add support for cycles render shaders - Clean up some PLIST_SUB leftovers PR: ports/175490 Submitted by: chris@imagemetrica.com --- graphics/blender/Makefile | 46 +++++++++++++--------- .../files/patch-intern_cycles_render_osl.cpp | 11 ++++++ 2 files changed, 38 insertions(+), 19 deletions(-) create mode 100644 graphics/blender/files/patch-intern_cycles_render_osl.cpp (limited to 'graphics') diff --git a/graphics/blender/Makefile b/graphics/blender/Makefile index 0eee00318c14..48dd02e0df4a 100644 --- a/graphics/blender/Makefile +++ b/graphics/blender/Makefile @@ -3,7 +3,7 @@ PORTNAME= blender PORTVERSION= 2.65a -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= graphics games MASTER_SITES= http://download.blender.org/source/ \ http://mirror.cs.umn.edu/blender.org/source/ \ @@ -36,21 +36,22 @@ OUTDIR= ${INSTALL_WRKSRC}/bin/2.65 LANG= ar cs de eo es es_ES fa fr he hr hu id it ja ky nl pt pt_BR ru \ sr sr@latin sv tr uk zh_CN zh_TW -OPTIONS_DEFINE= BOOLEAN BULLET CINEON CAMERATRACK CYCLES DDS FFMPEG FFTW3 \ - GAMEENGINE HDR HEADLESS JACK NLS MENU OCEANSIM OPENAL \ - OPENCOLORIO OPENEXR OPENJPEG OPENMP PLAYER REDCODE SAMPLERATE \ - SDL SNDFILE TIFF XINPUT XF86VMODE -OPTIONS_DEFAULT= BOOLEAN BULLET CINEON CYCLES DDS GAMEENGINE HDR JACK \ - OPENAL OPENCOLORIO OPENEXR OPENJPEG OPENMP PLAYER \ - SAMPLERATE SDL TIFF XINPUT XF86VMODE +OPTIONS_DEFINE= BOOLEAN BULLET CINEON CAMERATRACK CYCLES CYCLESOSL DDS FFMPEG \ + FFTW3 GAMEENGINE HDR HEADLESS JACK NLS MENU OCEANSIM OPENAL \ + OPENCOLORIO OPENEXR OPENJPEG OPENMP PLAYER RAYOPTIMIZATION \ + REDCODE SAMPLERATE SDL SNDFILE TIFF XINPUT XF86VMODE +OPTIONS_DEFAULT= BOOLEAN BULLET CINEON CYCLES CYCLESOSL DDS GAMEENGINE \ + HDR JACK OPENAL OPENCOLORIO OPENEXR OPENJPEG OPENMP \ + PLAYER SAMPLERATE SDL TIFF XINPUT XF86VMODE BOOLEAN_DESC= Boolean library support BULLET_DESC= Bullet physics engine CINEON_DESC= CINEON and DPX graphics format support CAMERATRACK_DESC= Camera tracking support CYCLES_DESC= Cycles render engine support +CYCLESOSL_DESC= Shading support for the cycles render engine DDS_DESC= DDS graphics format support -FFTW3_DESC= Floating point support using fftw +FFTW3_DESC= Use fftw for smoke and audio effects GAMEENGINE_DESC= Enable the game engine HDR_DESC= Generic high dynamic-range (HDR) support HEADLESS_DESC= Disable user interface (for render-farms) @@ -58,6 +59,7 @@ MENU_DESC= Install desktop menu OCEANSIM_DESC= Ocean simulation support OPENCOLORIO_DESC= OpenColorIO-based color management support PLAYER_DESC= Enable blender player +RAYOPTIMIZATION_DESC= Enable SSE optimizatons for raytracing REDCODE_DESC= RedCode graphics format support SDL_DESC= Audio and Joystick support using SDL XINPUT_DESC= X11 Xinput (tablet) support @@ -66,7 +68,6 @@ XF86VMODE_DESC= X11 video mode switching support # TODO: provide switches for the following options # # WITH_IMAGE_FRAMESERVER WITH_LZO WITH_LZMA WITH_LIBMV WITH_INPUT_NDOF -# WITH_RAYOPTIMIZATION WITH_CYCLES_OSL WITH_COMPOSITOR .include @@ -103,10 +104,18 @@ IGNORE= cycles render engine only works in FreeBSD 8 or later .endif CMAKE_ARGS+= -DWITH_CYCLES:BOOL=ON LIB_DEPENDS+= OpenImageIO:${PORTSDIR}/graphics/openimageio -PLIST_SUB+= CYCLES="" .else CMAKE_ARGS+= -DWITH_CYCLES:BOOL=OFF -PLIST_SUB+= CYCLES="@comment " +.endif + +.if ${PORT_OPTIONS:MCYCLESOSL} +.if !${PORT_OPTIONS:MCYCLES} +IGNORE= support for the OpenShadingLanguage in cycles obviously requires CYCLES +.endif +CMAKE_ARGS+= -DWITH_CYCLES_OSL:BOOL=ON +LIB_DEPENDS+= oslexec:${PORTSDIR}/graphics/openshadinglanguage +.else +CMAKE_ARGS+= -DWITH_CYCLES_OSL:BOOL=OFF .endif .if ${PORT_OPTIONS:MDDS} @@ -156,18 +165,13 @@ CMAKE_ARGS+= -DWITH_JACK:BOOL=OFF .if ${PORT_OPTIONS:MMENU} USE_GNOME= desktopfileutils -PLIST_SUB+= MENU="" -.else -PLIST_SUB+= MENU="@comment " .endif .if ${PORT_OPTIONS:MNLS} USE_GETTEXT= yes USE_ICONV= yes -PLIST_SUB+= NLS="" CMAKE_ARGS+= -DWITH_INTERNATIONAL:BOOL=ON .else -PLIST_SUB+= NLS="@comment " CMAKE_ARGS+= -DWITH_INTERNATIONAL:BOOL=OFF .endif @@ -221,16 +225,20 @@ CMAKE_ARGS+= -DWITH_OPENMP:BOOL=OFF .if ${PORT_OPTIONS:MPLAYER} .if ${PORT_OPTIONS:MGAMEENGINE} -PLIST_SUB+= PLAYER="" CMAKE_ARGS+= -DWITH_PLAYER:BOOL=ON .else BROKEN= PLAYER requires GAMEENGINE .endif .else -PLIST_SUB+= PLAYER="@comment " CMAKE_ARGS+= -DWITH_PLAYER:BOOL=OFF .endif +.if ${PORT_OPTIONS:MRAYOPTIMIZATION} +CMAKE_ARGS+= -DWITH_RAYOPTIMIZATION:BOOL=ON +.else +CMAKE_ARGS+= -DWITH_RAYOPTIMIZATION:BOOL=OFF +.endif + .if ${PORT_OPTIONS:MREDCODE} .if ${PORT_OPTIONS:MOPENJPEG} && ${PORT_OPTIONS:MFFMPEG} CMAKE_ARGS+= -DWITH_IMAGE_REDCODE:BOOL=ON diff --git a/graphics/blender/files/patch-intern_cycles_render_osl.cpp b/graphics/blender/files/patch-intern_cycles_render_osl.cpp new file mode 100644 index 000000000000..673affc4c92f --- /dev/null +++ b/graphics/blender/files/patch-intern_cycles_render_osl.cpp @@ -0,0 +1,11 @@ +--- intern/cycles/render/osl.cpp.orig 2013-02-02 23:31:36.000000000 +0100 ++++ intern/cycles/render/osl.cpp 2013-02-02 23:31:56.000000000 +0100 +@@ -277,7 +277,7 @@ + + const char *OSLShaderManager::shader_load_bytecode(const string& hash, const string& bytecode) + { +- ss->LoadMemoryShader(hash.c_str(), bytecode.c_str()); ++ ss->LoadMemoryCompiledShader(hash.c_str(), bytecode.c_str()); + + /* this is a bit weak, but works */ + OSLShaderInfo info; -- cgit v1.2.3