From abff15168ba70db4b0aa0a71f25ea377d1ad6f1f Mon Sep 17 00:00:00 2001 From: Robert Beckebans Date: Fri, 30 Aug 2024 21:06:40 +0200 Subject: [PATCH] Round moc buffer width and height --- .../tr_frontend_masked_occlusion_culling.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/neo/renderer/tr_frontend_masked_occlusion_culling.cpp b/neo/renderer/tr_frontend_masked_occlusion_culling.cpp index a7e6cef3..8feaa569 100644 --- a/neo/renderer/tr_frontend_masked_occlusion_culling.cpp +++ b/neo/renderer/tr_frontend_masked_occlusion_culling.cpp @@ -520,8 +520,20 @@ void R_FillMaskedOcclusionBufferWithModels( viewDef_t* viewDef ) int startTime = Sys_Microseconds(); - const int viewWidth = viewDef->viewport.x2 - viewDef->viewport.x1 + 1; - const int viewHeight = viewDef->viewport.y2 - viewDef->viewport.y1 + 1; + int viewWidth = viewDef->viewport.x2 - viewDef->viewport.x1 + 1; + int viewHeight = viewDef->viewport.y2 - viewDef->viewport.y1 + 1; + + if( viewWidth & 7 ) + { + // must be multiple of 8 + viewWidth = ( viewWidth + 7 ) & ~7; + } + + if( viewHeight & 3 ) + { + // must be multiple of 4 + viewHeight = ( viewHeight + 3 ) & ~3; + } const float zNear = ( viewDef->renderView.cramZNear ) ? ( r_znear.GetFloat() * 0.25f ) : r_znear.GetFloat();