diff --git a/headers/private/graphics/intel_extreme/intel_extreme.h b/headers/private/graphics/intel_extreme/intel_extreme.h index b922e20645..b9e8cb8636 100644 --- a/headers/private/graphics/intel_extreme/intel_extreme.h +++ b/headers/private/graphics/intel_extreme/intel_extreme.h @@ -395,12 +395,13 @@ struct overlay_registers { uint32 _reserved21[10]; - // (0xa0) FASTHSCALE - fast horizontal downscale - uint16 horizontal_scale_rgb; + // (0xa0) FASTHSCALE - fast horizontal downscale (strangely enough, + // the next two registers switch the usual Y/RGB vs. UV order) uint16 horizontal_scale_uv; + uint16 horizontal_scale_rgb; // (0xa4) UVSCALEV - vertical downscale - uint16 vertical_scale_rgb; uint16 vertical_scale_uv; + uint16 vertical_scale_rgb; uint32 _reserved22[86]; diff --git a/src/add-ons/accelerants/intel_extreme/overlay.cpp b/src/add-ons/accelerants/intel_extreme/overlay.cpp index 1fdbae747e..e4af605fa2 100644 --- a/src/add-ons/accelerants/intel_extreme/overlay.cpp +++ b/src/add-ons/accelerants/intel_extreme/overlay.cpp @@ -562,8 +562,8 @@ intel_configure_overlay(overlay_token overlayToken, const overlay_buffer *buffer registers->window_width = right - left; registers->window_height = bottom - top; - uint32 horizontalScale = ((view->width - 1) << 12) / window->width; - uint32 verticalScale = ((view->height - 1) << 12) / window->height; + uint32 horizontalScale = (view->width << 12) / window->width; + uint32 verticalScale = (view->height << 12) / window->height; uint32 horizontalScaleUV = horizontalScale >> 1; uint32 verticalScaleUV = verticalScale >> 1; horizontalScale = horizontalScaleUV << 1;