[Intel-gfx] [RFC 0/2] Enable Nearest-neighbor for Integer mode scaling

Shashank Sharma shashank.sharma at intel.com
Tue Sep 3 16:52:25 UTC 2019


Blurry outputs during upscaling the buffer, is a generic problem of gfx
industry. One of the major reason behind this blurriness is the
interpolation of pixel values used by most of the upscaling hardwares.

Nearest-neighbor is a scaling mode, which works by filling in the missing
color values in the upscaled image with that of the coordinate-mapped
nearest source pixel value.

Nearest-neighbor can produce (almost) non-blurry scaling outputs when
the scaling ratio is complete integer. For example: 
- input buffer resolution: 1280x720(HD)
- output buffer resolution: 3840x2160(UHD/4K)
- scaling ratio (h) = 3840/1280 = 3  
  scaling ratio (v) = 2160/720 = 3
In such scenarios, we should try to pick Nearest-neighbor as scaling
method when possible.

Many gaming communities have been asking for integer-mode scaling
support, some links and background:
https://software.intel.com/en-us/articles/integer-scaling-support-on-intel-graphics
http://tanalin.com/en/articles/lossless-scaling/
https://community.amd.com/thread/209107
https://www.nvidia.com/en-us/geforce/forums/game-ready-drivers/13/1002/feature-request-nonblurry-upscaling-at-integer-rat/

This patch series enables NN scaling on Intel display (ICL), when the upscaling
ratio is integer.

Shashank Sharma (2):
  drm/i915: Indicate integer up-scaling ratios
  drm/i915: Pick nearest-neighbor mode for integer scaling ratios

 drivers/gpu/drm/i915/display/intel_display.c  | 97 ++++++++++++++++++-
 .../drm/i915/display/intel_display_types.h    |  7 ++
 drivers/gpu/drm/i915/i915_reg.h               | 31 ++++++
 3 files changed, 134 insertions(+), 1 deletion(-)

-- 
2.17.1



More information about the Intel-gfx mailing list