Page MenuHome

Blender 2.8 win64 crashes on start
Closed, ResolvedPublic

Description

Operating system: Windows 7 - 64-Bit Edition on Compaq Presario CQ62 (4Gb RAM)

Graphics card: ATI Mobility Radeon HD 4250
Latest driver installed: Catalyst Software Suite - Revision Number 13.9
with 13-9-legacy_vista_win7_64_dd_ccc_whql.exe from ATI

Broken: Blender 2.80

Problem: the win64 daily build crashes on start (see console output hereafter)

This problem appeared recently (about 1 week ago).
I have an "old" blender-2.80-0f5b53ba4dc-win64.zip built (01 Dec 2018) which is OK, tested today on same config, with only some warnings:
Win32 Error# (8341): The specified OpenGL version and feature set are either inv
alid or not supported.

Thanks
Pierre

Console for crash with blender-2.80.0-git.9a8b6d51c12-windows64 built on 11 Dec 2018:

Microsoft Windows [version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.

C:\Users\mcs>cd C:\Program Files (x86)\Blender Foundation\blender-2.80.0-git.9a8
b6d51c12-windows64

C:\Program Files (x86)\Blender Foundation\blender-2.80.0-git.9a8b6d51c12-windows
64>blender.exe
Read prefs: C:\Users\mcs\AppData\Roaming\Blender Foundation\Blender\2.80\config\
userpref.blend
found bundled python: C:\Program Files (x86)\Blender Foundation\blender-2.80.0-g
it.9a8b6d51c12-windows64\2.80\python
GPUShader: compile error:
Fragment shader failed to compile with the following errors:

WARNING: 4:88: warning(#283) Implicit cast from int to uint ERROR: 4:88: error(#160) Cannot convert from 'unsigned int' to 'mediump int' ERROR: error(#273) 1 compilation errors. No code generated

GPUShader: compile error:
Fragment shader failed to compile with the following errors:

WARNING: 4:88: warning(#283) Implicit cast from int to uint ERROR: 4:88: error(#160) Cannot convert from 'unsigned int' to 'mediump int' ERROR: error(#273) 1 compilation errors. No code generated

GPUShader: compile error:
Fragment shader failed to compile with the following errors:

WARNING: 4:88: warning(#283) Implicit cast from int to uint ERROR: 4:88: error(#160) Cannot convert from 'unsigned int' to 'mediump int' ERROR: error(#273) 1 compilation errors. No code generated

GPUShader: compile error:
Fragment shader failed to compile with the following errors:

WARNING: 4:88: warning(#283) Implicit cast from int to uint ERROR: 4:88: error(#160) Cannot convert from 'unsigned int' to 'mediump int' ERROR: error(#273) 1 compilation errors. No code generated

GPUShader: compile error:
Fragment shader failed to compile with the following errors:

WARNING: 4:88: warning(#283) Implicit cast from int to uint ERROR: 4:88: error(#160) Cannot convert from 'unsigned int' to 'mediump int' ERROR: error(#273) 1 compilation errors. No code generated

GPUShader: compile error:
Fragment shader failed to compile with the following errors:

WARNING: 4:88: warning(#283) Implicit cast from int to uint ERROR: 4:88: error(#160) Cannot convert from 'unsigned int' to 'mediump int' ERROR: error(#273) 1 compilation errors. No code generated

Error : EXCEPTION_ACCESS_VIOLATION
Address : 0x000000013F9B78D4
Module : C:\Program Files (x86)\Blender Foundation\blender-2.80.0-git.9a8b6d51c
12-windows64\blender.exe

C:\Program Files (x86)\Blender Foundation\blender-2.80.0-git.9a8b6d51c12-windows

64>

Event Timeline

Sebastian Parborg (zeddb) lowered the priority of this task from 90 to Normal.

Your GPU has been EOL from a while now. The latest driver release is from 2013.

@Clément Foucault (fclem) I think this is sadly too outdated to support.

Can you run with the --debug option and paste the output into a text file and upload it here?

I can understand the new 2.80 can require a GPU not so outdated, but I was just surprised to have it working on 1st Dec 2018 and then crashing with recent builds. May be something has changed, and the problem is perhaps not linked to my old GPU ...

Same problem with latest build blender-2.80-16fc62e15f0-win64.zip
Here is the output with --debug: blender-2.80-16fc62e15f0-win64.debug

Regards,
Pierre

I don't know if it can help, but I found this closed task T59043.
https://developer.blender.org/T59043
This was the same problem on a ATI Radeon HD 3450.
The task was closed when the problem disappeared in blender-2.80-cfa1700-win64-vc14.

I have the same errors with latest build:

GPUShader: compile error:
Fragment shader failed to compile with the following errors:

WARNING: 4:88: warning(#283) Implicit cast from int to uint ERROR: 4:88: error(#160) Cannot convert from 'unsigned int' to 'mediump int' ERROR: error(#273) 1 compilation errors. No code generated + Error : EXCEPTION_ACCESS_VIOLATION Address : 0x00000001402E8704

You will find in attachment the console output with suggested debug options:
--debug-gpu-force-workarounds
--debug-gpu

Thanks a lot for fixing!

I suppose the Fix is not included yet, because I still have the same crash with the daily build (yesterday and today)

Is there somewhere a list of fixes included in each daily build ?
Or how can we know when a Fix will be included in the daily build ?

If the daily build is from the Dec 15, it should be in. If it is still not working please give the --debug-gpu log of the new version.

Here is the log when trying blender-2.80-4488056f3d9-win64.zip :

My bad, I meant --debug not --debug-gpu

Log with "--debug" for the latest blender-2.80-ea33b90a1bf-win64.zip :

May be a problem with default precision declarations ?

-------------------------------------------------------------------------------------------------https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf
page 63:

The fragment language has the following predeclared globally scoped default precision statements:

precision mediump int;
precision lowp sampler2D;
precision lowp samplerCube;

The fragment language has no default precision qualifier for floating point types. Hence for float, floating point vector and matrix variable declarations, either the declaration must include a precision qualifier or the default float precision must have been previously declared.


float workbench_float_pair_encode(float v1, float v2)
{
      // const uint total_mask = ~(0xFFFFFFFFu << TOTAL_BITS);
      // const uint v1_mask = ~(0xFFFFFFFFu << ROUGHNESS_BITS);
      // const uint v2_mask = ~(0xFFFFFFFFu << METALLIC_BITS);
      /* Same as above because some compiler are dumb af. and think we use mediump int.  */
      const uint total_mask = 0xFFu;
      const uint v1_mask = 0x1Fu;
      const uint v2_mask = 0x7u;
      int iv1 = int(v1 * float(v1_mask));
      int iv2 = int(v2 * float(v2_mask)) << ROUGHNESS_BITS;       <------ Faulty line
      return float(iv1 | iv2) * (1.0 / float(total_mask));
}

Fragment shader failed to compile with the following errors:
WARNING: 4:92: warning(#283) Implicit cast from int to uint
ERROR: 4:92: error(#160) Cannot convert from 'unsigned int' to 'mediump int'
ERROR: error(#273) 1 compilation errors.  No code generated

Well the issue is that precision qualifier is only for opengl ES and we don't support it.

I commited rB30a0f1a2bfe2 to try to fix this issue.

Thanks for the Fix.
Waiting for next build to have a try.

About the damned "mediump int", this seems to apply to standard (non-ES) OpenGL 3.3 too:

https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.3.30.pdf
in 4.5.3 page 44:

The fragment language has the following predeclared globally scoped default precision statements:

precision mediump int;
precision highp float;

Good news!

Your Fix "<< int(ROUGHNESS_BITS);" works.
No more compilation errors on Fragment shader.

Thanks a lot!

Uploaded: blender-2.80.0-git.4fceaf3848b-windows64.debug_OK with console output for:
-blender.exe
-blender.exe --debug
-blender.exe --debug-gpu