diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/interface/interface_widgets.c | 6 | ||||
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl | 26 |
2 files changed, 21 insertions, 11 deletions
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 0c6be7b1196..e351cd30c14 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -1225,12 +1225,6 @@ static bool draw_widgetbase_batch_skip_draw_cache(void) return true; } - /* There are also reports that some AMD and Mesa driver configuration suffer from the - * same issue, T78803. */ - if (GPU_type_matches(GPU_DEVICE_ATI, GPU_OS_UNIX, GPU_DRIVER_OPENSOURCE)) { - return true; - } - return false; } diff --git a/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl b/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl index 81e0965fad3..b5036b51d9d 100644 --- a/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl +++ b/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl @@ -61,11 +61,27 @@ vec2 do_widget(void) const vec2 ofs = vec2(0.5, -0.5); lineWidth = abs(rect.x - recti.x); vec2 emboss_ofs = vec2(0.0, -lineWidth); - vec2 v_pos[4] = vec2[4](rect.xz + emboss_ofs + ofs.yy, - rect.xw + ofs.yx, - rect.yz + emboss_ofs + ofs.xy, - rect.yw + ofs.xx); - vec2 pos = v_pos[gl_VertexID]; + + vec2 pos; + switch (gl_VertexID) { + default: + case 0: { + pos = rect.xz + emboss_ofs + ofs.yy; + break; + } + case 1: { + pos = rect.xw + ofs.yx; + break; + } + case 2: { + pos = rect.yz + emboss_ofs + ofs.xy; + break; + } + case 3: { + pos = rect.yw + ofs.xx; + break; + } + } uvInterp = pos - rect.xz; outRectSize = rect.yw - rect.xz; |