@@ -4263,8 +4263,15 @@ llvm_batched_texture_options(BatchedBackendLLVM& rop, int opnum,
42634263 llvm::Value* wide_const_fzero_value = rop.ll .wide_constant (0 .0f );
42644264 llvm::Value* wide_const_fone_value = rop.ll .wide_constant (1 .0f );
42654265 llvm::Value* const_zero_value = rop.ll .constant (0 );
4266- llvm::Value* wrap_default_value = rop.ll .constant (
4266+ #if defined(OIIO_TEXTUREOPTBATCH_VERSION) && OIIO_TEXTUREOPTBATCH_VERSION >= 2
4267+ // Possible future TextureOptBatch v2 -- not active yet
4268+ llvm::Value* wrap_default_value = rop.ll .constant8 (
4269+ static_cast <uint8_t >(Tex::Wrap::Default));
4270+ #else
4271+ // OIIO <= 3.0
4272+ llvm::Value* wrap_default_value = rop.ll .constant (
42674273 static_cast <int >(Tex::Wrap::Default));
4274+ #endif
42684275
42694276 llvm::Value* sblur = wide_const_fzero_value;
42704277 llvm::Value* tblur = wide_const_fzero_value;
@@ -4282,10 +4289,19 @@ llvm_batched_texture_options(BatchedBackendLLVM& rop, int opnum,
42824289 llvm::Value* swrap = wrap_default_value;
42834290 llvm::Value* twrap = wrap_default_value;
42844291 llvm::Value* rwrap = wrap_default_value;
4285- llvm::Value* mipmode = rop.ll .constant (
4292+ #if defined(OIIO_TEXTUREOPTBATCH_VERSION) && OIIO_TEXTUREOPTBATCH_VERSION >= 2
4293+ // Possible future TextureOptBatch v2 -- not active yet
4294+ llvm::Value* mipmode = rop.ll .constant8 (
4295+ static_cast <uint8_t >(Tex::MipMode::Default));
4296+ llvm::Value* interpmode = rop.ll .constant8 (
4297+ static_cast <uint8_t >(Tex::InterpMode::SmartBicubic));
4298+ #else
4299+ // OIIO <= 3.0
4300+ llvm::Value* mipmode = rop.ll .constant (
42864301 static_cast <int >(Tex::MipMode::Default));
42874302 llvm::Value* interpmode = rop.ll .constant (
42884303 static_cast <int >(Tex::InterpMode::SmartBicubic));
4304+ #endif
42894305 llvm::Value* anisotropic = rop.ll .constant (32 );
42904306 llvm::Value* conservative_filter = rop.ll .constant (1 );
42914307 llvm::Value* fill = rop.ll .constant (0 .0f );
@@ -4421,7 +4437,7 @@ llvm_batched_texture_options(BatchedBackendLLVM& rop, int opnum,
44214437 }
44224438 llvm::Value* val = nullptr ;
44234439 if (Val.is_constant ()) {
4424- int mode = TextureOpt::decode_wrapmode (Val.get_string ());
4440+ int mode = int ( TextureOpt::decode_wrapmode (Val.get_string () ));
44254441 val = rop.ll .constant (mode);
44264442 } else {
44274443 val = rop.llvm_load_value (Val);
@@ -4434,14 +4450,33 @@ llvm_batched_texture_options(BatchedBackendLLVM& rop, int opnum,
44344450 }
44354451 continue ;
44364452 }
4437- PARAM_UNIFORM_STRING_CODE (swrap, OIIO::TextureOpt::decode_wrapmode,
4438- osl_texture_decode_wrapmode, swrap)
4439- PARAM_UNIFORM_STRING_CODE (twrap, OIIO::TextureOpt::decode_wrapmode,
4440- osl_texture_decode_wrapmode, twrap)
4453+ #if defined(OIIO_TEXTUREOPTBATCH_VERSION) && OIIO_TEXTUREOPTBATCH_VERSION >= 2
4454+ // Possible future TextureOptBatch v2 -- not active yet
4455+ PARAM_UNIFORM_STRING_UINT8_CODE (swrap, OIIO::Tex::decode_wrapmode,
4456+ osl_texture_decode_wrapmode, swrap)
4457+ PARAM_UNIFORM_STRING_UINT8_CODE (twrap, OIIO::Tex::decode_wrapmode,
4458+ osl_texture_decode_wrapmode, twrap)
4459+ if (tex3d) {
4460+ PARAM_UNIFORM_STRING_UINT8_CODE (rwrap, OIIO::Tex::decode_wrapmode,
4461+ osl_texture_decode_wrapmode, rwrap)
4462+ }
4463+ PARAM_UNIFORM_STRING_UINT8_CODE (interp, tex_interp_to_code,
4464+ osl_texture_decode_interpmode,
4465+ interpmode)
4466+ #else
4467+ // OIIO <= 3.0
4468+ PARAM_UNIFORM_STRING_INT_CODE (swrap, OIIO::TextureOpt::decode_wrapmode,
4469+ osl_texture_decode_wrapmode, swrap)
4470+ PARAM_UNIFORM_STRING_INT_CODE (twrap, OIIO::TextureOpt::decode_wrapmode,
4471+ osl_texture_decode_wrapmode, twrap)
44414472 if (tex3d) {
4442- PARAM_UNIFORM_STRING_CODE (rwrap, OIIO::TextureOpt::decode_wrapmode,
4443- osl_texture_decode_wrapmode, rwrap)
4473+ PARAM_UNIFORM_STRING_INT_CODE (rwrap,
4474+ OIIO::TextureOpt::decode_wrapmode,
4475+ osl_texture_decode_wrapmode, rwrap)
44444476 }
4477+ PARAM_UNIFORM_STRING_INT_CODE (interp, tex_interp_to_code,
4478+ osl_texture_decode_interpmode, interpmode)
4479+ #endif
44454480
44464481 PARAM_UNIFORM_FLOAT (fill)
44474482 PARAM_UNIFORM_INT (firstchannel)
@@ -4463,10 +4498,6 @@ llvm_batched_texture_options(BatchedBackendLLVM& rop, int opnum,
44634498 continue ;
44644499 }
44654500
4466- PARAM_UNIFORM_STRING_CODE (interp, tex_interp_to_code,
4467- osl_texture_decode_interpmode, interpmode)
4468-
4469-
44704501 if (name == Strings::alpha && valtype == TypeDesc::FLOAT) {
44714502 OSL_ASSERT (
44724503 valIsVarying
@@ -4553,7 +4584,7 @@ llvm_batched_texture_options(BatchedBackendLLVM& rop, int opnum,
45534584#undef PARAM_WIDE_FLOAT_S_T_R
45544585#undef PARAM_UNIFORM_FLOAT
45554586#undef PARAM_UNIFORM_INT
4556- #undef PARAM_UNIFORM_STRING_CODE
4587+ #undef PARAM_UNIFORM_STRING_INT_CODE
45574588 }
45584589
45594590 // The LLVMMemberIndex will be the same for any width of BatchedTextureOptions,
0 commit comments