From 5916c39fa44ecd94fe7187fb1c2f630bec0e790c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cle=CC=81ment=20Foucault?= Date: Tue, 4 Mar 2025 00:20:52 +0100 Subject: [PATCH] Cleanup: DRW: Simplify resource id and custom id --- .../shaders/eevee_attributes_curves_lib.glsl | 1 - .../eevee_attributes_pointcloud_lib.glsl | 1 - .../eevee_next/shaders/eevee_forward_lib.glsl | 2 +- .../shaders/eevee_geom_world_vert.glsl | 2 +- .../shaders/eevee_shadow_tag_usage_vert.glsl | 4 +- .../shaders/eevee_surf_capture_frag.glsl | 2 +- .../shaders/eevee_surf_deferred_frag.glsl | 8 +-- .../shaders/eevee_surf_forward_frag.glsl | 2 +- .../shaders/eevee_surf_hybrid_frag.glsl | 8 +-- .../eevee_next/shaders/eevee_surf_lib.glsl | 2 +- .../shaders/eevee_velocity_lib.glsl | 4 +- .../gpencil/shaders/infos/gpencil_info.hh | 1 - .../shaders/infos/overlay_armature_info.hh | 2 - .../shaders/infos/overlay_common_info.hh | 4 +- .../shaders/infos/overlay_edit_mode_info.hh | 36 ---------- .../shaders/infos/overlay_extra_info.hh | 7 -- .../shaders/infos/overlay_facing_info.hh | 1 - .../shaders/infos/overlay_grid_info.hh | 2 - .../shaders/infos/overlay_outline_info.hh | 5 -- .../shaders/infos/overlay_paint_info.hh | 5 -- .../infos/overlay_sculpt_curves_info.hh | 2 - .../shaders/infos/overlay_sculpt_info.hh | 1 - .../shaders/infos/overlay_wireframe_info.hh | 4 -- .../overlay_depth_only_curves_vert.glsl | 2 +- .../overlay_depth_only_gpencil_vert.glsl | 2 +- ...lay_depth_only_mesh_conservative_vert.glsl | 2 +- .../overlay_depth_only_pointcloud_vert.glsl | 2 +- .../shaders/overlay_depth_only_vert.glsl | 2 +- .../overlay_extra_lightprobe_grid_vert.glsl | 2 +- .../shaders/overlay_extra_wire_vert.glsl | 2 +- .../overlay/shaders/overlay_image_vert.glsl | 2 +- .../overlay_outline_prepass_curves_vert.glsl | 4 +- .../overlay_outline_prepass_gpencil_vert.glsl | 4 +- ...erlay_outline_prepass_pointcloud_vert.glsl | 4 +- .../shaders/overlay_outline_prepass_vert.glsl | 4 +- .../overlay_outline_prepass_wire_vert.glsl | 4 +- .../shaders/overlay_particle_hair_vert.glsl | 4 +- .../shaders/overlay_particle_shape_vert.glsl | 3 +- .../shaders/overlay_particle_vert.glsl | 5 +- .../shaders/overlay_wireframe_vert.glsl | 6 +- .../engines/select/shaders/select_lib.glsl | 6 +- .../shaders/infos/workbench_prepass_info.hh | 3 - .../shaders/infos/workbench_shadow_info.hh | 1 - .../shaders/workbench_prepass_hair_vert.glsl | 4 +- .../workbench_prepass_pointcloud_vert.glsl | 4 +- .../shaders/workbench_prepass_vert.glsl | 4 +- .../shaders/workbench_volume_vert.glsl | 2 +- .../blender/draw/intern/draw_shader_shared.hh | 2 +- .../draw/intern/shaders/draw_model_lib.glsl | 67 +++++++++++++------ .../intern/shaders/draw_object_infos_info.hh | 21 +++--- .../draw/intern/shaders/draw_view_info.hh | 40 ++++------- 51 files changed, 127 insertions(+), 187 deletions(-) diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_attributes_curves_lib.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_attributes_curves_lib.glsl index 33c86f2548f..0de9a44f277 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_attributes_curves_lib.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_attributes_curves_lib.glsl @@ -12,7 +12,6 @@ #endif SHADER_LIBRARY_CREATE_INFO(draw_modelmat) -SHADER_LIBRARY_CREATE_INFO(draw_resource_handle_new) SHADER_LIBRARY_CREATE_INFO(draw_hair) #include "common_hair_lib.glsl" /* TODO rename to curve. */ diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_attributes_pointcloud_lib.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_attributes_pointcloud_lib.glsl index 0158d4bb468..f1e08dceb0d 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_attributes_pointcloud_lib.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_attributes_pointcloud_lib.glsl @@ -12,7 +12,6 @@ #endif SHADER_LIBRARY_CREATE_INFO(draw_modelmat) -SHADER_LIBRARY_CREATE_INFO(draw_resource_handle_new) SHADER_LIBRARY_CREATE_INFO(draw_pointcloud) #include "draw_model_lib.glsl" diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_forward_lib.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_forward_lib.glsl index f16a2d773aa..45d8ed78824 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_forward_lib.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_forward_lib.glsl @@ -45,7 +45,7 @@ void forward_lighting_eval(float thickness, out vec3 radiance, out vec3 transmit /* TODO(fclem): If transmission (no SSS) is present, we could reduce LIGHT_CLOSURE_EVAL_COUNT * by 1 for this evaluation and skip evaluating the transmission closure twice. */ - ObjectInfos object_infos = drw_infos[resource_id]; + ObjectInfos object_infos = drw_infos[drw_resource_id()]; uchar receiver_light_set = receiver_light_set_get(object_infos); light_eval_reflection(stack, g_data.P, surface_N, V, vPz, receiver_light_set); diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_geom_world_vert.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_geom_world_vert.glsl index e27b52a290c..52c01ec5f1e 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_geom_world_vert.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_geom_world_vert.glsl @@ -17,7 +17,7 @@ VERTEX_SHADER_CREATE_INFO(eevee_geom_world) void main() { /* (W)Intel drivers require all varying iface to be written to inside the Vertex shader. */ - drw_ResourceID_iface.resource_index = 0; + drw_ResourceID_iface.resource_index = 0u; /* Full-screen triangle. */ int v = gl_VertexID % 3; diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_shadow_tag_usage_vert.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_shadow_tag_usage_vert.glsl index 6c6e2e04f6c..4fca9cc18d8 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_shadow_tag_usage_vert.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_shadow_tag_usage_vert.glsl @@ -44,9 +44,9 @@ void inflate_bounds(vec3 ls_center, inout vec3 P, inout vec3 lP) void main() { - DRW_RESOURCE_ID_VARYING_SET + drw_ResourceID_iface.resource_index = drw_resource_id(); - ObjectBounds bounds = bounds_buf[resource_id]; + ObjectBounds bounds = bounds_buf[drw_resource_id()]; if (!drw_bounds_are_valid(bounds)) { /* Discard. */ gl_Position = vec4(NAN_FLT); diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_capture_frag.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_capture_frag.glsl index 9e31b7da337..ac53f52ad92 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_capture_frag.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_capture_frag.glsl @@ -59,7 +59,7 @@ void main() if (is_surface_view_aligned) { uint surfel_id = atomicAdd(capture_info_buf.surfel_len, 1u); if (capture_info_buf.do_surfel_output) { - ObjectInfos object_infos = drw_infos[resource_id]; + ObjectInfos object_infos = drw_infos[drw_resource_id()]; surfel_buf[surfel_id].position = g_data.P; surfel_buf[surfel_id].normal = gl_FrontFacing ? g_data.Ng : -g_data.Ng; surfel_buf[surfel_id].albedo_front = albedo; diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_deferred_frag.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_deferred_frag.glsl index 9916c8efdce..b5ac84dca31 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_deferred_frag.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_deferred_frag.glsl @@ -62,7 +62,7 @@ void main() float alpha_rcp = safe_rcp(alpha); /* Object holdout. */ - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); if (flag_test(ob_flag, OBJECT_HOLDOUT)) { /* alpha is set from rejected pixels / dithering. */ g_holdout = 1.0; @@ -81,7 +81,7 @@ void main() /* Some render pass can be written during the gbuffer pass. Light passes are written later. */ if (imageSize(rp_cryptomatte_img).x > 1) { vec4 cryptomatte_output = vec4( - cryptomatte_object_buf[resource_id], node_tree.crypto_hash, 0.0); + cryptomatte_object_buf[drw_resource_id()], node_tree.crypto_hash, 0.0); imageStoreFast(rp_cryptomatte_img, out_texel, cryptomatte_output); } output_renderpass_color(uniform_buf.render_pass.position_id, vec4(g_data.P, 1.0)); @@ -98,10 +98,10 @@ void main() #if CLOSURE_BIN_COUNT > 2 gbuf_data.closure[2] = g_closure_get_resolved(2, alpha_rcp); #endif - ObjectInfos object_infos = drw_infos[resource_id]; + ObjectInfos object_infos = drw_infos[drw_resource_id()]; gbuf_data.surface_N = g_data.N; gbuf_data.thickness = thickness; - gbuf_data.object_id = resource_id; + gbuf_data.object_id = drw_resource_id(); gbuf_data.receiver_light_set = receiver_light_set_get(object_infos); GBufferWriter gbuf = gbuffer_pack(gbuf_data); diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_forward_frag.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_forward_frag.glsl index 0d5f32c4199..e27affa397f 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_forward_frag.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_forward_frag.glsl @@ -54,7 +54,7 @@ void main() nodetree_surface(closure_rand); - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); if (flag_test(ob_flag, OBJECT_HOLDOUT)) { g_holdout = 1.0 - average(g_transmittance); } diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_hybrid_frag.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_hybrid_frag.glsl index 03b1636ac9e..a186a0d0c5d 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_hybrid_frag.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_hybrid_frag.glsl @@ -65,7 +65,7 @@ void main() float alpha_rcp = safe_rcp(alpha); /* Object holdout. */ - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); if (flag_test(ob_flag, OBJECT_HOLDOUT)) { /* alpha is set from rejected pixels / dithering. */ g_holdout = 1.0; @@ -84,7 +84,7 @@ void main() /* Some render pass can be written during the gbuffer pass. Light passes are written later. */ if (imageSize(rp_cryptomatte_img).x > 1) { vec4 cryptomatte_output = vec4( - cryptomatte_object_buf[resource_id], node_tree.crypto_hash, 0.0); + cryptomatte_object_buf[drw_resource_id()], node_tree.crypto_hash, 0.0); imageStoreFast(rp_cryptomatte_img, out_texel, cryptomatte_output); } output_renderpass_color(uniform_buf.render_pass.position_id, vec4(g_data.P, 1.0)); @@ -101,10 +101,10 @@ void main() #if CLOSURE_BIN_COUNT > 2 gbuf_data.closure[2] = g_closure_get_resolved(2, alpha_rcp); #endif - ObjectInfos object_infos = drw_infos[resource_id]; + ObjectInfos object_infos = drw_infos[drw_resource_id()]; gbuf_data.surface_N = g_data.N; gbuf_data.thickness = g_thickness; - gbuf_data.object_id = resource_id; + gbuf_data.object_id = drw_resource_id(); gbuf_data.receiver_light_set = receiver_light_set_get(object_infos); GBufferWriter gbuf = gbuffer_pack(gbuf_data); diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_lib.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_lib.glsl index 3829f40c1c2..43b78f9edb4 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_lib.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_lib.glsl @@ -125,7 +125,7 @@ void init_interface() #ifdef GPU_VERTEX_SHADER interp.P = vec3(0.0); interp.N = vec3(0.0); - drw_ResourceID_iface.resource_index = resource_id; + drw_ResourceID_iface.resource_index = drw_resource_id(); #endif } diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_velocity_lib.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_velocity_lib.glsl index 683167cbe09..dc6a0be3c0e 100644 --- a/source/blender/draw/engines/eevee_next/shaders/eevee_velocity_lib.glsl +++ b/source/blender/draw/engines/eevee_next/shaders/eevee_velocity_lib.glsl @@ -113,7 +113,7 @@ vec4 velocity_resolve(sampler2D vector_tx, ivec2 texel, float depth) */ void velocity_local_pos_get(vec3 lP, int vert_id, out vec3 lP_prev, out vec3 lP_next) { - VelocityIndex vel = velocity_indirection_buf[resource_id]; + VelocityIndex vel = velocity_indirection_buf[drw_resource_id()]; lP_next = lP_prev = lP; if (vel.geo.do_deform) { if (vel.geo.ofs[STEP_PREVIOUS] != -1) { @@ -133,7 +133,7 @@ void velocity_local_pos_get(vec3 lP, int vert_id, out vec3 lP_prev, out vec3 lP_ void velocity_vertex( vec3 lP_prev, vec3 lP, vec3 lP_next, out vec3 motion_prev, out vec3 motion_next) { - VelocityIndex vel = velocity_indirection_buf[resource_id]; + VelocityIndex vel = velocity_indirection_buf[drw_resource_id()]; mat4 obmat_prev = velocity_obj_prev_buf[vel.obj.ofs[STEP_PREVIOUS]]; mat4 obmat_next = velocity_obj_next_buf[vel.obj.ofs[STEP_NEXT]]; vec3 P_prev = transform_point(obmat_prev, lP_prev); diff --git a/source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh b/source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh index f35363ad382..2dee4a70578 100644 --- a/source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh +++ b/source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh @@ -78,7 +78,6 @@ FRAGMENT_SOURCE("gpencil_frag.glsl") DEPTH_WRITE(DepthWrite::ANY) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_gpencil) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_armature_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_armature_info.hh index c6f674410b4..6f65c53392d 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_armature_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_armature_info.hh @@ -236,7 +236,6 @@ VERTEX_SOURCE("overlay_armature_stick_vert.glsl") FRAGMENT_SOURCE("overlay_armature_stick_frag.glsl") ADDITIONAL_INFO(overlay_frag_output) ADDITIONAL_INFO(overlay_armature_common) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) STORAGE_BUF(0, READ, BoneStickData, data_buf[]) GPU_SHADER_CREATE_END() @@ -278,7 +277,6 @@ VERTEX_SOURCE("overlay_armature_wire_vert.glsl") FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(overlay_frag_output) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) STORAGE_BUF(0, READ, VertexData, data_buf[]) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_common_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_common_info.hh index 7646d1c5301..ceaafdc6b07 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_common_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_common_info.hh @@ -22,7 +22,7 @@ UNIFORM_BUF_FREQ(OVERLAY_GLOBALS_SLOT, GlobalsUboStorage, globalsBlock, PASS) GPU_SHADER_CREATE_END() GPU_SHADER_INTERFACE_INFO(select_id_patch_iface) -FLAT(INT, select_id) +FLAT(UINT, select_id) GPU_SHADER_INTERFACE_END() /* Used to patch overlay shaders. */ @@ -33,7 +33,7 @@ VERTEX_OUT(select_id_patch_iface) EARLY_FRAGMENT_TEST(true) UNIFORM_BUF(SELECT_DATA, SelectInfoData, select_info_buf) /* Select IDs for instanced draw-calls not using #PassMain. */ -STORAGE_BUF(SELECT_ID_IN, READ, int, in_select_buf[]) +STORAGE_BUF(SELECT_ID_IN, READ, uint, in_select_buf[]) /* Stores the result of the whole selection drawing. Content depends on selection mode. */ STORAGE_BUF(SELECT_ID_OUT, READ_WRITE, uint, out_select_buf[]) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh index df017b14d08..6626d58a238 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh @@ -64,7 +64,6 @@ VERTEX_SOURCE("overlay_edit_mesh_depth_vert.glsl") FRAGMENT_SOURCE("overlay_depth_only_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -88,7 +87,6 @@ FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(overlay_edit_mesh_common) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -123,7 +121,6 @@ VERTEX_SOURCE("overlay_edit_mesh_edge_vert.glsl") FRAGMENT_SOURCE("overlay_edit_mesh_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(gpu_index_buffer_load) ADDITIONAL_INFO(overlay_edit_mesh_common) GPU_SHADER_CREATE_END() @@ -141,7 +138,6 @@ FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(overlay_edit_mesh_common) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -158,7 +154,6 @@ VERTEX_OUT(overlay_edit_flat_color_iface) FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(overlay_edit_mesh_common) GPU_SHADER_CREATE_END() @@ -185,7 +180,6 @@ DO_STATIC_COMPILATION() ADDITIONAL_INFO(overlay_edit_mesh_normal) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(gpu_index_buffer_load) STORAGE_BUF_FREQ(1, READ, float, pos[], GEOMETRY) @@ -201,7 +195,6 @@ DO_STATIC_COMPILATION() ADDITIONAL_INFO(overlay_edit_mesh_normal) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(gpu_index_buffer_load) STORAGE_BUF_FREQ(1, READ, float, pos[], GEOMETRY) @@ -217,7 +210,6 @@ DO_STATIC_COMPILATION() ADDITIONAL_INFO(overlay_edit_mesh_normal) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(gpu_index_buffer_load) STORAGE_BUF_FREQ(1, READ, float, pos[], GEOMETRY) @@ -233,7 +225,6 @@ DO_STATIC_COMPILATION() ADDITIONAL_INFO(overlay_edit_mesh_normal) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(gpu_index_buffer_load) STORAGE_BUF_FREQ(1, READ, float, pos[], GEOMETRY) @@ -249,7 +240,6 @@ DO_STATIC_COMPILATION() ADDITIONAL_INFO(overlay_edit_mesh_normal) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(gpu_index_buffer_load) STORAGE_BUF_FREQ(1, READ, float, pos[], GEOMETRY) @@ -264,7 +254,6 @@ DO_STATIC_COMPILATION() ADDITIONAL_INFO(overlay_edit_mesh_normal) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(gpu_index_buffer_load) STORAGE_BUF_FREQ(1, READ, float, pos[], GEOMETRY) @@ -291,7 +280,6 @@ VERTEX_SOURCE("overlay_edit_mesh_analysis_vert.glsl") FRAGMENT_SOURCE("overlay_edit_mesh_analysis_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -305,7 +293,6 @@ VERTEX_SOURCE("overlay_edit_mesh_skin_root_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) /* TODO(fclem): Use correct vertex format. For now we read the format manually. */ STORAGE_BUF_FREQ(0, READ, float, size[], GEOMETRY) @@ -344,7 +331,6 @@ VERTEX_SOURCE("overlay_edit_uv_edges_vert.glsl") FRAGMENT_SOURCE("overlay_edit_uv_edges_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(gpu_index_buffer_load) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -360,7 +346,6 @@ VERTEX_SOURCE("overlay_edit_uv_faces_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -375,7 +360,6 @@ VERTEX_SOURCE("overlay_edit_uv_face_dots_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -398,7 +382,6 @@ VERTEX_SOURCE("overlay_edit_uv_verts_vert.glsl") FRAGMENT_SOURCE("overlay_edit_uv_verts_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -471,7 +454,6 @@ VERTEX_IN(1, FLOAT, ratio) PUSH_CONSTANT(FLOAT, totalAreaRatio) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(overlay_edit_uv_stretching) GPU_SHADER_CREATE_END() @@ -483,7 +465,6 @@ VERTEX_IN(1, VEC2, uv_angles) VERTEX_IN(2, FLOAT, angle) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(overlay_edit_uv_stretching) GPU_SHADER_CREATE_END() @@ -512,7 +493,6 @@ VERTEX_SOURCE("overlay_edit_curve_handle_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(gpu_index_buffer_load) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -532,7 +512,6 @@ VERTEX_SOURCE("overlay_edit_curve_point_vert.glsl") FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -551,7 +530,6 @@ VERTEX_SOURCE("overlay_edit_curve_wire_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -575,7 +553,6 @@ VERTEX_SOURCE("overlay_edit_curve_normals_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(gpu_index_buffer_load) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -604,7 +581,6 @@ VERTEX_SOURCE("overlay_edit_curves_handle_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(gpu_index_buffer_load) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -633,7 +609,6 @@ VERTEX_SOURCE("overlay_edit_particle_point_vert.glsl") FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -655,7 +630,6 @@ FRAGMENT_OUT(1, VEC4, lineOutput) VERTEX_SOURCE("overlay_edit_lattice_point_vert.glsl") FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -672,7 +646,6 @@ FRAGMENT_OUT(1, VEC4, lineOutput) VERTEX_SOURCE("overlay_edit_lattice_wire_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -697,7 +670,6 @@ VERTEX_SOURCE("overlay_edit_particle_strand_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -722,7 +694,6 @@ VERTEX_SOURCE("overlay_edit_particle_point_vert.glsl") FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -743,7 +714,6 @@ FRAGMENT_OUT(1, VEC4, lineOutput) VERTEX_SOURCE("overlay_edit_pointcloud_vert.glsl") FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -763,7 +733,6 @@ VERTEX_SOURCE("overlay_depth_only_vert.glsl") FRAGMENT_SOURCE("overlay_depth_only_frag.glsl") ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) GPU_SHADER_CREATE_END() OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_depth_mesh, overlay_depth_mesh_base) @@ -776,7 +745,6 @@ FRAGMENT_SOURCE("overlay_depth_only_frag.glsl") ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(gpu_index_buffer_load) -ADDITIONAL_INFO(draw_resource_handle_new) GPU_SHADER_CREATE_END() OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_depth_mesh_conservative, @@ -802,7 +770,6 @@ DEPTH_WRITE(DepthWrite::ANY) PUSH_CONSTANT(BOOL, gpStrokeOrder3d) /* TODO(fclem): Move to a GPencil object UBO. */ PUSH_CONSTANT(VEC4, gpDepthPlane) /* TODO(fclem): Move to a GPencil object UBO. */ ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_gpencil) ADDITIONAL_INFO(draw_object_infos) @@ -816,7 +783,6 @@ FRAGMENT_SOURCE("overlay_depth_only_frag.glsl") ADDITIONAL_INFO(draw_pointcloud) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) GPU_SHADER_CREATE_END() OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_depth_pointcloud, overlay_depth_pointcloud_base) @@ -827,7 +793,6 @@ FRAGMENT_SOURCE("overlay_depth_only_frag.glsl") ADDITIONAL_INFO(draw_hair) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) GPU_SHADER_CREATE_END() OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_depth_curves, overlay_depth_curves_base) @@ -849,7 +814,6 @@ VERTEX_SOURCE("overlay_depth_only_vert.glsl") FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_globals) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_modelmat) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_extra_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_extra_info.hh index f30c76caf8b..e2c1e34ee42 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_extra_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_extra_info.hh @@ -71,7 +71,6 @@ FRAGMENT_OUT(0, VEC4, fragColor) VERTEX_SOURCE("overlay_extra_lightprobe_grid_vert.glsl") FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -123,7 +122,6 @@ PUSH_CONSTANT(INT, colorid) DEFINE_VALUE("pos", "data_buf[gl_VertexID].pos_.xyz") DEFINE_VALUE("color", "data_buf[gl_VertexID].color_") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -141,7 +139,6 @@ VERTEX_SOURCE("overlay_extra_wire_vert.glsl") FRAGMENT_SOURCE("overlay_extra_wire_frag.glsl") DEFINE("OBJECT_WIRE") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -270,7 +267,6 @@ FRAGMENT_OUT(0, VEC4, fragColor) VERTEX_SOURCE("overlay_image_vert.glsl") FRAGMENT_SOURCE("overlay_image_frag.glsl") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -331,7 +327,6 @@ FRAGMENT_OUT(1, VEC4, lineOutput) VERTEX_SOURCE("overlay_particle_vert.glsl") FRAGMENT_SOURCE("overlay_particle_frag.glsl") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -350,7 +345,6 @@ FRAGMENT_OUT(1, VEC4, lineOutput) VERTEX_SOURCE("overlay_particle_shape_vert.glsl") FRAGMENT_SOURCE("overlay_particle_shape_frag.glsl") ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -370,7 +364,6 @@ VERTEX_SOURCE("overlay_particle_hair_vert.glsl") FRAGMENT_SOURCE("overlay_particle_shape_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_object_infos) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_facing_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_facing_info.hh index 045a7b65a45..568d8f0c778 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_facing_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_facing_info.hh @@ -19,7 +19,6 @@ VERTEX_SOURCE("overlay_facing_vert.glsl") FRAGMENT_SOURCE("overlay_facing_frag.glsl") FRAGMENT_OUT(0, VEC4, fragColor) ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_grid_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_grid_info.hh index 8fd5f468461..ba1d063a125 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_grid_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_grid_info.hh @@ -46,7 +46,6 @@ VERTEX_SOURCE("overlay_edit_uv_tiled_image_borders_vert.glsl") FRAGMENT_SOURCE("overlay_grid_background_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) DEFINE_VALUE("tile_pos", "vec3(0.0)") PUSH_CONSTANT(VEC3, tile_scale) @@ -61,7 +60,6 @@ VERTEX_SOURCE("overlay_edit_uv_tiled_image_borders_vert.glsl") FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) STORAGE_BUF(0, READ, vec3, tile_pos_buf[]) DEFINE_VALUE("tile_pos", "tile_pos_buf[gl_InstanceID]") diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_outline_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_outline_info.hh index db70482c5bb..11d5621f56d 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_outline_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_outline_info.hh @@ -48,7 +48,6 @@ VERTEX_IN(0, VEC3, pos) VERTEX_SOURCE("overlay_outline_prepass_vert.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_object_infos) ADDITIONAL_INFO(overlay_outline_prepass) @@ -65,7 +64,6 @@ DO_STATIC_COMPILATION() VERTEX_SOURCE("overlay_outline_prepass_curves_vert.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_hair) ADDITIONAL_INFO(draw_object_infos) @@ -80,7 +78,6 @@ ADDITIONAL_INFO(overlay_outline_prepass) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_mesh) ADDITIONAL_INFO(draw_object_infos) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(gpu_index_buffer_load) STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY) PUSH_CONSTANT(IVEC2, gpu_attr_0) @@ -114,7 +111,6 @@ FRAGMENT_SOURCE("overlay_outline_prepass_gpencil_frag.glsl") DEPTH_WRITE(DepthWrite::ANY) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_gpencil) ADDITIONAL_INFO(draw_object_infos) @@ -127,7 +123,6 @@ DO_STATIC_COMPILATION() VERTEX_SOURCE("overlay_outline_prepass_pointcloud_vert.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_pointcloud) ADDITIONAL_INFO(draw_object_infos) diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_paint_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_paint_info.hh index 6ea220f102d..992ec159481 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_paint_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_paint_info.hh @@ -29,7 +29,6 @@ VERTEX_SOURCE("overlay_paint_face_vert.glsl") FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -57,7 +56,6 @@ VERTEX_SOURCE("overlay_paint_point_vert.glsl") FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -90,7 +88,6 @@ VERTEX_SOURCE("overlay_paint_texture_vert.glsl") FRAGMENT_SOURCE("overlay_paint_texture_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -125,7 +122,6 @@ VERTEX_SOURCE("overlay_paint_weight_vert.glsl") FRAGMENT_SOURCE("overlay_paint_weight_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -164,7 +160,6 @@ VERTEX_SOURCE("overlay_paint_wire_vert.glsl") FRAGMENT_SOURCE("overlay_varying_color.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_sculpt_curves_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_sculpt_curves_info.hh index 581c31688a0..806c1f6d9d6 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_sculpt_curves_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_sculpt_curves_info.hh @@ -31,7 +31,6 @@ FRAGMENT_SOURCE("overlay_sculpt_curves_selection_frag.glsl") FRAGMENT_OUT(0, VEC4, out_color) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) ADDITIONAL_INFO(draw_hair) GPU_SHADER_CREATE_END() @@ -56,7 +55,6 @@ VERTEX_SOURCE("overlay_sculpt_curves_cage_vert.glsl") FRAGMENT_SOURCE("overlay_extra_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_sculpt_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_sculpt_info.hh index 44b63d8d40b..f05519fdfad 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_sculpt_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_sculpt_info.hh @@ -32,7 +32,6 @@ FRAGMENT_SOURCE("overlay_sculpt_mask_frag.glsl") FRAGMENT_OUT(0, VEC4, fragColor) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_wireframe_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_wireframe_info.hh index 99b6060a0bc..f3e7b7b9b83 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_wireframe_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_wireframe_info.hh @@ -45,7 +45,6 @@ FRAGMENT_OUT(1, VEC4, lineOutput) DEPTH_WRITE(DepthWrite::ANY) SPECIALIZATION_CONSTANT(BOOL, use_custom_depth_bias, true) ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_object_infos) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -66,7 +65,6 @@ FRAGMENT_SOURCE("overlay_wireframe_frag.glsl") FRAGMENT_OUT(0, VEC4, fragColor) FRAGMENT_OUT(1, VEC4, lineOutput) ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_object_infos) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -91,7 +89,6 @@ FRAGMENT_SOURCE("overlay_wireframe_frag.glsl") FRAGMENT_OUT(0, VEC4, fragColor) FRAGMENT_OUT(1, VEC4, lineOutput) ADDITIONAL_INFO(draw_view) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_object_infos) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() @@ -122,7 +119,6 @@ VERTEX_SOURCE("overlay_edit_uv_edges_vert.glsl") FRAGMENT_SOURCE("overlay_edit_uv_edges_frag.glsl") ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(gpu_index_buffer_load) ADDITIONAL_INFO(draw_globals) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_curves_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_curves_vert.glsl index 4a0af503eff..3396992cf7d 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_curves_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_curves_vert.glsl @@ -14,7 +14,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_depth_curves) void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); bool is_persp = (ProjectionMatrix[3][3] == 0.0); float time, thick_time, thickness; diff --git a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_gpencil_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_gpencil_vert.glsl index 582455b763a..2e6051aaa26 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_gpencil_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_gpencil_vert.glsl @@ -36,5 +36,5 @@ void main() view_clipping_distances(world_pos); - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); } diff --git a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_mesh_conservative_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_mesh_conservative_vert.glsl index 6ad577d00f9..3402297989b 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_mesh_conservative_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_mesh_conservative_vert.glsl @@ -99,7 +99,7 @@ void geometry_main(VertOut geom_in[3], void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); /* Triangle list primitive. */ const uint input_primitive_vertex_count = 3u; diff --git a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_pointcloud_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_pointcloud_vert.glsl index 5986d9782c5..95733a266e8 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_pointcloud_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_pointcloud_vert.glsl @@ -14,7 +14,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_depth_pointcloud) void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); vec3 world_pos, world_nor; float world_radius; diff --git a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_vert.glsl index d8deb11b5e2..1599dfab093 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_depth_only_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_depth_only_vert.glsl @@ -13,7 +13,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_depth_mesh) void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); vec3 world_pos = drw_point_object_to_world(pos); gl_Position = drw_point_world_to_homogenous(world_pos); diff --git a/source/blender/draw/engines/overlay/shaders/overlay_extra_lightprobe_grid_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_extra_lightprobe_grid_vert.glsl index 2011d95c4ad..522cd00f8ce 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_extra_lightprobe_grid_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_extra_lightprobe_grid_vert.glsl @@ -34,7 +34,7 @@ vec4 color_from_id(float color_id) void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); mat4 model_mat = gridModelMatrix; model_mat[0][3] = model_mat[1][3] = model_mat[2][3] = 0.0; model_mat[3][3] = 1.0; diff --git a/source/blender/draw/engines/overlay/shaders/overlay_extra_wire_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_extra_wire_vert.glsl index 853ec8212a0..0e2d7c37ae1 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_extra_wire_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_extra_wire_vert.glsl @@ -20,7 +20,7 @@ vec2 screen_position(vec4 p) void main() { #ifdef OBJECT_WIRE - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); #else select_id_set(in_select_buf[gl_InstanceID]); #endif diff --git a/source/blender/draw/engines/overlay/shaders/overlay_image_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_image_vert.glsl index 9d8167009cc..9d9ba3b16f2 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_image_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_image_vert.glsl @@ -14,7 +14,7 @@ VERTEX_SHADER_CREATE_INFO(draw_modelmat) void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); vec3 world_pos = drw_point_object_to_world(pos); if (isCameraBackground) { /* Model matrix converts to view position to avoid jittering (see #91398). */ diff --git a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_curves_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_curves_vert.glsl index 9326579f76c..4fa5173eeed 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_curves_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_curves_vert.glsl @@ -15,7 +15,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_outline_prepass_curves) uint outline_colorid_get() { #ifdef OBINFO_NEW - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); bool is_active = flag_test(ob_flag, OBJECT_ACTIVE); #else int flag = int(abs(ObjectInfo.w)); @@ -82,7 +82,7 @@ void main() gl_Position.z -= 1e-3; /* ID 0 is nothing (background) */ - interp.ob_id = uint(resource_handle + 1); + interp.ob_id = uint(drw_resource_id() + 1); /* Should be 2 bits only [0..3]. */ uint outline_id = outline_colorid_get(); diff --git a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_gpencil_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_gpencil_vert.glsl index 73c0463f260..2a84aaf69a1 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_gpencil_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_gpencil_vert.glsl @@ -14,7 +14,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_outline_prepass_gpencil) uint outline_colorid_get() { #ifdef OBINFO_NEW - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); bool is_active = flag_test(ob_flag, OBJECT_ACTIVE); #else int flag = int(abs(ObjectInfo.w)); @@ -62,7 +62,7 @@ void main() gl_Position.z -= 1e-3; /* ID 0 is nothing (background) */ - interp.ob_id = uint(resource_handle + 1); + interp.ob_id = uint(drw_resource_id() + 1); /* Should be 2 bits only [0..3]. */ uint outline_id = outline_colorid_get(); diff --git a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_pointcloud_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_pointcloud_vert.glsl index 459d3203439..98dbf4eeeeb 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_pointcloud_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_pointcloud_vert.glsl @@ -15,7 +15,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_outline_prepass_pointcloud) uint outline_colorid_get() { #ifdef OBINFO_NEW - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); bool is_active = flag_test(ob_flag, OBJECT_ACTIVE); #else int flag = int(abs(ObjectInfo.w)); @@ -50,7 +50,7 @@ void main() gl_Position.z -= 1e-3; /* ID 0 is nothing (background) */ - interp.ob_id = uint(resource_handle + 1); + interp.ob_id = uint(drw_resource_id() + 1); /* Should be 2 bits only [0..3]. */ uint outline_id = outline_colorid_get(); diff --git a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_vert.glsl index c2b309698c5..f97ed7568a9 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_vert.glsl @@ -14,7 +14,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_outline_prepass_mesh) uint outline_colorid_get() { #ifdef OBINFO_NEW - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); bool is_active = flag_test(ob_flag, OBJECT_ACTIVE); #else int flag = int(abs(ObjectInfo.w)); @@ -52,7 +52,7 @@ void main() gl_Position.z -= 1e-3; /* ID 0 is nothing (background) */ - interp.ob_id = uint(resource_handle + 1); + interp.ob_id = uint(drw_resource_id() + 1); /* Should be 2 bits only [0..3]. */ uint outline_id = outline_colorid_get(); diff --git a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_wire_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_wire_vert.glsl index e60704bb518..0739fc34df9 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_wire_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_outline_prepass_wire_vert.glsl @@ -15,7 +15,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_outline_prepass_wire) uint outline_colorid_get() { - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); bool is_active = flag_test(ob_flag, OBJECT_ACTIVE); if (isTransform) { @@ -67,7 +67,7 @@ VertOut vertex_main(VertIn v_in) vert_out.hs_P.z -= 1e-3; /* ID 0 is nothing (background) */ - vert_out.ob_id = uint(resource_handle + 1); + vert_out.ob_id = uint(drw_resource_id() + 1); /* Should be 2 bits only [0..3]. */ uint outline_id = outline_colorid_get(); diff --git a/source/blender/draw/engines/overlay/shaders/overlay_particle_hair_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_particle_hair_vert.glsl index 9962fdc7c5b..1ddf2005380 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_particle_hair_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_particle_hair_vert.glsl @@ -22,7 +22,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_particle_hair) void wire_color_get(out vec3 rim_col, out vec3 wire_col) { - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); bool is_selected = flag_test(ob_flag, OBJECT_SELECTED); bool is_from_set = flag_test(ob_flag, OBJECT_FROM_SET); bool is_active = flag_test(ob_flag, OBJECT_ACTIVE); @@ -85,7 +85,7 @@ void wire_object_color_get(out vec3 rim_col, out vec3 wire_col) void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); vec3 ws_P = drw_point_object_to_world(pos); vec3 ws_N = normalize(drw_normal_object_to_world(-nor)); diff --git a/source/blender/draw/engines/overlay/shaders/overlay_particle_shape_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_particle_shape_vert.glsl index 7fbdcb20296..3865009b446 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_particle_shape_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_particle_shape_vert.glsl @@ -10,6 +10,7 @@ VERTEX_SHADER_CREATE_INFO(overlay_particle_shape) +#include "draw_model_lib.glsl" #include "draw_view_clipping_lib.glsl" #include "draw_view_lib.glsl" #include "gpu_shader_math_matrix_lib.glsl" @@ -29,7 +30,7 @@ vec2 circle_position(float angle) void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); int particle_id = gl_VertexID; int shape_vert_id = gl_VertexID; diff --git a/source/blender/draw/engines/overlay/shaders/overlay_particle_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_particle_vert.glsl index e9bad79e6c2..ec6d31e39d8 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_particle_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_particle_vert.glsl @@ -4,15 +4,16 @@ #include "infos/overlay_extra_info.hh" -VERTEX_SHADER_CREATE_INFO(overlay_particle_dot_base) +VERTEX_SHADER_CREATE_INFO(overlay_particle_dot) +#include "draw_model_lib.glsl" #include "draw_view_clipping_lib.glsl" #include "draw_view_lib.glsl" #include "select_lib.glsl" void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); /* Draw-size packed in alpha. */ float draw_size = ucolor.a; diff --git a/source/blender/draw/engines/overlay/shaders/overlay_wireframe_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_wireframe_vert.glsl index 3ca5dd70e30..7a34d2a1883 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_wireframe_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_wireframe_vert.glsl @@ -24,7 +24,7 @@ bool is_edge_sharpness_visible(float wire_data) void wire_color_get(out vec3 rim_col, out vec3 wire_col) { #ifdef OBINFO_NEW - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); bool is_selected = flag_test(ob_flag, OBJECT_SELECTED); bool is_from_set = flag_test(ob_flag, OBJECT_FROM_SET); bool is_active = flag_test(ob_flag, OBJECT_ACTIVE); @@ -67,7 +67,7 @@ vec3 hsv_to_rgb(vec3 hsv) void wire_object_color_get(out vec3 rim_col, out vec3 wire_col) { #ifdef OBINFO_NEW - eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[resource_id].infos.w)); + eObjectInfoFlag ob_flag = eObjectInfoFlag(floatBitsToUint(drw_infos[drw_resource_id()].infos.w)); bool is_selected = flag_test(ob_flag, OBJECT_SELECTED); #else int flag = int(abs(ObjectInfo.w)); @@ -98,7 +98,7 @@ void wire_object_color_get(out vec3 rim_col, out vec3 wire_col) void main() { - select_id_set(drw_CustomID); + select_id_set(drw_custom_id()); /* If no attribute is available, use a fixed facing value depending on the coloring mode. * This allow to keep most of the contrast between unselected and selected color diff --git a/source/blender/draw/engines/select/shaders/select_lib.glsl b/source/blender/draw/engines/select/shaders/select_lib.glsl index 30a6d50e4ca..bfa4e8f2c17 100644 --- a/source/blender/draw/engines/select/shaders/select_lib.glsl +++ b/source/blender/draw/engines/select/shaders/select_lib.glsl @@ -11,7 +11,7 @@ #elif defined(GPU_VERTEX_SHADER) -void select_id_set(int id) +void select_id_set(uint id) { /* Declared in the create info. */ select_id = id; @@ -19,7 +19,7 @@ void select_id_set(int id) #elif defined(GPU_FRAGMENT_SHADER) -void select_id_output(int id) +void select_id_output(uint id) { if (id == -1) { /* Invalid index */ @@ -28,7 +28,7 @@ void select_id_output(int id) if (select_info_buf.mode == SELECT_ALL) { /* Set the bit of the select id in the bitmap. */ - atomicOr(out_select_buf[id / 32u], 1u << (uint(id) % 32u)); + atomicOr(out_select_buf[id / 32u], 1u << (id % 32u)); } else if (select_info_buf.mode == SELECT_PICK_ALL) { /* Stores the nearest depth for this select id. */ diff --git a/source/blender/draw/engines/workbench/shaders/infos/workbench_prepass_info.hh b/source/blender/draw/engines/workbench/shaders/infos/workbench_prepass_info.hh index 3ae873ba71e..347b04b1d0c 100644 --- a/source/blender/draw/engines/workbench/shaders/infos/workbench_prepass_info.hh +++ b/source/blender/draw/engines/workbench/shaders/infos/workbench_prepass_info.hh @@ -41,7 +41,6 @@ VERTEX_IN(2, VEC4, ac) VERTEX_IN(3, VEC2, au) VERTEX_SOURCE("workbench_prepass_vert.glsl") ADDITIONAL_INFO(draw_modelmat_with_custom_id) -ADDITIONAL_INFO(draw_resource_handle_new) GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(workbench_curves) @@ -50,14 +49,12 @@ SAMPLER_FREQ(WB_CURVES_UV_SLOT, FLOAT_BUFFER, au, BATCH) PUSH_CONSTANT(INT, emitter_object_id) VERTEX_SOURCE("workbench_prepass_hair_vert.glsl") ADDITIONAL_INFO(draw_modelmat_with_custom_id) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_hair) GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(workbench_pointcloud) VERTEX_SOURCE("workbench_prepass_pointcloud_vert.glsl") ADDITIONAL_INFO(draw_modelmat_with_custom_id) -ADDITIONAL_INFO(draw_resource_handle_new) ADDITIONAL_INFO(draw_pointcloud) GPU_SHADER_CREATE_END() diff --git a/source/blender/draw/engines/workbench/shaders/infos/workbench_shadow_info.hh b/source/blender/draw/engines/workbench/shaders/infos/workbench_shadow_info.hh index 8f2219e5919..0585fc7a86d 100644 --- a/source/blender/draw/engines/workbench/shaders/infos/workbench_shadow_info.hh +++ b/source/blender/draw/engines/workbench/shaders/infos/workbench_shadow_info.hh @@ -37,7 +37,6 @@ TYPEDEF_SOURCE("workbench_shader_shared.h") ADDITIONAL_INFO(gpu_index_buffer_load) ADDITIONAL_INFO(draw_view) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(workbench_shadow_visibility_compute_common) diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_hair_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_hair_vert.glsl index a6172747530..aec8444ba81 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_hair_vert.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_hair_vert.glsl @@ -80,7 +80,7 @@ void main() normal_interp = normalize(drw_normal_world_to_view(nor)); - workbench_material_data_get(int(drw_CustomID), + workbench_material_data_get(int(drw_custom_id()), hair_get_customdata_vec3(ac), color_interp, alpha_interp, @@ -93,7 +93,7 @@ void main() workbench_hair_random_material(hair_rand, color_interp, _roughness, metallic); - object_id = int(uint(resource_handle) & 0xFFFFu) + 1; + object_id = int(uint(drw_resource_id()) & 0xFFFFu) + 1; if (emitter_object_id != 0) { object_id = int(uint(emitter_object_id) & 0xFFFFu) + 1; diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl index 1f486c6ccf0..b5077a1a80d 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl @@ -32,7 +32,7 @@ void main() uv_interp = vec2(0.0); workbench_material_data_get( - int(drw_CustomID), vec3(1.0), color_interp, alpha_interp, _roughness, metallic); + int(drw_custom_id()), vec3(1.0), color_interp, alpha_interp, _roughness, metallic); - object_id = int(uint(resource_handle) & 0xFFFFu) + 1; + object_id = int(uint(drw_resource_id()) & 0xFFFFu) + 1; } diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl index 77525502bc6..57bd57fbfa2 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl @@ -27,8 +27,8 @@ void main() normal_interp = normalize(drw_normal_object_to_view(nor)); - object_id = int(uint(resource_id) & 0xFFFFu) + 1; + object_id = int(uint(drw_resource_id()) & 0xFFFFu) + 1; workbench_material_data_get( - int(drw_CustomID), ac.rgb, color_interp, alpha_interp, _roughness, metallic); + int(drw_custom_id()), ac.rgb, color_interp, alpha_interp, _roughness, metallic); } diff --git a/source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl index f7c51ac6733..6a72fce093b 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl @@ -15,7 +15,7 @@ VERTEX_SHADER_CREATE_INFO(workbench_volume_smoke) void main() { - drw_ResourceID_iface.resource_index = resource_id; + drw_ResourceID_iface.resource_index = drw_resource_id(); #ifdef VOLUME_SLICE if (sliceAxis == 0) { diff --git a/source/blender/draw/intern/draw_shader_shared.hh b/source/blender/draw/intern/draw_shader_shared.hh index 93791654639..3a28469a6f9 100644 --- a/source/blender/draw/intern/draw_shader_shared.hh +++ b/source/blender/draw/intern/draw_shader_shared.hh @@ -85,7 +85,7 @@ uint drw_view_id = 0; (DRW_VIEW_LEN > 2) ? 2 : \ 1) # define DRW_VIEW_MASK ~(0xFFFFFFFFu << DRW_VIEW_SHIFT) -# define DRW_VIEW_FROM_RESOURCE_ID drw_view_id = (uint(drw_ResourceID) & DRW_VIEW_MASK) +# define DRW_VIEW_FROM_RESOURCE_ID drw_view_id = (drw_resource_id_raw() & DRW_VIEW_MASK) #endif struct FrustumCorners { diff --git a/source/blender/draw/intern/shaders/draw_model_lib.glsl b/source/blender/draw/intern/shaders/draw_model_lib.glsl index af1351c03de..fe76ae5c7d1 100644 --- a/source/blender/draw/intern/shaders/draw_model_lib.glsl +++ b/source/blender/draw/intern/shaders/draw_model_lib.glsl @@ -12,38 +12,65 @@ # error Missing draw_modelmat additional create info on shader create info #endif -#if defined(UNIFORM_RESOURCE_ID) -/* TODO(fclem): Legacy API. To remove. */ -# define resource_id drw_ResourceID -# define DRW_RESOURCE_ID_VARYING_SET - -#elif defined(GPU_VERTEX_SHADER) +#if defined(GPU_VERTEX_SHADER) VERTEX_SHADER_CREATE_INFO(draw_resource_id_varying) -# if defined(UNIFORM_RESOURCE_ID_NEW) -# define resource_id (drw_ResourceID >> DRW_VIEW_SHIFT) -# else -# define resource_id gpu_InstanceIndex -# endif -# define DRW_RESOURCE_ID_VARYING_SET drw_ResourceID_iface.resource_index = resource_id; - -#elif defined(GPU_GEOMETRY_SHADER) -# define resource_id drw_ResourceID_iface_in[0].resource_index - #elif defined(GPU_FRAGMENT_SHADER) FRAGMENT_SHADER_CREATE_INFO(draw_resource_id_varying) -# define resource_id drw_ResourceID_iface.resource_index #elif defined(GPU_LIBRARY_SHADER) SHADER_LIBRARY_CREATE_INFO(draw_resource_id_varying) -# define resource_id drw_ResourceID_iface.resource_index #endif +uint drw_resource_id_raw() +{ +#if defined(GPU_VERTEX_SHADER) +# if defined(RESOURCE_ID_FALLBACK) +# ifdef WITH_CUSTOM_IDS + uint id = in_resource_id.x; +# else + uint id = in_resource_id; +# endif +# else +# ifdef WITH_CUSTOM_IDS + uint id = resource_id_buf[gpu_BaseInstance + gl_InstanceID].x; +# else + uint id = resource_id_buf[gpu_BaseInstance + gl_InstanceID]; +# endif +# endif + return id; + +#elif defined(GPU_FRAGMENT_SHADER) || defined(GPU_LIBRARY_SHADER) + return drw_ResourceID_iface.resource_index; +#endif + return 0; +} + +uint drw_resource_id() +{ + return drw_resource_id_raw() >> DRW_VIEW_SHIFT; +} + +uint drw_custom_id() +{ +#ifdef WITH_CUSTOM_IDS +# if defined(GPU_VERTEX_SHADER) +# if defined(RESOURCE_ID_FALLBACK) + return in_resource_id.y; +# else + uint inst_id = gpu_BaseInstance + gl_InstanceID; + return resource_id_buf[gpu_BaseInstance + gl_InstanceID].y; +# endif +# endif +#endif + return 0; +} + mat4x4 drw_modelmat() { - return drw_matrix_buf[resource_id].model; + return drw_matrix_buf[drw_resource_id()].model; } mat4x4 drw_modelinv() { - return drw_matrix_buf[resource_id].model_inverse; + return drw_matrix_buf[drw_resource_id()].model_inverse; } /** diff --git a/source/blender/draw/intern/shaders/draw_object_infos_info.hh b/source/blender/draw/intern/shaders/draw_object_infos_info.hh index 68c7443c541..ea6cc0e2ba2 100644 --- a/source/blender/draw/intern/shaders/draw_object_infos_info.hh +++ b/source/blender/draw/intern/shaders/draw_object_infos_info.hh @@ -14,12 +14,12 @@ # define HAIR_SHADER # define DRW_GPENCIL_INFO -# define OrcoTexCoFactors (drw_infos[resource_id].orco_mul_bias) -# define ObjectInfo (drw_infos[resource_id].infos) -# define ObjectColor (drw_infos[resource_id].ob_color) +# define OrcoTexCoFactors (drw_infos[drw_resource_id()].orco_mul_bias) +# define ObjectInfo (drw_infos[drw_resource_id()].infos) +# define ObjectColor (drw_infos[drw_resource_id()].ob_color) -# define ObjectAttributeStart (drw_infos[resource_id].orco_mul_bias[0].w) -# define ObjectAttributeLen (drw_infos[resource_id].orco_mul_bias[1].w) +# define ObjectAttributeStart (drw_infos[drw_resource_id()].orco_mul_bias[0].w) +# define ObjectAttributeLen (drw_infos[drw_resource_id()].orco_mul_bias[1].w) #endif #include "draw_defines.hh" @@ -49,17 +49,17 @@ GPU_SHADER_CREATE_INFO(draw_object_infos) TYPEDEF_SOURCE("draw_shader_shared.hh") DEFINE("OBINFO_LIB") DEFINE("OBINFO_NEW") -DEFINE_VALUE("OrcoTexCoFactors", "(drw_infos[resource_id].orco_mul_bias)") -DEFINE_VALUE("ObjectInfo", "(drw_infos[resource_id].infos)") -DEFINE_VALUE("ObjectColor", "(drw_infos[resource_id].ob_color)") +DEFINE_VALUE("OrcoTexCoFactors", "(drw_infos[drw_resource_id()].orco_mul_bias)") +DEFINE_VALUE("ObjectInfo", "(drw_infos[drw_resource_id()].infos)") +DEFINE_VALUE("ObjectColor", "(drw_infos[drw_resource_id()].ob_color)") STORAGE_BUF(DRW_OBJ_INFOS_SLOT, READ, ObjectInfos, drw_infos[]) GPU_SHADER_CREATE_END() /** \note Requires draw_object_infos. */ GPU_SHADER_CREATE_INFO(draw_object_attributes) DEFINE("OBATTR_LIB") -DEFINE_VALUE("ObjectAttributeStart", "(drw_infos[resource_id].orco_mul_bias[0].w)") -DEFINE_VALUE("ObjectAttributeLen", "(drw_infos[resource_id].orco_mul_bias[1].w)") +DEFINE_VALUE("ObjectAttributeStart", "(drw_infos[drw_resource_id()].orco_mul_bias[0].w)") +DEFINE_VALUE("ObjectAttributeLen", "(drw_infos[drw_resource_id()].orco_mul_bias[1].w)") STORAGE_BUF(DRW_OBJ_ATTR_SLOT, READ, ObjectAttribute, drw_attrs[]) ADDITIONAL_INFO(draw_object_infos) GPU_SHADER_CREATE_END() @@ -109,7 +109,6 @@ GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(draw_volume) ADDITIONAL_INFO(draw_modelmat) -ADDITIONAL_INFO(draw_resource_handle_new) GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(draw_gpencil) diff --git a/source/blender/draw/intern/shaders/draw_view_info.hh b/source/blender/draw/intern/shaders/draw_view_info.hh index d355a9a14ea..e6fba25cbd2 100644 --- a/source/blender/draw/intern/shaders/draw_view_info.hh +++ b/source/blender/draw/intern/shaders/draw_view_info.hh @@ -17,8 +17,8 @@ # define DRW_VIEW_CULLING_INFO # define USE_WORLD_CLIP_PLANES -# define drw_ModelMatrix drw_matrix_buf[resource_id].model -# define drw_ModelMatrixInverse drw_matrix_buf[resource_id].model_inverse +# define drw_ModelMatrix drw_matrix_buf[drw_resource_id()].model +# define drw_ModelMatrixInverse drw_matrix_buf[drw_resource_id()].model_inverse # define drw_view drw_view_[drw_view_id] # define drw_view_culling drw_view_culling_[drw_view_id] # define DRW_VIEW_LEN DRW_VIEW_MAX @@ -39,7 +39,7 @@ * IMPORTANT: Vertex shader need to write `drw_ResourceID_iface.resource_index` in main(). */ GPU_SHADER_NAMED_INTERFACE_INFO(draw_resource_id_iface, drw_ResourceID_iface) -FLAT(INT, resource_index) +FLAT(UINT, resource_index) GPU_SHADER_NAMED_INTERFACE_END(drw_ResourceID_iface) GPU_SHADER_CREATE_INFO(draw_resource_id_varying) @@ -48,40 +48,26 @@ GEOMETRY_OUT(draw_resource_id_iface) GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(draw_resource_id) -DEFINE("UNIFORM_RESOURCE_ID_NEW") -/* TODO (Miguel Pozo): This is an int for compatibility. - * It should become uint once the "Next" ports are complete. */ -STORAGE_BUF(DRW_RESOURCE_ID_SLOT, READ, int, resource_id_buf[]) -DEFINE_VALUE("drw_ResourceID", "resource_id_buf[gpu_BaseInstance + gl_InstanceID]") +STORAGE_BUF(DRW_RESOURCE_ID_SLOT, READ, uint, resource_id_buf[]) GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(draw_resource_with_custom_id) -DEFINE("UNIFORM_RESOURCE_ID_NEW") DEFINE("WITH_CUSTOM_IDS") -STORAGE_BUF(DRW_RESOURCE_ID_SLOT, READ, int2, resource_id_buf[]) -DEFINE_VALUE("drw_ResourceID", "resource_id_buf[gpu_BaseInstance + gl_InstanceID].x") -DEFINE_VALUE("drw_CustomID", "resource_id_buf[gpu_BaseInstance + gl_InstanceID].y") +STORAGE_BUF(DRW_RESOURCE_ID_SLOT, READ, uint2, resource_id_buf[]) GPU_SHADER_CREATE_END() /** * Workaround the lack of gl_BaseInstance by binding the resource_id_buf as vertex buf. */ GPU_SHADER_CREATE_INFO(draw_resource_id_fallback) -DEFINE("UNIFORM_RESOURCE_ID_NEW") -VERTEX_IN(15, INT, drw_ResourceID) +DEFINE("RESOURCE_ID_FALLBACK") +VERTEX_IN(15, UINT, in_resource_id) GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(draw_resource_with_custom_id_fallback) -DEFINE("UNIFORM_RESOURCE_ID_NEW") +DEFINE("RESOURCE_ID_FALLBACK") DEFINE("WITH_CUSTOM_IDS") -VERTEX_IN(15, IVEC2, vertex_in_drw_ResourceID) -DEFINE_VALUE("drw_ResourceID", "vertex_in_drw_ResourceID.x") -DEFINE_VALUE("drw_CustomID", "vertex_in_drw_ResourceID.y") -GPU_SHADER_CREATE_END() - -/** TODO mask view id bits. */ -GPU_SHADER_CREATE_INFO(draw_resource_handle_new) -DEFINE_VALUE("resource_handle", "drw_ResourceID") +VERTEX_IN(15, UVEC2, in_resource_id) GPU_SHADER_CREATE_END() /** \} */ @@ -94,8 +80,8 @@ GPU_SHADER_CREATE_INFO(draw_modelmat_common) TYPEDEF_SOURCE("draw_shader_shared.hh") STORAGE_BUF(DRW_OBJ_MAT_SLOT, READ, ObjectMatrices, drw_matrix_buf[]) DEFINE("DRAW_MODELMAT_CREATE_INFO") -DEFINE_VALUE("ModelMatrixInverse", "drw_matrix_buf[resource_id].model_inverse") -DEFINE_VALUE("ModelMatrix", "drw_matrix_buf[resource_id].model") +DEFINE_VALUE("ModelMatrixInverse", "drw_matrix_buf[drw_resource_id()].model_inverse") +DEFINE_VALUE("ModelMatrix", "drw_matrix_buf[drw_resource_id()].model") GPU_SHADER_CREATE_END() GPU_SHADER_CREATE_INFO(draw_modelmat) @@ -204,7 +190,5 @@ GPU_SHADER_CREATE_END() /* Stub needs to be after all definitions to avoid conflict with legacy definitions. */ #ifdef GPU_SHADER /* Make it work for both draw_resource_id and draw_resource_with_custom_id. */ -# define drw_ResourceID vec2(resource_id_buf[gpu_BaseInstance + gl_InstanceID]).x -# define drw_CustomID drw_ResourceID -# define resource_handle drw_ResourceID +# define resource_id_buf vec2(0) #endif