[Bf-blender-cvs] [44c875f59aa] tmp-vulkan: Vulkan: Patched gl_VertexID to gl_VertexIndex.

Jeroen Bakker noreply at git.blender.org
Fri Jun 25 16:53:34 CEST 2021


Commit: 44c875f59aab63081c56b94cba46c6fe1e49f148
Author: Jeroen Bakker
Date:   Fri Jun 25 15:49:08 2021 +0200
Branches: tmp-vulkan
https://developer.blender.org/rB44c875f59aab63081c56b94cba46c6fe1e49f148

Vulkan: Patched gl_VertexID to gl_VertexIndex.

===================================================================

M	source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl
M	source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_vert.glsl
M	source/blender/draw/engines/eevee/shaders/lightprobe_grid_display_vert.glsl
M	source/blender/draw/engines/eevee/shaders/lightprobe_planar_downsample_vert.glsl
M	source/blender/draw/engines/eevee/shaders/volumetric_vert.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_antialiasing_vert.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_depth_merge_vert.glsl
M	source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl
M	source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl
M	source/blender/draw/engines/overlay/shaders/edit_curve_wire_vert.glsl
M	source/blender/draw/engines/overlay/shaders/edit_gpencil_canvas_vert.glsl
M	source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl
M	source/blender/draw/engines/overlay/shaders/edit_mesh_skin_root_vert.glsl
M	source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl
M	source/blender/draw/engines/overlay/shaders/extra_vert.glsl
M	source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl
M	source/blender/draw/engines/overlay/shaders/motion_path_line_vert.glsl
M	source/blender/draw/engines/overlay/shaders/motion_path_point_vert.glsl
M	source/blender/draw/engines/overlay/shaders/volume_gridlines_vert.glsl
M	source/blender/draw/engines/overlay/shaders/volume_velocity_vert.glsl
M	source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_effect_smaa_vert.glsl
M	source/blender/draw/intern/shaders/common_fullscreen_vert.glsl
M	source/blender/draw/intern/shaders/common_hair_lib.glsl
M	source/blender/draw/intern/shaders/common_hair_refine_vert.glsl
M	source/blender/draw/intern/shaders/common_view_lib.glsl
M	source/blender/gpu/opengl/gl_shader.cc
M	source/blender/gpu/shaders/gpu_shader_2D_area_borders_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_2D_image_multi_rect_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_2D_image_rect_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_2D_nodelink_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_text_vert.glsl
M	source/blender/gpu/vulkan/vk_shader.cc

===================================================================

diff --git a/source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl b/source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl
index 276ab119fab..d5b24de8128 100644
--- a/source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl
@@ -58,7 +58,7 @@ void main()
 {
   ivec2 tex_size = textureSize(cocBuffer, 0);
 
-  int t_id = gl_VertexID / 3; /* Triangle Id */
+  int t_id = gl_VertexIndex / 3; /* Triangle Id */
 
   /* Some math to get the target pixel. */
   ivec2 texelco = ivec2(t_id % spritePerRow, t_id / spritePerRow) * 2;
@@ -117,7 +117,7 @@ void main()
    */
 
   /* Generate Triangle : less memory fetches from a VBO */
-  int v_id = gl_VertexID % 3;                     /* Vertex Id */
+  int v_id = gl_VertexIndex % 3;                  /* Vertex Id */
   gl_Position.x = float(v_id / 2) * extend - 1.0; /* int divisor round down */
   gl_Position.y = float(v_id % 2) * extend - 1.0;
   gl_Position.z = 0.0;
diff --git a/source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_vert.glsl b/source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_vert.glsl
index d06ad553ca4..03ee41f158b 100644
--- a/source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_vert.glsl
@@ -30,8 +30,8 @@ const vec2 pos[6] = vec2[6](vec2(-1.0, -1.0),
 
 void main()
 {
-  pid = 1 + (gl_VertexID / 6); /* +1 for the world */
-  int vert_id = gl_VertexID % 6;
+  pid = 1 + (gl_VertexIndex / 6); /* +1 for the world */
+  int vert_id = gl_VertexIndex % 6;
 
   quadCoord = pos[vert_id];
 
diff --git a/source/blender/draw/engines/eevee/shaders/lightprobe_grid_display_vert.glsl b/source/blender/draw/engines/eevee/shaders/lightprobe_grid_display_vert.glsl
index 6fefe1319bd..fcadf9dbd82 100644
--- a/source/blender/draw/engines/eevee/shaders/lightprobe_grid_display_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lightprobe_grid_display_vert.glsl
@@ -23,8 +23,8 @@ const vec2 pos[6] = vec2[6](vec2(-1.0, -1.0),
 
 void main()
 {
-  int cell_id = gl_VertexID / 6;
-  int vert_id = gl_VertexID % 6;
+  int cell_id = gl_VertexIndex / 6;
+  int vert_id = gl_VertexIndex % 6;
 
   vec3 ls_cell_location;
   /* Keep in sync with update_irradiance_probe */
diff --git a/source/blender/draw/engines/eevee/shaders/lightprobe_planar_downsample_vert.glsl b/source/blender/draw/engines/eevee/shaders/lightprobe_planar_downsample_vert.glsl
index 588cd402bb3..4b79ca97e7c 100644
--- a/source/blender/draw/engines/eevee/shaders/lightprobe_planar_downsample_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lightprobe_planar_downsample_vert.glsl
@@ -4,9 +4,9 @@ out vec2 vPos;
 
 void main()
 {
-  int v = gl_VertexID % 3;
+  int v = gl_VertexIndex % 3;
   vPos.x = -1.0 + float((v & 1) << 2);
   vPos.y = -1.0 + float((v & 2) << 1);
 
-  instance = gl_VertexID / 3;
+  instance = gl_VertexIndex / 3;
 }
diff --git a/source/blender/draw/engines/eevee/shaders/volumetric_vert.glsl b/source/blender/draw/engines/eevee/shaders/volumetric_vert.glsl
index b70747ecec3..0bc735591ca 100644
--- a/source/blender/draw/engines/eevee/shaders/volumetric_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/volumetric_vert.glsl
@@ -8,8 +8,8 @@ RESOURCE_ID_VARYING
 void main()
 {
   /* Generate Triangle : less memory fetches from a VBO */
-  int v_id = gl_VertexID % 3; /* Vertex Id */
-  int t_id = gl_VertexID / 3; /* Triangle Id */
+  int v_id = gl_VertexIndex % 3; /* Vertex Id */
+  int t_id = gl_VertexIndex / 3; /* Triangle Id */
 
   /* Crappy diagram
    * ex 1
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_antialiasing_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_antialiasing_vert.glsl
index 07734d19972..31eda3670e9 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_antialiasing_vert.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_antialiasing_vert.glsl
@@ -5,7 +5,7 @@ out vec4 offset[3];
 
 void main()
 {
-  int v = gl_VertexID % 3;
+  int v = gl_VertexIndex % 3;
   float x = -1.0 + float((v & 1) << 2);
   float y = -1.0 + float((v & 2) << 1);
   gl_Position = vec4(x, y, 1.0, 1.0);
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
index 7412959a30b..67f4ca37beb 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
@@ -245,7 +245,7 @@ in vec4 col1;
 in vec4 col2;
 in vec4 fcol1;
 /* WARNING: Max attribute count is actually 14 because OSX OpenGL implementation
- * considers gl_VertexID and gl_InstanceID as vertex attribute. (see T74536) */
+ * considers gl_VertexIndex and gl_InstanceID as vertex attribute. (see T74536) */
 #  define stroke_id1 ma1.y
 #  define point_id1 ma1.z
 #  define thickness1 pos1.w
@@ -408,8 +408,8 @@ void stroke_vertex()
   mat4 model_mat = model_matrix_get();
 
   /* Avoid using a vertex attribute for quad positioning. */
-  float x = float(gl_VertexID & 1) * 2.0 - 1.0; /* [-1..1] */
-  float y = float(gl_VertexID & 2) - 1.0;       /* [-1..1] */
+  float x = float(gl_VertexIndex & 1) * 2.0 - 1.0; /* [-1..1] */
+  float y = float(gl_VertexIndex & 2) - 1.0;       /* [-1..1] */
 
   bool use_curr = is_dot || (x == -1.0);
 
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_depth_merge_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_depth_merge_vert.glsl
index 0c5260a9ec4..34b28f1f5b8 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_depth_merge_vert.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_depth_merge_vert.glsl
@@ -4,7 +4,7 @@ uniform vec4 gpModelMatrix[4];
 void main()
 {
   mat4 model_matrix = mat4(gpModelMatrix[0], gpModelMatrix[1], gpModelMatrix[2], gpModelMatrix[3]);
-  int v = gl_VertexID % 3;
+  int v = gl_VertexIndex % 3;
   float x = -1.0 + float((v & 1) << 2);
   float y = -1.0 + float((v & 2) << 1);
   gl_Position = ViewProjectionMatrix * (model_matrix * vec4(x, y, 0.0, 1.0));
diff --git a/source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl b/source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl
index 8cf8ba121ed..3118e488efc 100644
--- a/source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl
@@ -3,7 +3,7 @@ out vec2 uvs;
 
 void main()
 {
-  int v = gl_VertexID % 3;
+  int v = gl_VertexIndex % 3;
   float x = float((v & 1) << 2);
   float y = float((v & 2) << 1);
   gl_Position = vec4(x - 1.0, y - 1.0, 1.0, 1.0);
diff --git a/source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl b/source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl
index 1bfa5dadc32..532b7abc433 100644
--- a/source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl
@@ -3,7 +3,7 @@ uniform vec3 boundbox[8];
 
 void main()
 {
-  vec3 world_pos = boundbox[gl_VertexID];
+  vec3 world_pos = boundbox[gl_VertexIndex];
   gl_Position = point_world_to_ndc(world_pos);
 
   /* Result in a position at 1.0 (far plane). Small epsilon to avoid precision issue.
diff --git a/source/blender/draw/engines/overlay/shaders/edit_curve_wire_vert.glsl b/source/blender/draw/engines/overlay/shaders/edit_curve_wire_vert.glsl
index 5dd8e579db3..190516efb78 100644
--- a/source/blender/draw/engines/overlay/shaders/edit_curve_wire_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/edit_curve_wire_vert.glsl
@@ -16,7 +16,7 @@ void main()
 
   float flip = (gl_InstanceID != 0) ? -1.0 : 1.0;
 
-  if (gl_VertexID % 2 == 0) {
+  if (gl_VertexIndex % 2 == 0) {
     final_pos += normalSize * rad * (flip * nor - tan);
   }
 
diff --git a/source/blender/draw/engines/overlay/shaders/edit_gpencil_canvas_vert.glsl b/source/blender/draw/engines/overlay/shaders/edit_gpencil_canvas_vert.glsl
index 5aa7fe78e4e..070de772723 100644
--- a/source/blender/draw/engines/overlay/shaders/edit_gpencil_canvas_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/edit_gpencil_canvas_vert.glsl
@@ -14,8 +14,8 @@ void main()
   GPU_INTEL_VERTEX_SHADER_WORKAROUND
 
   vec2 pos;
-  pos.x = float(gl_VertexID % 2);
-  pos.y = float(gl_VertexID / 2) / float(halfLineCount - 1);
+  pos.x = float(gl_VertexIndex % 2);
+  pos.y = float(gl_VertexIndex / 2) / float(halfLineCount - 1);
 
   if (pos.y > 1.0) {
     pos.xy = pos.yx;
diff --git a/source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl b/source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl
index 007495f84e0..8e70bc9716d 100644
--- a/source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl
@@ -52,7 +52,7 @@ void main()
 
   vec3 world_pos = point_object_to_world(pos);
 
-  if (gl_VertexID == 0) {
+  if (gl_VertexIndex == 0) {
     world_pos += n * normalSize;
   }
 
diff --git a/source/blender/draw/engines/overlay/shaders/edit_mesh_skin_root_vert.glsl b/source/blender/draw/engines/overlay/shaders/edit_mesh_skin_root_vert.glsl
index 944eb41058e..95c90b16551 100644
--- a/source/blender/draw/engines/overlay/shaders/edit_mesh_skin_root_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/edit_mesh_skin_root_vert.glsl
@@ -17,7 +17,7 @@ void main()
   vec4 pos_4d = ModelMatrix * vec4(local_pos + screen_pos, 1.0);
   gl_Position = ViewProjectionMatrix * pos_4d;
   /* Manual stipple: one segment out of 2 is transparent. */
-  finalColor = ((gl_VertexID & 1) == 0) ? colorSkinRoot : vec4(0.0);
+  finalColor = ((gl_VertexIndex & 1) == 0) ? colorSkinRoot : vec4(0.0);
 
 #ifdef USE_WORLD_CLIP_PLANES
   world_clip_planes_calc_clip_distance(pos_4d.xyz);
diff --git a/source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl b/source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl
index 3746cbcf90b..3f537eb3db3 100644
--- a/source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl


@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list