diff --git a/src/CRE/effect.cpp b/src/CRE/effect.cpp index 0a0c3d2b..c71e983d 100644 --- a/src/CRE/effect.cpp +++ b/src/CRE/effect.cpp @@ -5640,6 +5640,7 @@ static void draw_ripple_particles(ripple_struct* data, mat4* mat) { uniform_value[U_RIPPLE] = data->ripple_uniform; uniform_value[U_RIPPLE_EMIT] = data->ripple_emit_uniform; + gl_state_begin_event("EffectRipple::Impl::draw_ripple_particles"); gl_state_set_color_mask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE); gl_state_bind_vertex_array(rctx_ptr->common_vao); @@ -5652,6 +5653,7 @@ static void draw_ripple_particles(ripple_struct* data, mat4* mat) { gl_state_bind_vertex_array(0); gl_state_set_color_mask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); + gl_state_end_event(); } static void draw_water_particle(water_particle* data, mat4* mat) { diff --git a/src/CRE/render_manager.cpp b/src/CRE/render_manager.cpp index 4bcbf566..22bb9b1b 100644 --- a/src/CRE/render_manager.cpp +++ b/src/CRE/render_manager.cpp @@ -374,6 +374,7 @@ namespace rndr { void RenderManager::pass_shadow() { render_context* rctx = rctx_ptr; gl_state_begin_event("pass_shadow"); + gl_state_begin_event("texproj"); rctx->camera->update_data(); if (rctx->litproj->set()) { rctx->obj_scene_ubo.WriteMemory(rctx->obj_scene); @@ -406,6 +407,7 @@ namespace rndr { gl_state_bind_framebuffer(0); } } + gl_state_end_event(); rctx->obj_scene_ubo.WriteMemory(rctx->obj_scene); @@ -1058,6 +1060,7 @@ namespace rndr { RenderTexture* rt = &render->rend_texture[0]; RenderTexture* contour_rt = render->sss_contour_texture; + gl_state_begin_event("`anonymous-namespace'::draw_npr_frame"); gl_state_enable_blend(); gl_state_set_blend_func(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); gl_state_set_blend_equation(GL_FUNC_ADD); @@ -1090,6 +1093,7 @@ namespace rndr { gl_state_bind_sampler(14, rctx->render_samplers[0]); gl_state_enable_depth_test(); gl_state_disable_blend(); + gl_state_end_event(); } void RenderManager::pass_sprite_surf() { @@ -1115,6 +1119,7 @@ void image_filter_scale(GLuint dst, GLuint src, const vec4 scale) { render_context* rctx = rctx_ptr; + gl_state_begin_event("`anonymous-namespace'::Impl::apply_no_filter_sub"); texture_param tex_params[2]; texture_params_get(dst, &tex_params[0], src, &tex_params[1]); @@ -1139,6 +1144,7 @@ void image_filter_scale(GLuint dst, GLuint src, const vec4 scale) { shaders_ft.draw_arrays(GL_TRIANGLE_STRIP, 0, 4); texture_params_restore(&tex_params[0], &tex_params[1]); + gl_state_end_event(); } void draw_pass_set_camera() { @@ -1296,6 +1302,7 @@ static void draw_pass_shadow_filter(RenderTexture* a1, RenderTexture* a2, render_context* rctx = rctx_ptr; + gl_state_begin_event("`anonymous-namespace'::Impl::apply_esm_filter"); filter_scene_shader_data filter_scene = {}; filter_scene.g_transform = 0.0f; filter_scene.g_texcoord = { 1.0f, 1.0f, 0.0f, 0.0f }; @@ -1342,17 +1349,22 @@ static void draw_pass_shadow_filter(RenderTexture* a1, RenderTexture* a2, shader::unbind(); texture_params_restore(&tex_params[0], &tex_params[1]); + gl_state_end_event(); } static void draw_pass_shadow_esm_filter(RenderTexture* dst, RenderTexture* buf, RenderTexture* src) { GLuint dst_tex = dst->GetColorTex(); GLuint buf_tex = buf->GetColorTex(); GLuint src_tex = src->GetColorTex(); - if (!dst_tex || !buf_tex || !src_tex) + gl_state_begin_event("`anonymous-namespace'::Impl::apply_esm_min_filter"); + if (!dst_tex || !buf_tex || !src_tex) { + gl_state_end_event(); return; + } render_context* rctx = rctx_ptr; + gl_state_begin_event("minimize"); filter_scene_shader_data filter_scene = {}; filter_scene.g_transform = 0.0f; filter_scene.g_texcoord = { 1.0f, 1.0f, 0.0f, 0.0f }; @@ -1379,7 +1391,9 @@ static void draw_pass_shadow_esm_filter(RenderTexture* dst, RenderTexture* buf, gl_state_bind_sampler(0, rctx->render_samplers[0]); gl_state_bind_vertex_array(rctx->common_vao); shaders_ft.draw_arrays(GL_TRIANGLE_STRIP, 0, 4); + gl_state_end_event(); + gl_state_begin_event("erosion"); dst->Bind(); esm_filter_batch.g_params = { 0.75f / (float_t)tex_params[2].width, 0.75f / (float_t)tex_params[2].height, 0.0f, 0.0f }; @@ -1393,6 +1407,8 @@ static void draw_pass_shadow_esm_filter(RenderTexture* dst, RenderTexture* buf, shaders_ft.draw_arrays(GL_TRIANGLE_STRIP, 0, 4); texture_params_restore(&tex_params[0], &tex_params[1], &tex_params[2]); + gl_state_end_event(); + gl_state_end_event(); } static bool draw_pass_shadow_litproj(light_proj* litproj) { @@ -1775,6 +1791,7 @@ static void blur_filter_apply(render_context* rctx, RenderTexture* dst, RenderTe if (!dst || !src) return; + gl_state_begin_event("`anonymous-namespace'::Impl::apply_blur_filter_sub"); filter_scene_shader_data filter_scene = {}; float_t w = res_scale.x / (float_t)src->GetWidth(); float_t h = res_scale.y / (float_t)src->GetHeight(); @@ -1799,6 +1816,7 @@ static void blur_filter_apply(render_context* rctx, RenderTexture* dst, RenderTe gl_state_active_bind_texture_2d(0, src->GetColorTex()); gl_state_bind_sampler(0, rctx->render_samplers[0]); shaders_ft.draw_arrays(GL_TRIANGLE_STRIP, (GLint)(filter * 4LL), 4); + gl_state_end_event(); } static void render_manager_free_render_textures() {