Commit Graph
60 Commits
Author SHA1 Message Date
Pokechu22 2f43889141 Software: Use hardware-verified numbers for RGB->YUV conversion 2022-07-16 00:07:10 -07:00
Pokechu22 c657b80996 Software/EfbInterface: Remove logspam for RGB565_Z16 being unsupported
This message would be logged, usually multiple times, for EVERY. SINGLE. PIXEL. That's pretty much useless and just makes the log unreadable. Plus, the current support (which acts as RGB8) is close enough that for end-user purposes, it's fine.  I don't think the hardware backends support RGB565_Z16 and its antialiasing functionality correctly either, but they don't have similar logspam.
2022-03-08 13:59:55 -08:00
Scott Mansell 9bbc843542 VideoSoftware: Fix copy filter clamping 2021-11-17 09:29:16 +13:00
Pierre Bourdon e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
Pokechu22 058c7db80b Software: Fix out of bounds accesses in CopyRegion
Fixes issue 11393.

The problem is that left and top make no sense for a width by height array; they only make sense in a larger array where from which a smaller part is extracted.  Thus, the overall size of the array is provided to CopyRegion in addition to the sub-region.  EncodeXFB already handles the extraction, so CopyRegion's only use there is to resize the image (and thus no sub-region is provided).
2021-03-06 21:58:28 -08:00
Pokechu22 70f9fc4e75 Convert BPMemory to BitField and enum class
Additional changes:
- For TevStageCombiner's ColorCombiner and AlphaCombiner, op/comparison and scale/compare_mode have been split as there are different meanings and enums if bias is set to compare.  (Shift has also been renamed to scale)
- In TexMode0, min_filter has been split into min_mip and min_filter.
- In TexImage1, image_type is now cache_manually_managed.
- The unused bit in GenMode is now exposed.
- LPSize's lineaspect is now named adjust_for_aspect_ratio.
2021-03-06 19:27:19 -08:00
Lioncash 23a8baa605 Software: Migrate logging over to fmt
Migrates the software backend over to the fmt-capable logger.
2020-11-09 03:14:01 -05:00
Lioncash 2b9389202e VideoCommon: Remove unused MathUtil.h include from VideoCommon.h
This header doesn't actually make use of MathUtil.h within itself, so
this can be removed. Many other source files used VideoCommon.h as an
indirect include to include MathUtil.h, so these includes can also be
adjusted.

While we're at it, we can also migrate valid inclusions of VideoCommon.h
into cpp files where it can feasibly be done to minimize propagating it
via other headers.
2019-07-16 20:54:34 -04:00
Techjar ff972e3673 Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
Léo Lam ab9ece9bca Replace MathUtil::Clamp with std::clamp 2019-05-04 23:12:17 +02:00
JosJuice ced2306fc5 Turn EFB_WIDTH/EFB_HEIGHT into constexpr
https://bugs.dolphin-emu.org/issues/11692#note-5

Also change const into constexpr while we're at it.
2019-04-28 11:50:17 +02:00
Stenzek f8c1ba409c Replace EFBRectangle/TargetRectangle with MathUtil::Rectangle 2019-04-21 14:28:14 +10:00
Lioncash 505d45a233 EfbInterface: Move buffer constant from the header to the cpp file
This is only ever used internally, so we can limit its scope to the only
usage point.
2018-05-18 16:23:34 -04:00
Lioncash 5eef8ba984 EfbInterface: Make efb and perf_values std::arrays 2018-05-18 16:23:29 -04:00
Lioncash c58b5e9b9b EfbInterface: Make perf_values internally linked
Instead, expose functions to operate with it. This way we keep the
internal representation concealed.
2018-05-18 15:35:08 -04:00
Lioncash f3a8874214 EfbInterface: Move efb array into the EfbInterface namespace 2018-05-18 15:09:37 -04:00
Stenzek 9e798eec94 Implement EFB copy filter and gamma in hardware backends
Also makes y_scale a dynamic parameter for EFB copies, as it doesn't
make sense to keep it as part of the uid, otherwise we're generating
redundant shaders.
2018-04-29 19:05:20 +10:00
Scott MansellandStenzek a192a3bb30 While I'm here, fix some chroma sub-sampling bugs.
RE4's brightness screen is actually very good for spotting these.

Bug 1: Colors at the end of the scanlines are clamped, instead of a black
       border
Bug 2: U and V color channels share coordinates, instead of being offset
       by a pixel.
2018-04-29 17:56:53 +10:00
Scott MansellandStenzek fc96479f12 VideoSoftware: Implement xfb copy filter (Deflickering/Brightness) 2018-04-29 17:56:51 +10:00
iwubcode bf7db3f888 Software Backend: Remove reinterpret_cast which violates the strict aliasing rule 2017-11-17 22:11:33 -06:00
iwubcode 1a1c3560ce Software Backend: Rename 'copy_region' to 'CopyRegion' 2017-11-17 22:11:33 -06:00
iwubcode 53684701fa HybridXFB: Fix lint errors 2017-11-17 22:11:31 -06:00
iwubcode 6e686f6ea1 Software Backend: Fix xfb output and add vertical scaling support 2017-11-17 22:11:31 -06:00
iwubcode 4d13f69dc1 Remove TODOs 2017-11-17 22:11:29 -06:00
iwubcode 79387dddb2 Add support for hybrid XFB 2017-11-17 19:47:56 -06:00