Page MenuHome

Particle Carpet renders different in 2.71
Closed, ResolvedPublic

Description

System Information
Operating system and graphics card

Win 7 64 Bit, Nvidia Palit 760 gtx

Blender Version
Broken: (example: 2.69.7 4b206af, see splash screen)
Worked: (optional)

Broken in blender-2.71-c04f301-win64

Worked in 2.70

Short description of error

Particle Carpet renders different in 2.71

Exact steps for others to reproduce the error
Based on a (as simple as possible) attached .blend file with minimum amount of steps

I would have liked to provide the example scene with which i made the shot, but the form doesn't let me. It is too big with 7 Mb. So only a screenshot. Tell me where i can send the file to and i wil do so.

The carpet is made with Blender 2.70.

Event Timeline

Reiner Prokein (tiles) set Type to Bug.
Reiner Prokein (tiles) created this task.
Reiner Prokein (tiles) raised the priority of this task from to Needs Triage by Developer.
Sergey Sharybin (sergey) triaged this task as Needs Information from User priority.

We really need sample file. Upload it pasteall.org or to ftp://ftp.blender.org/incoming

Thanks sergey :)

File should be at ftp now :)

Sergey Sharybin (sergey) raised the priority of this task from Needs Information from User to Normal.Jul 14 2014, 4:15 PM

Works fine with c04f301 (self build) and d9f3925 from Buildbot...

I would suggest to just try a new build.

Moving to BF Unconfirmed, until someone can reproduce it, the render (both F12 and Viewport) looks like in the 2.70 screen shot. Maybe try File -> Load Factory Settings before opening the carpet file.

Thanks for having a look everybody :)

And interesting. I have of course downloaded a new build before i have reported the issue. And i have of course also tried factory settings. And it is still an issue here in the build from today. blender-2.71-dbc79e7-win64

Something i didn't notice yesterday: when i render with GPU, then the carpet renders fine. The issue happens in CPU rendering.

I did some further investigations and have tested it at my laptop now. And here it renders also fine at CPU. But here i don't have GPU. It's a ati card. I have also reactivated my old pc, and here it renders fine in both cpu and gpu mode. Both win 7 home 64 bit like my main pc.

So it must be something connected to my specific pc rig. I just wonder what. Graphics Driver is up to date. 337.88. And so are the rest of the components. The pc is four weeks old now.

Since it happens just in CPU mode at one pc, can it be that there is a problem with my CPU at this pc? It's a i7 4770 Haswell.

The presence or absence of cpu features causes different code do run.

Your Haswell is capable of running the AVX and AVX2 kernels in those versions of blender where they are present. The older msvc cannot emit AVX instruction so the maximum feature level you could get even on your haswell is sse4.1 but with msvc 2013 you might be getting the AVX compiled kernel and that might have a problem in it.

Thanks juicyfruit. Sounds to me like i cannot really do anything here by myself. I hope the informations are nevertheless useful to catch the baddie :)

Does the official 2.71 release work for you?

Yes, here it works. But this version crashes very often. So i am kind of trapped here since this new version fixes the crashes.

@Thomas Dinges (dingto) what crash-fixing bugs did we solve specific to windows since 2.71 ?

@Martijn Berger (juicyfruit), probably new shadow code, we had a bug there.

Anyway, I suspect FMA code here, we use that in the AVX2 Kernel inside hair bvh intersection. Will check.

It works fine on my Macbook Pro with Haswell CPU, so it could be a Windows specific AVX2 issue...I can't test that though (no Windows computer with haswell).

Maybe someone else is more lucky.

@Martijn Berger (juicyfruit) can you run the file on an AVX2 CPU on Windows? Otherwise I would close this report, as no one could confirm it.

Lukas Toenne (lukastoenne) claimed this task.

Closing the report, it's several months old now and not reproducible.

Well, i can still confirm and reproduce it, but i guess i don't count ^^

I can confirm the same issue happening on my computer. 2.72 32-bit seems to work but not 64-bit.

If the Cycles Hair Rendering -> Primitive: is "Curve Segments", the strands will not render at all.

Don't know if it's related but changing it to "Line Segments" it will at least render something, but depending on the viewing angle it will render with a kind of Moiré pattern of holes in the strands.
This is more obvious when you zoom in. I see it clearly in orthographic view. Perspective and camera view looks better but there might still be a tiny difference between 32 and 64 bit. Not sure.

System Information

Windows 7 64-bit, 16GB RAM, i7-4770 CPU using Intel HD Graphics 4600

Blender Version
Broken: 2.72 64-bit
Worked: 2.72 32-bit, 2.71 64-bit

So it seems to be indeed related to Windows + SIMD (AVX2). Now we need to figure out if it's dedicated AVX2 code or auto vectorization of the compiler.

Can you please test this build here? http://blender.dingto.org/blender_win64_noAVX2.zip That is the current master branch, but without AVX2 support. Disabling that is of course not a proper fix, but would help to narrow down the issue.

Seems to work fine with AVX2 disabled. But i am not sure where Cycle currently renders. CPU or GPU. The render tab just gives me the choice between supported and experimental. Not the choice between CPU and GPU.

When you don't have the CPU/GPU menu, it's always CPU. The build is without CUDA, as it is irrelevant for this bug report. AVX2 is a CPU only feature.

Now we at least know where the issue is (roughly), but which lines of code is malfunctioning with the MSVC compiler is still unclear, we need a developer with Windows + Haswell CPU, to debug this.

Thanks. I see. I'm no C developer, sorry. All i can offer at the moment is Windows plus the haswell cpu. So i can always test if a change has fixed the issue.

And maybe a hint. It worked fine with Blender 2.70. Maybe you can come closer to the problem when looking at the file version from 2.70 and the file version from now to find out what is different. This would at least reduce the number of lines in question again.

2.71 should also work, AVX2 was added for 2.72.

I will try to narrow it down further, and upload a new build later.

Just thougth i chime in to confirm that 2.71 worked too. Good luck.

Closed a duplicate of this report. If it's difficult to find a fix for this I would suggest to just disable the AVX 2 kernel for now, it's better to have a working kernel than a slightly faster kernel.

@Brecht Van Lommel (brecht), @Lukas Toenne (lukastoenne) now have laptop with avx2, i hope to have a look into this issue before going back home :)

I will check this today.

I checked on a Windows desktop at the university now with Haswell CPU, issue is in the FMA functions. Didn't checked further, simply disable FMA on MSVC now.

no issues on win7x64 mingw-w64 (gcc 4.7.1)

seems its relevant to msvc only

Yes, the fix applies to MSVC only.

Committed an actual fix. This problem comes from embree, both nmadd and nmsub functions in avxf and ssef are incorrect there.

@Sv. Lockal (lockal) Thanks for that. Did you report this issue upstream?