Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/source/blender/draw/modes/shaders/common_view_lib.glsl b/source/blender/draw/modes/shaders/common_view_lib.glsl
- index 79ac351912d..f21432c9992 100644
- --- a/source/blender/draw/modes/shaders/common_view_lib.glsl
- +++ b/source/blender/draw/modes/shaders/common_view_lib.glsl
- @@ -48,3 +48,12 @@ uniform mat4 ModelMatrixInverse;
- #define point_world_to_ndc(p) (ViewProjectionMatrix * vec4(p, 1.0))
- #define point_world_to_object(p) ((ModelMatrixInverse * vec4(p, 1.0)).xyz)
- #define point_world_to_view(p) ((ViewMatrix * vec4(p, 1.0)).xyz)
- +
- +/* Due to some shader compiler bug, we somewhat
- + * need to access gl_VertexID to make it work. even
- + * if it's actually dead code. */
- +#ifdef GPU_INTEL
- +#define GPU_INTEL_VERTEX_SHADER_WORKAROUND gl_Position.x = float(gl_VertexID);
- +#else
- +#define GPU_INTEL_VERTEX_SHADER_WORKAROUND
- +#endif
- \ No newline at end of file
- diff --git a/source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl b/source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl
- index 2f3d37a6e73..590c2905be6 100644
- --- a/source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl
- +++ b/source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl
- @@ -7,6 +7,8 @@ flat out int vertFlag;
- void main()
- {
- + GPU_INTEL_VERTEX_SHADER_WORKAROUND
- +
- vec3 world_pos = point_object_to_world(pos);
- gl_Position = point_world_to_ndc(world_pos);
- vertFlag = data;
- diff --git a/source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl b/source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl
- index b1b707b59f4..07c19e2b1ff 100644
- --- a/source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl
- +++ b/source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl
- @@ -9,6 +9,8 @@ out vec4 finalColor;
- void main()
- {
- + GPU_INTEL_VERTEX_SHADER_WORKAROUND
- +
- if ((data & VERT_SELECTED) != 0) {
- if ((data & VERT_ACTIVE) != 0) {
- finalColor = colorEditMeshActive;
- diff --git a/source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl b/source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl
- index ef60ddbc395..e5b851f4eb0 100644
- --- a/source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl
- +++ b/source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl
- @@ -9,6 +9,8 @@ in float rad;
- void main()
- {
- + GPU_INTEL_VERTEX_SHADER_WORKAROUND
- +
- vec3 final_pos = pos;
- float flip = (gl_InstanceID != 0) ? -1.0 : 1.0;
- diff --git a/source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl b/source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
- index f7df6bb4b68..895f085fcce 100644
- --- a/source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
- +++ b/source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
- @@ -22,6 +22,8 @@ vec2 proj(vec4 pos)
- void main()
- {
- + GPU_INTEL_VERTEX_SHADER_WORKAROUND
- +
- clipCase = 0;
- vec3 world_pos = point_object_to_world(pos);
- diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl
- index a20c1124fe1..84383d07cf4 100644
- --- a/source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl
- +++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl
- @@ -8,6 +8,8 @@ flat out vec4 faceColor;
- void main()
- {
- + GPU_INTEL_VERTEX_SHADER_WORKAROUND
- +
- vec3 world_pos = point_object_to_world(pos);
- gl_Position = point_world_to_ndc(world_pos);
- diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl
- index 968a63c7780..1e8c729f67d 100644
- --- a/source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl
- +++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl
- @@ -12,6 +12,8 @@ out vec4 weightColor;
- void main()
- {
- + GPU_INTEL_VERTEX_SHADER_WORKAROUND
- +
- vec3 world_pos = point_object_to_world(pos);
- gl_Position = point_world_to_ndc(world_pos);
- weightColor = vec4(weight_color.rgb, 1.0);
- diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl
- index 073e04117af..fabc317cf4f 100644
- --- a/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl
- +++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl
- @@ -20,12 +20,7 @@ out int selectOveride;
- 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
- + GPU_INTEL_VERTEX_SHADER_WORKAROUND
- vec3 world_pos = point_object_to_world(pos);
- diff --git a/source/blender/draw/modes/shaders/edit_normals_vert.glsl b/source/blender/draw/modes/shaders/edit_normals_vert.glsl
- index 9bf0fb7315c..384d13923f6 100644
- --- a/source/blender/draw/modes/shaders/edit_normals_vert.glsl
- +++ b/source/blender/draw/modes/shaders/edit_normals_vert.glsl
- @@ -21,6 +21,8 @@ flat out vec4 v2;
- void main()
- {
- + GPU_INTEL_VERTEX_SHADER_WORKAROUND
- +
- vec3 n = normalize(normal_object_to_world(nor));
- vec3 world_pos = point_object_to_world(pos);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement