diff --git a/src/engine/renderer/gl_shader.cpp b/src/engine/renderer/gl_shader.cpp index 7425f0854a..1a586eaf42 100644 --- a/src/engine/renderer/gl_shader.cpp +++ b/src/engine/renderer/gl_shader.cpp @@ -2193,8 +2193,7 @@ GLShader_generic::GLShader_generic( GLShaderManager *manager ) : GLCompileMacro_USE_VERTEX_ANIMATION( this ), GLCompileMacro_USE_TCGEN_ENVIRONMENT( this ), GLCompileMacro_USE_TCGEN_LIGHTMAP( this ), - GLCompileMacro_USE_DEPTH_FADE( this ), - GLCompileMacro_GENERIC_2D( this ) + GLCompileMacro_USE_DEPTH_FADE( this ) { } diff --git a/src/engine/renderer/gl_shader.h b/src/engine/renderer/gl_shader.h index a6a8b7773f..bdd8cf7102 100644 --- a/src/engine/renderer/gl_shader.h +++ b/src/engine/renderer/gl_shader.h @@ -2111,26 +2111,6 @@ class GLCompileMacro_USE_DEPTH_FADE : } }; -class GLCompileMacro_GENERIC_2D : - GLCompileMacro { - public: - GLCompileMacro_GENERIC_2D( GLShader* shader ) : - GLCompileMacro( shader ) { - } - - const char* GetName() const override { - return "GENERIC_2D"; - } - - EGLCompileMacro GetType() const override { - return EGLCompileMacro::GENERIC_2D; - } - - void SetGeneric2D( bool enable ) { - SetMacro( enable ); - } -}; - class GLCompileMacro_USE_PHYSICAL_MAPPING : GLCompileMacro { @@ -3961,8 +3941,7 @@ class GLShader_generic : public GLCompileMacro_USE_VERTEX_ANIMATION, public GLCompileMacro_USE_TCGEN_ENVIRONMENT, public GLCompileMacro_USE_TCGEN_LIGHTMAP, - public GLCompileMacro_USE_DEPTH_FADE, - public GLCompileMacro_GENERIC_2D + public GLCompileMacro_USE_DEPTH_FADE { public: GLShader_generic( GLShaderManager *manager ); diff --git a/src/engine/renderer/glsl_source/shaderProfiler_fp.glsl b/src/engine/renderer/glsl_source/shaderProfiler_fp.glsl index aaf4fd7202..2b99feb4c9 100644 --- a/src/engine/renderer/glsl_source/shaderProfiler_fp.glsl +++ b/src/engine/renderer/glsl_source/shaderProfiler_fp.glsl @@ -34,7 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* shaderProfiler_fp.glsl */ -#if defined(r_profilerRenderSubGroups) && !defined(GENERIC_2D) && defined(HAVE_KHR_shader_subgroup_basic) && defined(HAVE_KHR_shader_subgroup_arithmetic) +#if defined(r_profilerRenderSubGroups) && defined(HAVE_KHR_shader_subgroup_basic) && defined(HAVE_KHR_shader_subgroup_arithmetic) uniform float u_ProfilerZero; uniform uint u_ProfilerRenderSubGroups; IN(flat) float var_SubGroupCount; diff --git a/src/engine/renderer/glsl_source/shaderProfiler_vp.glsl b/src/engine/renderer/glsl_source/shaderProfiler_vp.glsl index 91ce9e52a2..1cc563d25b 100644 --- a/src/engine/renderer/glsl_source/shaderProfiler_vp.glsl +++ b/src/engine/renderer/glsl_source/shaderProfiler_vp.glsl @@ -34,7 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* shaderProfiler_vp.glsl */ -#if defined(r_profilerRenderSubGroups) && !defined(GENERIC_2D) && defined(HAVE_KHR_shader_subgroup_basic) && defined(HAVE_KHR_shader_subgroup_arithmetic) +#if defined(r_profilerRenderSubGroups) && defined(HAVE_KHR_shader_subgroup_basic) && defined(HAVE_KHR_shader_subgroup_arithmetic) uniform uint u_ProfilerRenderSubGroups; OUT(flat) float var_SubGroupCount; diff --git a/src/engine/renderer/tr_local.h b/src/engine/renderer/tr_local.h index b44fc3e0cc..3090c56cb9 100644 --- a/src/engine/renderer/tr_local.h +++ b/src/engine/renderer/tr_local.h @@ -2791,6 +2791,8 @@ enum class shaderProfilerRenderSubGroupsMode { frontEndCounters_t pc; int frontEndMsec; // not in pc due to clearing issue + bool skipSubgroupProfiler = false; + vec4_t clipRegion; // 2D clipping region // diff --git a/src/engine/renderer/tr_shade.cpp b/src/engine/renderer/tr_shade.cpp index 8d7c4ceacc..778f083362 100644 --- a/src/engine/renderer/tr_shade.cpp +++ b/src/engine/renderer/tr_shade.cpp @@ -905,7 +905,7 @@ void Render_generic3D( shaderStage_t *pStage ) ); } - if ( r_profilerRenderSubGroups.Get() && !( pStage->stateBits & GLS_DEPTHMASK_TRUE ) ) { + if ( r_profilerRenderSubGroups.Get() && !( pStage->stateBits & GLS_DEPTHMASK_TRUE ) && !tr.skipSubgroupProfiler ) { const uint mode = GetShaderProfilerRenderSubGroupsMode( pStage->stateBits ); if( mode == 0 ) { return; @@ -929,12 +929,12 @@ void Render_generic( shaderStage_t *pStage ) if ( backEnd.projection2D ) { glState.glStateBitsMask = ~uint32_t( GLS_DEPTHMASK_TRUE ) | GLS_DEPTHTEST_DISABLE; - gl_genericShader->SetGeneric2D( true ); + tr.skipSubgroupProfiler = true; Render_generic3D( pStage ); glState.glStateBitsMask = 0; - gl_genericShader->SetGeneric2D( false ); + tr.skipSubgroupProfiler = false; return; }