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