Page MenuHome

GPU: remove 'GPU_SHADER_2D_UNIFORM_COLOR'
ClosedPublic

Authored by Germano Cavalcante (mano-wii) on Sep 1 2022, 2:32 PM.

Details

Summary

The only real difference between GPU_SHADER_2D_UNIFORM_COLOR and
GPU_SHADER_3D_UNIFORM_COLOR is that in the vertex shader the 2D
version uses vec4(pos, 0.0, 1.0) and the 3D version uses
vec4(pos, 1.0).

But VBOs with 2D attributes work perfectly in shaders that use 3D
attributes. Components not specified are filled with components from
vec4(0.0, 0.0, 0.0, 1.0).

So there is no real benefit to having two different shader versions.

The removal will simplify porting shaders to python as it will not be
necessary to use a 3D and a 2D version of the shaders.

In python the new name for '2D_UNIFORM_COLOR'' and '3D_UNIFORM_COLOR'
is 'UNIFORM_COLOR', but the old names still work for backward
compatibility.

Other shaders waiting to be removed/replaced:

GPU_SHADER_2D_FLAT_COLOR,
GPU_SHADER_2D_IMAGE,
GPU_SHADER_2D_SMOOTH_COLOR,

Diff Detail

Repository
rB Blender
Branch
master
Build Status
Buildable 23569
Build 23569: arc lint + arc unit

Event Timeline

Germano Cavalcante (mano-wii) requested review of this revision.Sep 1 2022, 2:32 PM
Germano Cavalcante (mano-wii) created this revision.
This revision is now accepted and ready to land.Sep 1 2022, 2:37 PM
  • remove outdated comment
  • Fix python documentation
  • GPU: remove 'GPU_SHADER_2D_FLAT_COLOR'
  • GPU: remove 'GPU_SHADER_2D_IMAGE'
  • GPU: remove 'GPU_SHADER_2D_SMOOTH_COLOR'