diff options
author | Paul Zander <negril.nx+gentoo@gmail.com> | 2023-10-11 23:23:32 +0200 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-10-27 03:31:52 +0100 |
commit | 824eb57e50e0f5039d42f39e0caa5461d8d73468 (patch) | |
tree | 6e51ac28603fdd0a0982f81cd70714ac595a346d /media-gfx/blender/files | |
parent | media-gfx/blender: add quotes around variables containing whitespaces (diff) | |
download | gentoo-824eb57e50e0f5039d42f39e0caa5461d8d73468.tar.gz gentoo-824eb57e50e0f5039d42f39e0caa5461d8d73468.tar.bz2 gentoo-824eb57e50e0f5039d42f39e0caa5461d8d73468.zip |
media-gfx/blender: add 3.6.5, update 9999
* add 3.6.5 LTS
* upstream fixed
https://projects.blender.org/blender/blender/pulls/113163 in
https://projects.blender.org/blender/blender/issues/112917
* add it to 3.6.5
* drop blockers for 3.6.5 and 9999
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-gfx/blender/files')
-rw-r--r-- | media-gfx/blender/files/blender-4.0.0-ocio-2.3.0.patch | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/media-gfx/blender/files/blender-4.0.0-ocio-2.3.0.patch b/media-gfx/blender/files/blender-4.0.0-ocio-2.3.0.patch new file mode 100644 index 000000000000..e6cc4a6fa026 --- /dev/null +++ b/media-gfx/blender/files/blender-4.0.0-ocio-2.3.0.patch @@ -0,0 +1,110 @@ +From 458917773afb4cdf8e1189c0bf5aff7feda6a664 Mon Sep 17 00:00:00 2001 +From: Brecht Van Lommel <brecht@blender.org> +Date: Mon, 2 Oct 2023 17:31:08 +0200 +Subject: [PATCH] Build: changes to build with OpenColorIO 2.3 + +Ref #113157 +--- + intern/opencolorio/ocio_impl_glsl.cc | 12 +++++++++- + .../ocio_color_space_conversion_shader.cc | 24 +++++++++++++++++++ + 2 files changed, 35 insertions(+), 1 deletion(-) + +diff --git a/intern/opencolorio/ocio_impl_glsl.cc b/intern/opencolorio/ocio_impl_glsl.cc +index 8d46a2f0773..35e4d0b7a90 100644 +--- a/intern/opencolorio/ocio_impl_glsl.cc ++++ b/intern/opencolorio/ocio_impl_glsl.cc +@@ -343,8 +343,15 @@ static bool addGPULut1D2D(OCIO_GPUTextures &textures, + unsigned int height = 0; + GpuShaderCreator::TextureType channel = GpuShaderCreator::TEXTURE_RGB_CHANNEL; + Interpolation interpolation = INTERP_LINEAR; ++#if OCIO_VERSION_HEX >= 0x02030000 ++ /* Always use 2D textures in OpenColorIO 2.3, simpler and same performance. */ ++ GpuShaderDesc::TextureDimensions dimensions = GpuShaderDesc::TEXTURE_2D; ++ shader_desc->getTexture( ++ index, texture_name, sampler_name, width, height, channel, dimensions, interpolation); ++#else + shader_desc->getTexture( + index, texture_name, sampler_name, width, height, channel, interpolation); ++#endif + + const float *values; + shader_desc->getTextureValues(index, values); +@@ -358,6 +365,7 @@ static bool addGPULut1D2D(OCIO_GPUTextures &textures, + GPU_R16F; + + OCIO_GPULutTexture lut; ++#if OCIO_VERSION_HEX < 0x02030000 + /* There does not appear to be an explicit way to check if a texture is 1D or 2D. + * It depends on more than height. So check instead by looking at the source. */ + std::string sampler1D_name = std::string("sampler1D ") + sampler_name; +@@ -365,7 +373,9 @@ static bool addGPULut1D2D(OCIO_GPUTextures &textures, + lut.texture = GPU_texture_create_1d( + texture_name, width, 1, format, GPU_TEXTURE_USAGE_SHADER_READ, values); + } +- else { ++ else ++#endif ++ { + lut.texture = GPU_texture_create_2d( + texture_name, width, height, 1, format, GPU_TEXTURE_USAGE_SHADER_READ, values); + } +diff --git a/source/blender/compositor/realtime_compositor/cached_resources/intern/ocio_color_space_conversion_shader.cc b/source/blender/compositor/realtime_compositor/cached_resources/intern/ocio_color_space_conversion_shader.cc +index 4cdbb52a6ba..52492754c0f 100644 +--- a/source/blender/compositor/realtime_compositor/cached_resources/intern/ocio_color_space_conversion_shader.cc ++++ b/source/blender/compositor/realtime_compositor/cached_resources/intern/ocio_color_space_conversion_shader.cc +@@ -95,6 +95,18 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator { + return GPU_max_texture_size(); + } + ++# if OCIO_VERSION_HEX >= 0x02030000 ++ void setAllowTexture1D(bool allowed) override ++ { ++ allow_texture_1D_ = allowed; ++ } ++ ++ bool getAllowTexture1D() const override ++ { ++ return allow_texture_1D_; ++ } ++# endif ++ + bool addUniform(const char *name, const DoubleGetter &get_double) override + { + /* Check if a resource exists with the same name and assert if it is the case, returning false +@@ -201,6 +213,9 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator { + uint width, + uint height, + TextureType channel, ++# if OCIO_VERSION_HEX >= 0x02030000 ++ OCIO::GpuShaderDesc::TextureDimensions dimensions, ++# endif + OCIO::Interpolation interpolation, + const float *values) override + { +@@ -216,7 +231,11 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator { + GPUTexture *texture; + eGPUTextureFormat texture_format = (channel == TEXTURE_RGB_CHANNEL) ? GPU_RGB16F : GPU_R16F; + /* A height of 1 indicates a 1D texture according to the OCIO API. */ ++# if OCIO_VERSION_HEX >= 0x02030000 ++ if (dimensions == OCIO::GpuShaderDesc::TEXTURE_1D) { ++# else + if (height == 1) { ++# endif + texture = GPU_texture_create_1d( + texture_name, width, 1, texture_format, GPU_TEXTURE_USAGE_SHADER_READ, values); + shader_create_info_.sampler(textures_.size() + 1, ImageType::FLOAT_1D, resource_name); +@@ -398,6 +417,11 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator { + /* A vectors that stores the created uniform buffers when bind_shader_and_resources() is called, + * so that they can be properly unbound and freed in the unbind_shader_and_resources() method. */ + Vector<GPUUniformBuf *> uniform_buffers_; ++ ++# if OCIO_VERSION_HEX >= 0x02030000 ++ /* Allow creating 1D textures, or only use 2D textures. */ ++ bool allow_texture_1D_ = true; ++# endif + }; + + #else +-- +2.30.2 + |