diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2019-05-16 14:35:02 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2019-05-16 14:35:02 +0300 |
commit | 4cd191aa295fffa2649fb70a5bb77c721be9949c (patch) | |
tree | d8fe4d509ed69b8b6201f66b12066fa5e683e443 /source/blender/draw | |
parent | b019d8b2fe866c01b8edf187be1d01ede1891d0c (diff) |
EEVEE: Intel Shader Compiler Bug
When using Intel GPU EEVEE did not display anything. This was due to an
internal shader compilation bug inside the intel drivers. We had fixed
this for other vertex shaders. The same change we have to apply to other
vert shaders that want to limit the need of Matrix multiplications.
Diffstat (limited to 'source/blender/draw')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/prepass_vert.glsl | 7 | ||||
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/shadow_vert.glsl | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl b/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl index fe274f59167..d133889e725 100644 --- a/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl +++ b/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl @@ -13,6 +13,13 @@ in vec3 pos; void main() { +#ifdef GPU_INTEL + /* Due to some shader compiler bug, we somewhat + * need to access gl_VertexID to make it work. even + * if it's actually dead code. */ + gl_Position.x = float(gl_VertexID); +#endif + #ifdef HAIR_SHADER float time, thick_time, thickness; vec3 worldPosition, tan, binor; diff --git a/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl b/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl index 7dd9af310ed..6b06aab34d2 100644 --- a/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl +++ b/source/blender/draw/engines/eevee/shaders/shadow_vert.glsl @@ -11,6 +11,13 @@ out vec3 viewNormal; void main() { +#ifdef GPU_INTEL + /* Due to some shader compiler bug, we somewhat + * need to access gl_VertexID to make it work. even + * if it's actually dead code. */ + gl_Position.x = float(gl_VertexID); +#endif + vec3 world_pos = point_object_to_world(pos); gl_Position = point_world_to_ndc(world_pos); #ifdef MESH_SHADER |