Page MenuHome

Segfault (missing MTFace cdlayer from SubSurf DM).
Closed, ResolvedPublic

Description

System Information
System 1: 64bit Manjaro Linux 3.19.8.4
System 2: 64bit Windows 8.1

Blender Version
Broken: 2.76-devel 65c3207
Worked: 2.75-release d6b042b

Short description of error
This issue has pretty much stopped me in my tracks. If I use any kind of image texture in a hair or fur shader, then Blender will crash while trying to syncronize the object which has the fur or hair system.

The issue occurs on both Windows and Linux, with CPU and GPU rendering, and with both the Supported and Experimental feature sets. I have also tried doing a complete factory reset (delete config/blender, open file with "Load UI" disabled), and the issue still occurs.

Only Image Textures (both packed and not packed) appear to reproduce the issue. Other types of textures (such as noise) appear to work correctly.

Exact steps for others to reproduce the error
Attempt to render the following file:

Crash Log:

Event Timeline

After posting this, I ran a quick test. It appears that when the viewport is set to Preview rendering mode, the crash does not occur. It only seems to happen when I execute a final render.

Further info: the fur in the example file I gave was not actually using the material with the texture. Setting the correct material to the hair system still reproduces the issue, and further testing reveals that simply having a textured material present in the object's materials will reproduce the issue, whether or not that material is used.

I think that a cause is not the matter that you pointed out.
blender crashes for EXCEPTION_ACCESS_VIOLATION when I use the file which you attached.
However, it does not crash when I change some items.
A change point.
I set a order of Subdivision Surface Modifier last.
Probably I think that it is caused by Subdivision Surface Modifier.


version 2.75 (sub 4), branch b'master', commit date b'2015-08-09' b'17:17', hash b'65c3207', b'Release'

Well, that's extra strange, then.

And yeah, EXCEPTION_ACCESS_VIOLATION is the error that gets reported on Windows systems. On Linux systems, the error reported is segmentation fault.

For some reason, I had the subsurf modifier disabled for preview render. After turning it on, the crash now begins to occur when the viewport is set to Rendered mode.

In any case, I did some further testing and found yet another condition for triggering this crash! This condition once again deals with the textured material, and the condition is that the texture is using UV inputs as the texture coordinates. If you instead plug in things like generated or normal Texture Coordinates, the crash does not occur.

This leads me to believe that UV mapping is the underlying problem since the subdivision modifier can change an object's UV mapping. However, toggling the the "Subdivide UVs" option under the subsurf modifier doesn't stop the issue from happening. So, not sure if that's the cause either.

Bastien Montagne (mont29) lowered the priority of this task from 90 to 50.Aug 12 2015, 2:20 PM

OK, so do not really understand why, but probably caused by recent looptri changes or subsurf changes, rna_ParticleSystem_uv_on_emitter() gets a NULL mtface data, which is not supposed to happen. This probably means DM_DIRTY_TESS_CDLAYERS is improperly cleared somewhere (or lack being set), but this code is rather hairy, @Campbell Barton (campbellbarton), @Sergey Sharybin (sergey) will let you investigate further here, you probably can find the culprit much quicker than me.

Bastien Montagne (mont29) renamed this task from Segfault when using any texture in strand shader to Segfault (missing MTFace cdlayer from SubSurf DM)..Aug 12 2015, 2:21 PM

This issue seems to still be occuring as of build 19cc75d

Campbell Barton (campbellbarton) changed the task status from Unknown Status to Resolved.Aug 18 2015, 8:54 AM

this has been fixed - tested rB92fe4e52fd1f89426dd42a4ac899f5c0c828cdee which is working.