renderer: nvidia checks and use glFinish on nvidia

fixes #3952 #3946
This commit is contained in:
Vaxry
2023-11-25 17:45:08 +00:00
parent 3fe6162af1
commit 6f733292bf
3 changed files with 51 additions and 2 deletions

View File

@@ -69,6 +69,7 @@ class CHyprRenderer {
void renderSoftwareCursors(CMonitor* pMonitor, const CRegion& damage, std::optional<Vector2D> overridePos = {});
void onRenderbufferDestroy(CRenderbuffer* rb);
CRenderbuffer* getCurrentRBO();
bool isNvidia();
bool beginRender(CMonitor* pMonitor, CRegion& damage, eRenderMode mode = RENDER_MODE_NORMAL, wlr_buffer* withBuffer = nullptr);
void endRender();
@@ -121,6 +122,8 @@ class CHyprRenderer {
eRenderMode m_eRenderMode = RENDER_MODE_NORMAL;
int m_iLastBufferAge = 0;
bool m_bNvidia = false;
CRenderbuffer* getOrCreateRenderbuffer(wlr_buffer* buffer, uint32_t fmt);
std::vector<std::unique_ptr<CRenderbuffer>> m_vRenderbuffers;