renderer: safeguard against non-sampleable currentFB in blurMainFb

fixes #8325
This commit is contained in:
Vaxry 2024-11-03 15:16:08 +00:00
parent 5833abbbd1
commit 180c26ada6
2 changed files with 11 additions and 0 deletions

View file

@ -97,12 +97,18 @@ void CFramebuffer::bind() {
}
void CFramebuffer::release() {
if (!m_iFbAllocated && !m_cTex)
return;
Debug::log(TRACE, "fb {} released", m_iFb);
if (m_iFbAllocated)
glDeleteFramebuffers(1, &m_iFb);
m_cTex.reset();
m_iFbAllocated = false;
m_vSize = Vector2D();
m_iFb = 0;
}
CFramebuffer::~CFramebuffer() {

View file

@ -1656,6 +1656,11 @@ void CHyprOpenGLImpl::renderTextureMatte(SP<CTexture> tex, CBox* pBox, CFramebuf
// Dual (or more) kawase blur
CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* originalDamage) {
if (!m_RenderData.currentFB->getTexture()) {
Debug::log(ERR, "BUG THIS: null fb texture while attempting to blur main fb?! (introspection off?!)");
return &m_RenderData.pCurrentMonData->mirrorFB; // return something to sample from at least
}
TRACY_GPU_ZONE("RenderBlurMainFramebufferWithDamage");
const auto BLENDBEFORE = m_bBlend;