Fix Cycles CUDA build error with Visual Studio 2019 v16.9

Something in this update broke the floor() function in CUDA, instead use
floorf() like we do everywhere else in the kernel code. Thanks to Ray
Molenkamp for identifying the solution.
This commit is contained in:
Brecht Van Lommel 2021-03-08 13:59:16 +01:00
parent 240e721dd3
commit 3669a3e2e9

@ -68,8 +68,8 @@ ccl_device T kernel_tex_image_interp_bicubic(const TextureInfo &info, float x, f
x = (x * info.width) - 0.5f; x = (x * info.width) - 0.5f;
y = (y * info.height) - 0.5f; y = (y * info.height) - 0.5f;
float px = floor(x); float px = floorf(x);
float py = floor(y); float py = floorf(y);
float fx = x - px; float fx = x - px;
float fy = y - py; float fy = y - py;
@ -95,9 +95,9 @@ ccl_device T kernel_tex_image_interp_tricubic(const TextureInfo &info, float x,
y = (y * info.height) - 0.5f; y = (y * info.height) - 0.5f;
z = (z * info.depth) - 0.5f; z = (z * info.depth) - 0.5f;
float px = floor(x); float px = floorf(x);
float py = floor(y); float py = floorf(y);
float pz = floor(z); float pz = floorf(z);
float fx = x - px; float fx = x - px;
float fy = y - py; float fy = y - py;
float fz = z - pz; float fz = z - pz;
@ -127,9 +127,9 @@ ccl_device T kernel_tex_image_interp_tricubic(const TextureInfo &info, float x,
template<typename T, typename S> template<typename T, typename S>
ccl_device T kernel_tex_image_interp_tricubic_nanovdb(S &s, float x, float y, float z) ccl_device T kernel_tex_image_interp_tricubic_nanovdb(S &s, float x, float y, float z)
{ {
float px = floor(x); float px = floorf(x);
float py = floor(y); float py = floorf(y);
float pz = floor(z); float pz = floorf(z);
float fx = x - px; float fx = x - px;
float fy = y - py; float fy = y - py;
float fz = z - pz; float fz = z - pz;