[Bf-blender-cvs] [711f521e423] cycles_texture_cache: Cycles: Texture cache capability is now a device property.
Stefan Werner
noreply at git.blender.org
Mon May 3 20:57:20 CEST 2021
Commit: 711f521e423b9557744301907c8310c2d0fcdb5e
Author: Stefan Werner
Date: Mon May 3 20:22:28 2021 +0200
Branches: cycles_texture_cache
https://developer.blender.org/rB711f521e423b9557744301907c8310c2d0fcdb5e
Cycles: Texture cache capability is now a device property.
===================================================================
M intern/cycles/render/image.cpp
M intern/cycles/render/image.h
M intern/cycles/render/image_oiio.cpp
===================================================================
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp
index 5de95a4409a..fe74ad1f7aa 100644
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/render/image.cpp
@@ -314,6 +314,7 @@ ImageManager::ImageManager(const DeviceInfo &info)
/* Set image limits */
features.has_half_float = info.has_half_images;
features.has_nanovdb = info.has_nanovdb;
+ features.has_texture_cache = false;
}
ImageManager::~ImageManager()
@@ -325,6 +326,7 @@ ImageManager::~ImageManager()
void ImageManager::set_oiio_texture_system(void *texture_system)
{
oiio_texture_system = texture_system;
+ features.has_texture_cache = texture_system != NULL;
}
bool ImageManager::set_animation_frame_update(int frame)
@@ -681,7 +683,7 @@ void ImageManager::device_load_image(Device *device, Scene *scene, int slot, Pro
Image *img = images[slot];
- if (oiio_texture_system && !img->builtin) {
+ if (features.has_texture_cache && !img->builtin) {
/* Get or generate a mip mapped tile image file.
* If we have a mip map, assume it's linear, not sRGB. */
const char *cache_path = scene->params.texture.use_custom_cache_path ?
diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h
index 054df0579f0..dd6602a4eeb 100644
--- a/intern/cycles/render/image.h
+++ b/intern/cycles/render/image.h
@@ -102,6 +102,7 @@ class ImageDeviceFeatures {
public:
bool has_half_float;
bool has_nanovdb;
+ bool has_texture_cache;
};
/* Image loader base class, that can be subclassed to load image data
diff --git a/intern/cycles/render/image_oiio.cpp b/intern/cycles/render/image_oiio.cpp
index da5cea4e9b0..05e6972f822 100644
--- a/intern/cycles/render/image_oiio.cpp
+++ b/intern/cycles/render/image_oiio.cpp
@@ -82,7 +82,7 @@ bool OIIOImageLoader::load_metadata(const ImageDeviceFeatures &features, ImageMe
/* set type and channels */
metadata.channels = spec.nchannels;
- if (is_tiled) {
+ if (is_tiled && features.has_texture_cache) {
metadata.type = IMAGE_DATA_TYPE_OIIO;
}
else if (is_half) {
More information about the Bf-blender-cvs
mailing list