Page MenuHome

Blender 2.8 segmentation fault and crash
Closed, ArchivedPublic

Description

In last linux buildbots (difficult to say when exactly this started) I have instant crash with segmentation fault as I switch to the Eevee render engine. It worked before.
I'm under Ubuntu Mate 15.04 and I have a Nvidia Geforce GT 320M.

Here following the console output:

Received X11 Error:
	error code:   8
	request code: 154
	minor code:   34
	error text:   BadMatch (invalid parameter attributes)
Received X11 Error:
	error code:   2
	request code: 154
	minor code:   34
	error text:   BadValue (integer parameter out of range for operation)
Received X11 Error:
	error code:   2
	request code: 154
	minor code:   34
	error text:   BadValue (integer parameter out of range for operation)
Received X11 Error:
	error code:   2
	request code: 154
	minor code:   34
	error text:   BadValue (integer parameter out of range for operation)
Received X11 Error:
	error code:   2
	request code: 154
	minor code:   34
	error text:   BadValue (integer parameter out of range for operation)
Received X11 Error:
	error code:   2
	request code: 154
	minor code:   34
	error text:   BadValue (integer parameter out of range for operation)
found bundled python: /home/env/blender_inst/blender-2.80-linux-glibc219-x86_64/2.80/python
GPUShader: compile error:
0(27) : warning C7555: 'varying' is deprecated, use 'in/out' instead
0(41) : error C7616: global variable gl_Vertex is removed after version 140
0(66) : error C7616: global variable gl_ClipVertex is removed after version 140
0(73) : error C7616: global variable gl_Color is removed after version 140

GPUShader: linking error:
Vertex info
-----------
0(22) : warning C7050: "finalColor.w" might be used before being initialized
Internal error: assembly compile error for vertex shader at offset 2432:
-- error message --
line 75, column 27:  error: invalid operand variable
-- internal assembly text --
!!NVvp4.1
OPTION NV_parameter_buffer_object2;
# cgc version 3.4.0001, build date Nov  8 2015
# command line args: 
#vendor NVIDIA Corporation
#version 3.4.0.1
#profile gp4_1vp
#program main
#semantic ModelViewProjectionMatrix
#semantic ViewProjectionMatrix
#semantic ModelViewMatrix
#semantic ProjectionMatrix
#semantic screen_space
#semantic draw_size
#semantic color
#semantic ramp
#var float4 gl_Position : $vout.POSITION : HPOS : -1 : 1
#var float4x4 ModelViewProjectionMatrix :  : c[0], 4 : -1 : 1
#var float4x4 ViewProjectionMatrix :  : , 4 : -1 : 0
#var float4x4 ModelViewMatrix :  : c[4], 4 : -1 : 1
#var float4x4 ProjectionMatrix :  : c[8], 4 : -1 : 1
#var int screen_space :  : c[12] : -1 : 1
#var float draw_size :  : c[13] : -1 : 1
#var float3 color :  :  : -1 : 0
#var sampler1D ramp :  :  : -1 : 0
#var float3 pos : $vin.ATTR0 : ATTR0 : -1 : 1
#var float4 rot : $vin.ATTR1 : ATTR1 : -1 : 1
#var float val :  :  : -1 : 0
#var float3 inst_pos : $vin.ATTR2 : ATTR2 : -1 : 1
#var int axis : $vin.ATTR3 : ATTR3 : -1 : 1
#var float4 finalColor : $vout.ATTR0_FLAT : ATTR0 : -1 : 1
PARAM c[14] = { program.local[0..13] };
ATTRIB vertex_attrib[] = { vertex.attrib[0..3] };
OUTPUT result_attrib[] = { result.attrib[0..0] };
TEMP R0, R1, R2;
TEMP RC, HC;
SEQ.S R0.x, c[12], {1, 0, 0, 0};
MOV.U.CC RC.x, -R0;
IF    NE.x;
MUL.F R0, vertex.attrib[0].y, c[5];
MAD.F R0, vertex.attrib[0].x, c[4], R0;
MAD.F R0, vertex.attrib[0].z, c[6], R0;
ADD.F R1, R0, c[7];
MOV.F R0.w, {0, 0, 0, 0}.x;
MUL.F R0.xyz, vertex.attrib[2], c[13].x;
ADD.F R0, R1, R0;
MUL.F R1, R0.y, c[9];
MAD.F R1, R0.x, c[8], R1;
MAD.F R1, R0.z, c[10], R1;
MAD.F result.position, R0.w, c[11], R1;
ELSE;
SGT.S R0.y, vertex.attrib[3].x, {-1, 0, 0, 0}.x;
MOV.U.CC RC.x, -R0.y;
MOV.F R0.x, c[13];
IF    NE.x;
MUL.F R0.x, c[13], {2, 0, 0, 0};
ENDIF;
MUL.F R0.xyz, vertex.attrib[2], R0.x;
MUL.F R1.xyz, vertex.attrib[1].wyzw, R0.yzxw;
MAD.F R1.xyz, vertex.attrib[1].zwyw, R0.zxyw, -R1;
MAD.F R1.xyz, vertex.attrib[1].x, R0, R1;
MUL.F R2.xyz, vertex.attrib[1].wyzw, R1.yzxw;
MAD.F R1.xyz, vertex.attrib[1].zwyw, R1.zxyw, -R2;
MAD.F R0.xyz, R1, {2, 0, 0, 0}.x, R0;
ADD.F R0.xyz, vertex.attrib[0], R0;
MUL.F R1, R0.y, c[1];
MAD.F R1, R0.x, c[0], R1;
MAD.F R0, R0.z, c[2], R1;
ADD.F result.position, R0, c[3];
ENDIF;
SEQ.S R1.xyz, vertex.attrib[3].x, {0, 1, 2, 0};
MOV.U.CC RC.x, -R1;
MOV.F result.attrib[0].xyz, {0, 0, 0, 0}.x;
MOV.U R0.xy, -R1.yzzw;
MOV.F result.attrib[0].w, result.attrib[0];
IF    NE.x;
MOV.F R0.xyz, {1, 0, 0, 0}.xyyw;
ELSE;
MOV.U.CC RC.x, R0;
IF    NE.x;
MOV.F R0.xyz, {0, 1, 0, 0}.xyxw;
ELSE;
MOV.U.CC RC.x, R0.y;
IF    NE.x;
MOV.F R0.xyz, {0, 1, 0, 0}.xxyw;
ELSE;
MOV.F R0.xyz, {0, 0, 0, 0}.x;
ENDIF;
ENDIF;
ENDIF;
MOV.F result.attrib[0].xyz, R0;
MOV.F result.attrib[0].w, {1, 0, 0, 0}.x;
END
# 56 instructions, 3 R-regs

GPUShader: linking error:
Vertex info
-----------
0(22) : warning C7050: "finalColor.w" might be used before being initialized
Internal error: assembly compile error for vertex shader at offset 2432:
-- error message --
line 75, column 27:  error: invalid operand variable
-- internal assembly text --
!!NVvp4.1
OPTION NV_parameter_buffer_object2;
# cgc version 3.4.0001, build date Nov  8 2015
# command line args: 
#vendor NVIDIA Corporation
#version 3.4.0.1
#profile gp4_1vp
#program main
#semantic ModelViewProjectionMatrix
#semantic ViewProjectionMatrix
#semantic ModelViewMatrix
#semantic ProjectionMatrix
#semantic screen_space
#semantic draw_size
#semantic color
#semantic ramp
#var float4 gl_Position : $vout.POSITION : HPOS : -1 : 1
#var float4x4 ModelViewProjectionMatrix :  : c[0], 4 : -1 : 1
#var float4x4 ViewProjectionMatrix :  : , 4 : -1 : 0
#var float4x4 ModelViewMatrix :  : c[4], 4 : -1 : 1
#var float4x4 ProjectionMatrix :  : c[8], 4 : -1 : 1
#var int screen_space :  : c[12] : -1 : 1
#var float draw_size :  : c[13] : -1 : 1
#var float3 color :  :  : -1 : 0
#var sampler1D ramp :  :  : -1 : 0
#var float3 pos : $vin.ATTR0 : ATTR0 : -1 : 1
#var float4 rot : $vin.ATTR1 : ATTR1 : -1 : 1
#var float val :  :  : -1 : 0
#var float3 inst_pos : $vin.ATTR2 : ATTR2 : -1 : 1
#var int axis : $vin.ATTR3 : ATTR3 : -1 : 1
#var float4 finalColor : $vout.ATTR0_FLAT : ATTR0 : -1 : 1
PARAM c[14] = { program.local[0..13] };
ATTRIB vertex_attrib[] = { vertex.attrib[0..3] };
OUTPUT result_attrib[] = { result.attrib[0..0] };
TEMP R0, R1, R2;
TEMP RC, HC;
SEQ.S R0.x, c[12], {1, 0, 0, 0};
MOV.U.CC RC.x, -R0;
IF    NE.x;
MUL.F R0, vertex.attrib[0].y, c[5];
MAD.F R0, vertex.attrib[0].x, c[4], R0;
MAD.F R0, vertex.attrib[0].z, c[6], R0;
ADD.F R1, R0, c[7];
MOV.F R0.w, {0, 0, 0, 0}.x;
MUL.F R0.xyz, vertex.attrib[2], c[13].x;
ADD.F R0, R1, R0;
MUL.F R1, R0.y, c[9];
MAD.F R1, R0.x, c[8], R1;
MAD.F R1, R0.z, c[10], R1;
MAD.F result.position, R0.w, c[11], R1;
ELSE;
SGT.S R0.y, vertex.attrib[3].x, {-1, 0, 0, 0}.x;
MOV.U.CC RC.x, -R0.y;
MOV.F R0.x, c[13];
IF    NE.x;
MUL.F R0.x, c[13], {2, 0, 0, 0};
ENDIF;
MUL.F R0.xyz, vertex.attrib[2], R0.x;
MUL.F R1.xyz, vertex.attrib[1].wyzw, R0.yzxw;
MAD.F R1.xyz, vertex.attrib[1].zwyw, R0.zxyw, -R1;
MAD.F R1.xyz, vertex.attrib[1].x, R0, R1;
MUL.F R2.xyz, vertex.attrib[1].wyzw, R1.yzxw;
MAD.F R1.xyz, vertex.attrib[1].zwyw, R1.zxyw, -R2;
MAD.F R0.xyz, R1, {2, 0, 0, 0}.x, R0;
ADD.F R0.xyz, vertex.attrib[0], R0;
MUL.F R1, R0.y, c[1];
MAD.F R1, R0.x, c[0], R1;
MAD.F R0, R0.z, c[2], R1;
ADD.F result.position, R0, c[3];
ENDIF;
SEQ.S R1.xyz, vertex.attrib[3].x, {0, 1, 2, 0};
MOV.U.CC RC.x, -R1;
MOV.F result.attrib[0].xyz, {0, 0, 0, 0}.x;
MOV.U R0.xy, -R1.yzzw;
MOV.F result.attrib[0].w, result.attrib[0];
IF    NE.x;
MOV.F R0.xyz, {1, 0, 0, 0}.xyyw;
ELSE;
MOV.U.CC RC.x, R0;
IF    NE.x;
MOV.F R0.xyz, {0, 1, 0, 0}.xyxw;
ELSE;
MOV.U.CC RC.x, R0.y;
IF    NE.x;
MOV.F R0.xyz, {0, 1, 0, 0}.xxyw;
ELSE;
MOV.F R0.xyz, {0, 0, 0, 0}.x;
ENDIF;
ENDIF;
ENDIF;
MOV.F result.attrib[0].xyz, R0;
MOV.F result.attrib[0].w, {1, 0, 0, 0}.x;
END
# 56 instructions, 3 R-regs

Writing: /tmp/blender.crash.txt
Errore di segmentazione ("segmentation fault" in english)

Event Timeline

I'll leave it to developer to confirmed, but you need card that support OpenGL 3.3. But from this page it seems it support OpenGL 3.2 only.

http://www.geforce.com/hardware/desktop-gpus/geforce-gt-320-oem/specifications

Those specifications are the OpenGL version supported at release, they are not updated as drivers are released with newer OpenGL versions. The GT 320M supports OpenGL 3.3.

Attaching the /tmp/blender.crash.txt file would help.

Right, I forgot the blender.crash.txt; here it is.
Thanks (and great job with all the last additions to Blender!)

@Enrico Valenza (env) can you run with:

./blender --factory-startup --debug --debug-gpu

And paste the full error? You can use https://developer.blender.org/paste and just write Pxxx here (xxx being the paste number).

This comment was removed by Dalai Felinto (dfelinto).

Hi Dalai,

done (hopefully the correct way, I'm not a coder at all...). It's P507.

I just wonted to point out that with today Blender 2.8 buildbot (blender-2.80-cdb07ff30e8-linux-glibc219-x86_64.tar.bz2) I don't have any crash with segmentation fault anymore by switching to Eevee, everything seems to work correctly (besides normal maps that turn the object to a solid pitch black silouette, but maybe that's simply my fault, I have to investigate a bit).
Thanks a lot.

Dalai Felinto (dfelinto) changed the task status from Unknown Status to Unknown Status.Jun 30 2017, 2:20 PM
Dalai Felinto (dfelinto) claimed this task.

Thanks for letting us now. Closing it. As for pitch black silouete you need to go in and out of edit mode (see T51931)