From 0c3953d545441a8ae551c3ecb0c16c1bccc3839f Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Thu, 1 Sep 2022 12:23:08 -0300 Subject: GPU: remove 'GPU_SHADER_2D_IMAGE' The only real difference between `GPU_SHADER_2D_IMAGE` and `GPU_SHADER_3D_IMAGE` 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. This 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_IMAGE' and '3D_IMAGE' is 'IMAGE', but the old names still work for backward compatibility. --- source/blender/gpu/GPU_shader.h | 1 - source/blender/gpu/intern/gpu_shader_builtin.c | 5 ----- source/blender/gpu/shaders/infos/gpu_shader_2D_image_info.hh | 5 ----- source/blender/makesrna/intern/rna_render.c | 2 +- source/blender/windowmanager/intern/wm_stereo.c | 4 ++-- 5 files changed, 3 insertions(+), 14 deletions(-) diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h index 65a628bcd76..0f3a494fc3f 100644 --- a/source/blender/gpu/GPU_shader.h +++ b/source/blender/gpu/GPU_shader.h @@ -213,7 +213,6 @@ typedef enum eGPUBuiltinShader { * \param pos: in vec2 */ GPU_SHADER_2D_SMOOTH_COLOR, - GPU_SHADER_2D_IMAGE, GPU_SHADER_2D_IMAGE_COLOR, GPU_SHADER_2D_IMAGE_DESATURATE_COLOR, GPU_SHADER_2D_IMAGE_RECT_COLOR, diff --git a/source/blender/gpu/intern/gpu_shader_builtin.c b/source/blender/gpu/intern/gpu_shader_builtin.c index 4776a8b9b12..8afe3e04dc9 100644 --- a/source/blender/gpu/intern/gpu_shader_builtin.c +++ b/source/blender/gpu/intern/gpu_shader_builtin.c @@ -170,11 +170,6 @@ static const GPUShaderStages builtin_shader_stages[GPU_SHADER_BUILTIN_LEN] = { .name = "GPU_SHADER_2D_IMAGE_OVERLAYS_STEREO_MERGE", .create_info = "gpu_shader_2D_image_overlays_stereo_merge", }, - [GPU_SHADER_2D_IMAGE] = - { - .name = "GPU_SHADER_2D_IMAGE", - .create_info = "gpu_shader_2D_image", - }, [GPU_SHADER_2D_IMAGE_COLOR] = { .name = "GPU_SHADER_2D_IMAGE_COLOR", diff --git a/source/blender/gpu/shaders/infos/gpu_shader_2D_image_info.hh b/source/blender/gpu/shaders/infos/gpu_shader_2D_image_info.hh index 06aad15c18a..a92dca0ce90 100644 --- a/source/blender/gpu/shaders/infos/gpu_shader_2D_image_info.hh +++ b/source/blender/gpu/shaders/infos/gpu_shader_2D_image_info.hh @@ -16,8 +16,3 @@ GPU_SHADER_CREATE_INFO(gpu_shader_2D_image_common) .push_constant(Type::MAT4, "ModelViewProjectionMatrix") .sampler(0, ImageType::FLOAT_2D, "image") .vertex_source("gpu_shader_2D_image_vert.glsl"); - -GPU_SHADER_CREATE_INFO(gpu_shader_2D_image) - .additional_info("gpu_shader_2D_image_common") - .fragment_source("gpu_shader_image_frag.glsl") - .do_static_compilation(true); diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 11a7be69f68..6a66445ee4c 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -118,7 +118,7 @@ static int engine_get_preview_pixel_size(RenderEngine *UNUSED(engine), Scene *sc static void engine_bind_display_space_shader(RenderEngine *UNUSED(engine), Scene *UNUSED(scene)) { - GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_2D_IMAGE); + GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_3D_IMAGE); GPU_shader_bind(shader); int img_loc = GPU_shader_get_uniform(shader, "image"); diff --git a/source/blender/windowmanager/intern/wm_stereo.c b/source/blender/windowmanager/intern/wm_stereo.c index f85c818cdf3..48a0d47f26a 100644 --- a/source/blender/windowmanager/intern/wm_stereo.c +++ b/source/blender/windowmanager/intern/wm_stereo.c @@ -47,7 +47,7 @@ void wm_stereo3d_draw_sidebyside(wmWindow *win, int view) uint texcoord = GPU_vertformat_attr_add(format, "texCoord", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); - immBindBuiltinProgram(GPU_SHADER_2D_IMAGE); + immBindBuiltinProgram(GPU_SHADER_3D_IMAGE); int soffx = WM_window_pixels_x(win) * 0.5f; if (view == STEREO_LEFT_ID) { @@ -95,7 +95,7 @@ void wm_stereo3d_draw_topbottom(wmWindow *win, int view) uint texcoord = GPU_vertformat_attr_add(format, "texCoord", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); - immBindBuiltinProgram(GPU_SHADER_2D_IMAGE); + immBindBuiltinProgram(GPU_SHADER_3D_IMAGE); int soffy; if (view == STEREO_LEFT_ID) { -- cgit v1.2.3