[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